diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..39fb081 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures +.externalNativeBuild diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..96cc43e --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..e7bedf3 --- /dev/null +++ b/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..0e23f8e --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..5d19981 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..fe062f8 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..7f68460 --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..dba63c7 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,36 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 24 + buildToolsVersion "24.0.2" + defaultConfig { + applicationId "mdb.pokedex" + minSdkVersion 14 + targetSdkVersion 24 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { + exclude group: 'com.android.support', module: 'support-annotations' + }) + compile 'com.android.support:appcompat-v7:24.2.0' + testCompile 'junit:junit:4.12' + compile 'com.android.support:recyclerview-v7:24.2.1' + compile 'com.android.support:cardview-v7:24.2.1' + compile 'com.github.bumptech.glide:glide:3.7.0' + compile 'com.android.support:support-v4:24.2.1' + compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha9' + compile 'com.android.support:design:24.2.1' + compile 'com.google.android.gms:play-services-appindexing:8.4.0' +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..5a5927a --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /Users/victorsun/Library/Android/sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/app/src/androidTest/java/mdb/pokedex/ExampleInstrumentedTest.java b/app/src/androidTest/java/mdb/pokedex/ExampleInstrumentedTest.java new file mode 100644 index 0000000..0e2452a --- /dev/null +++ b/app/src/androidTest/java/mdb/pokedex/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package mdb.pokedex; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import android.support.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumentation test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() throws Exception { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getTargetContext(); + + assertEquals("mdb.pokedex", appContext.getPackageName()); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..d2d0d82 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/mdb/pokedex/MainActivity.java b/app/src/main/java/mdb/pokedex/MainActivity.java new file mode 100644 index 0000000..718b907 --- /dev/null +++ b/app/src/main/java/mdb/pokedex/MainActivity.java @@ -0,0 +1,215 @@ +package mdb.pokedex; + +import android.content.Intent; +import android.os.Bundle; +import android.support.design.widget.FloatingActionButton; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.Button; +import android.widget.CompoundButton; +import android.widget.ToggleButton; + +import java.util.ArrayList; + +public class MainActivity extends AppCompatActivity { + + PokeAdapter pokeAdapter; + RecyclerView recyclerView; + ToggleButton toggle; + ToggleButton toggle2; + ToggleButton toggle3; + Button button; + FloatingActionButton floatingActionButton; + public static boolean listView; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + final Pokedex pokedex = new Pokedex(); + final ArrayList list = pokedex.getPokemon(); + + final ArrayList displayed = new ArrayList(); + final ArrayList low = new ArrayList(); + final ArrayList medium = new ArrayList(); + final ArrayList high = new ArrayList(); + + + for (int i = 0; i < list.size(); i++) { + displayed.add(list.get(i)); + } + + for (int i = 0; i < list.size(); i++) { + if (Integer.parseInt(list.get(i).hp) < 50) { + low.add(list.get(i)); + } else if (Integer.parseInt(list.get(i).hp) >= 50 && Integer.parseInt(list.get(i).hp) <= 100) { + medium.add(list.get(i)); + } else { + high.add(list.get(i)); + } + } + + + for (int i = 0; i < low.size(); i++) { + System.out.println(low.get(i).name); + } + + toggle = (ToggleButton) findViewById(R.id.toggleButton); + toggle.setChecked(true); + toggle.setText("Low"); + toggle.setTextOn("Low"); + toggle.setTextOff("Low"); + + toggle2 = (ToggleButton) findViewById(R.id.toggleButton2); + toggle2.setChecked(true); + toggle2.setText("Medium"); + toggle2.setTextOn("Medium"); + toggle2.setTextOff("Medium"); + + toggle3 = (ToggleButton) findViewById(R.id.toggleButton3); + toggle3.setChecked(true); + toggle3.setText("High"); + toggle3.setTextOn("High"); + toggle3.setTextOff("High"); + + + toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + if (displayed.size() == 0) { + for (int i = 0; i < low.size(); i++) { + displayed.add(low.get(i)); + } + } else { + for (int i = 0; i < low.size(); i++) { + for (int j = 0; j < displayed.size(); j++) { + if (low.get(i).name.compareTo(displayed.get(j).name) < 0) { //adds pokemon back to displayed list alphabetically + displayed.add(j, low.get(i)); + j = displayed.size(); + } + } + } + } + + } else { + for (int i = 0; i < displayed.size(); i++) { + if (Integer.parseInt(displayed.get(i).hp) < 50) { + displayed.remove(i); + i--; + } + } + } + pokeAdapter.pokemonArrayList = displayed; + pokeAdapter.notifyDataSetChanged(); + } + }); + + + toggle2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + if (displayed.size() == 0) { + for (int i = 0; i < medium.size(); i++) { + displayed.add(medium.get(i)); + } + } else { + for (int i = 0; i < medium.size(); i++) { + if (displayed.size() == 0) displayed.add(medium.get(0)); + for (int j = 0; j < displayed.size(); j++) { + if (medium.get(i).name.compareTo(displayed.get(j).name) < 0) { //adds pokemon back to displayed list alphabetically + displayed.add(j, medium.get(i)); + j = displayed.size(); + } + } + } + } + + } else { + for (int i = 0; i < displayed.size(); i++) { + if (Integer.parseInt(displayed.get(i).hp) >= 50 && Integer.parseInt(displayed.get(i).hp) <= 100) { + displayed.remove(i); + i--; + } + } + } + pokeAdapter.pokemonArrayList = displayed; + pokeAdapter.notifyDataSetChanged(); + } + }); + + toggle3.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + if (displayed.size() == 0) { //adding empty list back in + for (int i = 0; i < high.size(); i++) { + displayed.add(high.get(i)); + } + } else { + for (int i = 0; i < high.size(); i++) { + if (displayed.size() == 0) displayed.add(high.get(0)); + for (int j = 0; j < displayed.size(); j++) { + if (high.get(i).name.compareTo(displayed.get(j).name) < 0) { //adds pokemon back to displayed list alphabetically + displayed.add(j, high.get(i)); + j = displayed.size(); + } + } + } + } + + } else { + for (int i = 0; i < displayed.size(); i++) { + if (Integer.parseInt(displayed.get(i).hp) > 100) { + displayed.remove(i); + i--; + } + } + } + pokeAdapter.pokemonArrayList = displayed; + pokeAdapter.notifyDataSetChanged(); + } + }); + + + recyclerView = (RecyclerView) findViewById(R.id.recyclerView); + recyclerView.setLayoutManager(new LinearLayoutManager(this)); + + pokeAdapter = new PokeAdapter(getApplicationContext(), displayed); + + recyclerView.setAdapter(pokeAdapter); + + listView = true; + + button = (Button) findViewById(R.id.button); + button.setText("GridView"); + button.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + if(listView) { + recyclerView.setLayoutManager(new GridLayoutManager(getApplicationContext(), 2)); + button.setText("ListView"); + } + else{ + recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext())); + button.setText("GridView"); + } + listView = !listView; + pokeAdapter.notifyDataSetChanged(); + } + }); + + + floatingActionButton = (FloatingActionButton) findViewById(R.id.floatingActionButton); + floatingActionButton.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + Intent intent = new Intent(v.getContext(), SearchActivity.class); + startActivity(intent); + + } + }); + + + } +} diff --git a/app/src/main/java/mdb/pokedex/PokeAdapter.java b/app/src/main/java/mdb/pokedex/PokeAdapter.java new file mode 100644 index 0000000..acd25e9 --- /dev/null +++ b/app/src/main/java/mdb/pokedex/PokeAdapter.java @@ -0,0 +1,97 @@ +package mdb.pokedex; + +/** + * Created by victorsun on 9/28/16. + */ + +import android.content.Context; +import android.content.Intent; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import com.bumptech.glide.Glide; + +import java.util.ArrayList; + +public class PokeAdapter extends RecyclerView.Adapter { + private Context context; + public ArrayList pokemonArrayList; + + public PokeAdapter(Context context, ArrayList pokemon) { + this.context = context; + pokemonArrayList = pokemon; + } + + + /* In simplified terms, a ViewHolder is an object that holds the pointers to the views in each + each row. What does that mean? Every row has a TextView, ImageView, and CheckBox. Each row has + a ViewHolder, and that ViewHolder holder these 3 views in it (hence "view holder"). + This function returns a single ViewHolder; it is called once for every row. + */ + @Override + public CustomViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + +// This "inflates" the views, using the layout R.layout.row_view + //if(MainActivity.listView){ + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.row_view, parent, false); + //} + //else + // view = LayoutInflater.from(parent.getContext()).inflate(R.layout.grid_view, parent, false); + return new CustomViewHolder(view); + } + + /* This function takes the previously made ViewHolder and uses it to actually display the + data on the screen. Remember how the holder contains (pointers to) the 3 views? By doing, for + example, "holder.imageView" we are accessing the imageView for that row and setting the + ImageResource to be the corresponding image for that subject. + */ + @Override + public void onBindViewHolder(CustomViewHolder holder, int position) { + Pokedex.Pokemon pokemon = pokemonArrayList.get(position); + + + holder.pokemonTextView.setText(pokemon.name); + + + String name = pokemon.name.toLowerCase(); + String url = "http://img.pokemondb.net/artwork/" + name + ".jpg"; + + + Glide.with(context) + .load(url) + .into(holder.imageView); + } + + @Override + public int getItemCount() { + return pokemonArrayList.size(); + } + + class CustomViewHolder extends RecyclerView.ViewHolder { + TextView pokemonTextView; + ImageView imageView; + + public CustomViewHolder(View view) { + super(view); + this.pokemonTextView = (TextView) view.findViewById(R.id.pokemonNameTextView); + this.imageView = (ImageView) view.findViewById(R.id.imageView); + view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(context, ProfileActivity.class); + intent.putExtra("POKEMON", getAdapterPosition()); + imageView.getContext().startActivity(intent); + } + }); + /*Think about what we said in the comment above onCreateViewHolder to determine the + purpose of the ViewHolder. Does it make sense why we are doing this in the constructor? + */ + + } + } + +} diff --git a/app/src/main/java/mdb/pokedex/Pokedex.java b/app/src/main/java/mdb/pokedex/Pokedex.java new file mode 100644 index 0000000..4762196 --- /dev/null +++ b/app/src/main/java/mdb/pokedex/Pokedex.java @@ -0,0 +1,60 @@ +package mdb.pokedex; + +import android.util.Log; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.Iterator; + +/** + * Created by aneeshjindal on 9/21/16. + */ +public class Pokedex { + + public ArrayList getPokemon() { + ArrayList pokemons = new ArrayList<>(); + try { + String data = "{\"Abomasnow\":{\"#\":\" 460\",\"Attack\":\"92\",\"Defense\":\"75\",\"FlavorText\":\"\",\"HP\":\"90\",\"Sp. Atk\":\"92\",\"Sp. Def\":\"85\",\"Species\":\"Frost Tree Pokémon\",\"Speed\":\"60\",\"Total\":\"494\",\"Type\":[\"Grass\",\"Ice\"]},\"Abomasnow ( Mega Abomasnow )\":{\"#\":\" 460\",\"Attack\":\"132\",\"Defense\":\"105\",\"FlavorText\":\"\",\"HP\":\"90\",\"Sp. Atk\":\"132\",\"Sp. Def\":\"105\",\"Species\":\"\",\"Speed\":\"30\",\"Total\":\"594\",\"Type\":[\"Grass\",\"Ice\"]},\"Abra\":{\"#\":\" 063\",\"Attack\":\"20\",\"Defense\":\"15\",\"FlavorText\":\"\",\"HP\":\"25\",\"Sp. Atk\":\"105\",\"Sp. Def\":\"55\",\"Species\":\"Psi Pokémon\",\"Speed\":\"90\",\"Total\":\"310\",\"Type\":[\"Psychic\"]},\"Absol\":{\"#\":\" 359\",\"Attack\":\"130\",\"Defense\":\"60\",\"FlavorText\":\"\",\"HP\":\"65\",\"Sp. Atk\":\"75\",\"Sp. Def\":\"60\",\"Species\":\"Disaster Pokémon\",\"Speed\":\"75\",\"Total\":\"465\",\"Type\":[\"Dark\"]},\"Absol ( Mega Absol )\":{\"#\":\" 359\",\"Attack\":\"150\",\"Defense\":\"60\",\"FlavorText\":\"\",\"HP\":\"65\",\"Sp. Atk\":\"115\",\"Sp. Def\":\"60\",\"Species\":\"\",\"Speed\":\"115\",\"Total\":\"565\",\"Type\":[\"Dark\"]},\"Accelgor\":{\"#\":\" 617\",\"Attack\":\"70\",\"Defense\":\"40\",\"FlavorText\":\"When its body dries out, it weakens. So, to prevent dehydration, it wraps itself in many layers of thin membrane.\",\"HP\":\"80\",\"Sp. Atk\":\"100\",\"Sp. Def\":\"60\",\"Species\":\"Shell Out Pokémon\",\"Speed\":\"145\",\"Total\":\"495\",\"Type\":[\"Bug\"]},\"Aegislash ( Blade Forme )\":{\"#\":\" 681\",\"Attack\":\"150\",\"Defense\":\"50\",\"FlavorText\":\"\",\"HP\":\"60\",\"Sp. Atk\":\"150\",\"Sp. Def\":\"50\",\"Species\":\"\",\"Speed\":\"60\",\"Total\":\"520\",\"Type\":[\"Steel\",\"Ghost\"]},\"Aegislash ( Shield Forme )\":{\"#\":\" 681\",\"Attack\":\"50\",\"Defense\":\"150\",\"FlavorText\":\"\",\"HP\":\"60\",\"Sp. Atk\":\"50\",\"Sp. Def\":\"150\",\"Species\":\"\",\"Speed\":\"60\",\"Total\":\"520\",\"Type\":[\"Steel\",\"Ghost\"]},\"Aerodactyl\":{\"#\":\" 142\",\"Attack\":\"105\",\"Defense\":\"65\",\"FlavorText\":\"\",\"HP\":\"80\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"75\",\"Species\":\"Fossil Pokémon\",\"Speed\":\"130\",\"Total\":\"515\",\"Type\":[\"Rock\",\"Flying\"]},\"Aerodactyl ( Mega Aerodactyl )\":{\"#\":\" 142\",\"Attack\":\"135\",\"Defense\":\"85\",\"FlavorText\":\"\",\"HP\":\"80\",\"Sp. Atk\":\"70\",\"Sp. Def\":\"95\",\"Species\":\"\",\"Speed\":\"150\",\"Total\":\"615\",\"Type\":[\"Rock\",\"Flying\"]},\"Aggron\":{\"#\":\" 306\",\"Attack\":\"110\",\"Defense\":\"180\",\"FlavorText\":\"\",\"HP\":\"70\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"60\",\"Species\":\"Iron Armor Pokémon\",\"Speed\":\"50\",\"Total\":\"530\",\"Type\":[\"Steel\",\"Rock\"]},\"Aggron ( Mega Aggron )\":{\"#\":\" 306\",\"Attack\":\"140\",\"Defense\":\"230\",\"FlavorText\":\"\",\"HP\":\"70\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"80\",\"Species\":\"\",\"Speed\":\"50\",\"Total\":\"630\",\"Type\":[\"Steel\"]},\"Aipom\":{\"#\":\" 190\",\"Attack\":\"70\",\"Defense\":\"55\",\"FlavorText\":\"\",\"HP\":\"55\",\"Sp. Atk\":\"40\",\"Sp. Def\":\"55\",\"Species\":\"Long Tail Pokémon\",\"Speed\":\"85\",\"Total\":\"360\",\"Type\":[\"Normal\"]},\"Alakazam\":{\"#\":\" 065\",\"Attack\":\"50\",\"Defense\":\"45\",\"FlavorText\":\"\",\"HP\":\"55\",\"Sp. Atk\":\"135\",\"Sp. Def\":\"95\",\"Species\":\"Psi Pokémon\",\"Speed\":\"120\",\"Total\":\"500\",\"Type\":[\"Psychic\"]},\"Alakazam ( Mega Alakazam )\":{\"#\":\" 065\",\"Attack\":\"50\",\"Defense\":\"65\",\"FlavorText\":\"\",\"HP\":\"55\",\"Sp. Atk\":\"175\",\"Sp. Def\":\"95\",\"Species\":\"\",\"Speed\":\"150\",\"Total\":\"590\",\"Type\":[\"Psychic\"]},\"Alomomola\":{\"#\":\" 594\",\"Attack\":\"75\",\"Defense\":\"80\",\"FlavorText\":\"It gently holds injured and weak Pokémon in its fins. Its special membrane heals their wounds.\",\"HP\":\"165\",\"Sp. Atk\":\"40\",\"Sp. Def\":\"45\",\"Species\":\"Caring Pokémon\",\"Speed\":\"65\",\"Total\":\"470\",\"Type\":[\"Water\"]},\"Altaria\":{\"#\":\" 334\",\"Attack\":\"70\",\"Defense\":\"90\",\"FlavorText\":\"\",\"HP\":\"75\",\"Sp. Atk\":\"70\",\"Sp. Def\":\"105\",\"Species\":\"Humming Pokémon\",\"Speed\":\"80\",\"Total\":\"490\",\"Type\":[\"Dragon\",\"Flying\"]},\"Altaria ( Mega Altaria )\":{\"#\":\" 334\",\"Attack\":\"110\",\"Defense\":\"110\",\"FlavorText\":\"\",\"HP\":\"75\",\"Sp. Atk\":\"110\",\"Sp. Def\":\"105\",\"Species\":\"\",\"Speed\":\"80\",\"Total\":\"590\",\"Type\":[\"Dragon\",\"Fairy\"]},\"Amaura\":{\"#\":\" 698\",\"Attack\":\"59\",\"Defense\":\"50\",\"FlavorText\":\"\",\"HP\":\"77\",\"Sp. Atk\":\"67\",\"Sp. Def\":\"63\",\"Species\":\"Tundra Pokémon\",\"Speed\":\"46\",\"Total\":\"362\",\"Type\":[\"Rock\",\"Ice\"]},\"Ambipom\":{\"#\":\" 424\",\"Attack\":\"100\",\"Defense\":\"66\",\"FlavorText\":\"\",\"HP\":\"75\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"66\",\"Species\":\"Long Tail Pokémon\",\"Speed\":\"115\",\"Total\":\"482\",\"Type\":[\"Normal\"]},\"Amoonguss\":{\"#\":\" 591\",\"Attack\":\"85\",\"Defense\":\"70\",\"FlavorText\":\"\",\"HP\":\"114\",\"Sp. Atk\":\"85\",\"Sp. Def\":\"80\",\"Species\":\"Mushroom Pokémon\",\"Speed\":\"30\",\"Total\":\"464\",\"Type\":[\"Grass\",\"Poison\"]},\"Ampharos\":{\"#\":\" 181\",\"Attack\":\"75\",\"Defense\":\"85\",\"FlavorText\":\"\",\"HP\":\"90\",\"Sp. Atk\":\"115\",\"Sp. Def\":\"90\",\"Species\":\"Light Pokémon\",\"Speed\":\"55\",\"Total\":\"510\",\"Type\":[\"Electric\"]},\"Ampharos ( Mega Ampharos )\":{\"#\":\" 181\",\"Attack\":\"95\",\"Defense\":\"105\",\"FlavorText\":\"\",\"HP\":\"90\",\"Sp. Atk\":\"165\",\"Sp. Def\":\"110\",\"Species\":\"\",\"Speed\":\"45\",\"Total\":\"610\",\"Type\":[\"Electric\",\"Dragon\"]},\"Anorith\":{\"#\":\" 347\",\"Attack\":\"95\",\"Defense\":\"50\",\"FlavorText\":\"\",\"HP\":\"45\",\"Sp. Atk\":\"40\",\"Sp. Def\":\"50\",\"Species\":\"Old Shrimp Pokémon\",\"Speed\":\"75\",\"Total\":\"355\",\"Type\":[\"Rock\",\"Bug\"]},\"Arbok\":{\"#\":\" 024\",\"Attack\":\"85\",\"Defense\":\"69\",\"FlavorText\":\"\",\"HP\":\"60\",\"Sp. Atk\":\"65\",\"Sp. Def\":\"79\",\"Species\":\"Cobra Pokémon\",\"Speed\":\"80\",\"Total\":\"438\",\"Type\":[\"Poison\"]},\"Arcanine\":{\"#\":\" 059\",\"Attack\":\"110\",\"Defense\":\"80\",\"FlavorText\":\"\",\"HP\":\"90\",\"Sp. Atk\":\"100\",\"Sp. Def\":\"80\",\"Species\":\"Legendary Pokémon\",\"Speed\":\"95\",\"Total\":\"555\",\"Type\":[\"Fire\"]},\"Arceus\":{\"#\":\" 493\",\"Attack\":\"120\",\"Defense\":\"120\",\"FlavorText\":\"\",\"HP\":\"120\",\"Sp. Atk\":\"120\",\"Sp. Def\":\"120\",\"Species\":\"Alpha Pokémon\",\"Speed\":\"120\",\"Total\":\"720\",\"Type\":[\"Normal\"]},\"Archen\":{\"#\":\" 566\",\"Attack\":\"112\",\"Defense\":\"45\",\"FlavorText\":\"\",\"HP\":\"55\",\"Sp. Atk\":\"74\",\"Sp. Def\":\"45\",\"Species\":\"First Bird Pokémon\",\"Speed\":\"70\",\"Total\":\"401\",\"Type\":[\"Rock\",\"Flying\"]},\"Archeops\":{\"#\":\" 567\",\"Attack\":\"140\",\"Defense\":\"65\",\"FlavorText\":\"\",\"HP\":\"75\",\"Sp. Atk\":\"112\",\"Sp. Def\":\"65\",\"Species\":\"First Bird Pokémon\",\"Speed\":\"110\",\"Total\":\"567\",\"Type\":[\"Rock\",\"Flying\"]},\"Ariados\":{\"#\":\" 168\",\"Attack\":\"90\",\"Defense\":\"70\",\"FlavorText\":\"Its feet are tipped with tiny hooked claws that enable it to scuttle on ceilings and vertical walls. It constricts its foe with thin and strong silk webbing.\",\"HP\":\"70\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"60\",\"Species\":\"Long Leg Pokémon\",\"Speed\":\"40\",\"Total\":\"390\",\"Type\":[\"Bug\",\"Poison\"]},\"Armaldo\":{\"#\":\" 348\",\"Attack\":\"125\",\"Defense\":\"100\",\"FlavorText\":\"\",\"HP\":\"75\",\"Sp. Atk\":\"70\",\"Sp. Def\":\"80\",\"Species\":\"Plate Pokémon\",\"Speed\":\"45\",\"Total\":\"495\",\"Type\":[\"Rock\",\"Bug\"]},\"Aromatisse\":{\"#\":\" 683\",\"Attack\":\"72\",\"Defense\":\"72\",\"FlavorText\":\"\",\"HP\":\"101\",\"Sp. Atk\":\"99\",\"Sp. Def\":\"89\",\"Species\":\"Fragrance Pokémon\",\"Speed\":\"29\",\"Total\":\"462\",\"Type\":[\"Fairy\"]},\"Aron\":{\"#\":\" 304\",\"Attack\":\"70\",\"Defense\":\"100\",\"FlavorText\":\"\",\"HP\":\"50\",\"Sp. Atk\":\"40\",\"Sp. Def\":\"40\",\"Species\":\"Iron Armor Pokémon\",\"Speed\":\"30\",\"Total\":\"330\",\"Type\":[\"Steel\",\"Rock\"]},\"Articuno\":{\"#\":\" 144\",\"Attack\":\"85\",\"Defense\":\"100\",\"FlavorText\":\"Legendary bird POKéMON. As it flies through the sky, it cools the air, causing snow to fall.\",\"HP\":\"90\",\"Sp. Atk\":\"95\",\"Sp. Def\":\"125\",\"Species\":\"Freeze Pokémon\",\"Speed\":\"85\",\"Total\":\"580\",\"Type\":[\"Ice\",\"Flying\"]},\"Audino\":{\"#\":\" 531\",\"Attack\":\"60\",\"Defense\":\"86\",\"FlavorText\":\"\",\"HP\":\"103\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"86\",\"Species\":\"Hearing Pokémon\",\"Speed\":\"50\",\"Total\":\"445\",\"Type\":[\"Normal\"]},\"Audino ( Mega Audino )\":{\"#\":\" 531\",\"Attack\":\"60\",\"Defense\":\"126\",\"FlavorText\":\"\",\"HP\":\"103\",\"Sp. Atk\":\"80\",\"Sp. Def\":\"126\",\"Species\":\"\",\"Speed\":\"50\",\"Total\":\"545\",\"Type\":[\"Normal\",\"Fairy\"]},\"Aurorus\":{\"#\":\" 699\",\"Attack\":\"77\",\"Defense\":\"72\",\"FlavorText\":\"\",\"HP\":\"123\",\"Sp. Atk\":\"99\",\"Sp. Def\":\"92\",\"Species\":\"Tundra Pokémon\",\"Speed\":\"58\",\"Total\":\"521\",\"Type\":[\"Rock\",\"Ice\"]},\"Avalugg\":{\"#\":\" 713\",\"Attack\":\"117\",\"Defense\":\"184\",\"FlavorText\":\"\",\"HP\":\"95\",\"Sp. Atk\":\"44\",\"Sp. Def\":\"46\",\"Species\":\"Iceberg Pokémon\",\"Speed\":\"28\",\"Total\":\"514\",\"Type\":[\"Ice\"]},\"Axew\":{\"#\":\" 610\",\"Attack\":\"87\",\"Defense\":\"60\",\"FlavorText\":\"They mark their territory by leaving gashes in trees with their tusks. If a tusk breaks, a new one grows in quickly.\",\"HP\":\"46\",\"Sp. Atk\":\"30\",\"Sp. Def\":\"40\",\"Species\":\"Tusk Pokémon\",\"Speed\":\"57\",\"Total\":\"320\",\"Type\":[\"Dragon\"]},\"Azelf\":{\"#\":\" 482\",\"Attack\":\"125\",\"Defense\":\"70\",\"FlavorText\":\"\",\"HP\":\"75\",\"Sp. Atk\":\"125\",\"Sp. Def\":\"70\",\"Species\":\"Willpower Pokémon\",\"Speed\":\"115\",\"Total\":\"580\",\"Type\":[\"Psychic\"]},\"Azumarill\":{\"#\":\" 184\",\"Attack\":\"50\",\"Defense\":\"80\",\"FlavorText\":\"\",\"HP\":\"100\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"80\",\"Species\":\"Aqua Rabbit Pokémon\",\"Speed\":\"50\",\"Total\":\"420\",\"Type\":[\"Water\",\"Fairy\"]},\"Azurill\":{\"#\":\" 298\",\"Attack\":\"20\",\"Defense\":\"40\",\"FlavorText\":\"\",\"HP\":\"50\",\"Sp. Atk\":\"20\",\"Sp. Def\":\"40\",\"Species\":\"Polka Dot Pokémon\",\"Speed\":\"20\",\"Total\":\"190\",\"Type\":[\"Normal\",\"Fairy\"]},\"Bagon\":{\"#\":\" 371\",\"Attack\":\"75\",\"Defense\":\"60\",\"FlavorText\":\"\",\"HP\":\"45\",\"Sp. Atk\":\"40\",\"Sp. Def\":\"30\",\"Species\":\"Rock Head Pokémon\",\"Speed\":\"50\",\"Total\":\"300\",\"Type\":[\"Dragon\"]},\"Baltoy\":{\"#\":\" 343\",\"Attack\":\"40\",\"Defense\":\"55\",\"FlavorText\":\"\",\"HP\":\"40\",\"Sp. Atk\":\"40\",\"Sp. Def\":\"70\",\"Species\":\"Clay Doll Pokémon\",\"Speed\":\"55\",\"Total\":\"300\",\"Type\":[\"Ground\",\"Psychic\"]},\"Banette\":{\"#\":\" 354\",\"Attack\":\"115\",\"Defense\":\"65\",\"FlavorText\":\"\",\"HP\":\"64\",\"Sp. Atk\":\"83\",\"Sp. Def\":\"63\",\"Species\":\"Marionette Pokémon\",\"Speed\":\"65\",\"Total\":\"455\",\"Type\":[\"Ghost\"]},\"Banette ( Mega Banette )\":{\"#\":\" 354\",\"Attack\":\"165\",\"Defense\":\"75\",\"FlavorText\":\"\",\"HP\":\"64\",\"Sp. Atk\":\"93\",\"Sp. Def\":\"83\",\"Species\":\"\",\"Speed\":\"75\",\"Total\":\"555\",\"Type\":[\"Ghost\"]},\"Barbaracle\":{\"#\":\" 689\",\"Attack\":\"105\",\"Defense\":\"115\",\"FlavorText\":\"\",\"HP\":\"72\",\"Sp. Atk\":\"54\",\"Sp. Def\":\"86\",\"Species\":\"Collective Pokémon\",\"Speed\":\"68\",\"Total\":\"500\",\"Type\":[\"Rock\",\"Water\"]},\"Barboach\":{\"#\":\" 339\",\"Attack\":\"48\",\"Defense\":\"43\",\"FlavorText\":\"\",\"HP\":\"50\",\"Sp. Atk\":\"46\",\"Sp. Def\":\"41\",\"Species\":\"Whiskers Pokémon\",\"Speed\":\"60\",\"Total\":\"288\",\"Type\":[\"Water\",\"Ground\"]},\"Basculin\":{\"#\":\" 550\",\"Attack\":\"92\",\"Defense\":\"65\",\"FlavorText\":\"\",\"HP\":\"70\",\"Sp. Atk\":\"80\",\"Sp. Def\":\"55\",\"Species\":\"Hostile Pokémon\",\"Speed\":\"98\",\"Total\":\"460\",\"Type\":[\"Water\"]},\"Bastiodon\":{\"#\":\" 411\",\"Attack\":\"52\",\"Defense\":\"168\",\"FlavorText\":\"\",\"HP\":\"60\",\"Sp. Atk\":\"47\",\"Sp. Def\":\"138\",\"Species\":\"Shield Pokémon\",\"Speed\":\"30\",\"Total\":\"495\",\"Type\":[\"Rock\",\"Steel\"]},\"Bayleef\":{\"#\":\" 153\",\"Attack\":\"62\",\"Defense\":\"80\",\"FlavorText\":\"\",\"HP\":\"60\",\"Sp. Atk\":\"63\",\"Sp. Def\":\"80\",\"Species\":\"Leaf Pokémon\",\"Speed\":\"60\",\"Total\":\"405\",\"Type\":[\"Grass\"]},\"Beartic\":{\"#\":\" 614\",\"Attack\":\"110\",\"Defense\":\"80\",\"FlavorText\":\"\",\"HP\":\"95\",\"Sp. Atk\":\"70\",\"Sp. Def\":\"80\",\"Species\":\"Freezing Pokémon\",\"Speed\":\"50\",\"Total\":\"485\",\"Type\":[\"Ice\"]},\"Beautifly\":{\"#\":\" 267\",\"Attack\":\"70\",\"Defense\":\"50\",\"FlavorText\":\"Despite its looks, it is aggressive. It jabs with its long, thin mouth if disturbed while collecting pollen.\",\"HP\":\"60\",\"Sp. Atk\":\"100\",\"Sp. Def\":\"50\",\"Species\":\"Butterfly Pokémon\",\"Speed\":\"65\",\"Total\":\"395\",\"Type\":[\"Bug\",\"Flying\"]},\"Beedrill\":{\"#\":\" 015\",\"Attack\":\"90\",\"Defense\":\"40\",\"FlavorText\":\"\",\"HP\":\"65\",\"Sp. Atk\":\"45\",\"Sp. Def\":\"80\",\"Species\":\"Poison Bee Pokémon\",\"Speed\":\"75\",\"Total\":\"395\",\"Type\":[\"Bug\",\"Poison\"]},\"Beedrill ( Mega Beedrill )\":{\"#\":\" 015\",\"Attack\":\"150\",\"Defense\":\"40\",\"FlavorText\":\"\",\"HP\":\"65\",\"Sp. Atk\":\"15\",\"Sp. Def\":\"80\",\"Species\":\"\",\"Speed\":\"145\",\"Total\":\"495\",\"Type\":[\"Bug\",\"Poison\"]},\"Beheeyem\":{\"#\":\" 606\",\"Attack\":\"75\",\"Defense\":\"75\",\"FlavorText\":\"\",\"HP\":\"75\",\"Sp. Atk\":\"125\",\"Sp. Def\":\"95\",\"Species\":\"Cerebral Pokémon\",\"Speed\":\"40\",\"Total\":\"485\",\"Type\":[\"Psychic\"]},\"Beldum\":{\"#\":\" 374\",\"Attack\":\"55\",\"Defense\":\"80\",\"FlavorText\":\"\",\"HP\":\"40\",\"Sp. Atk\":\"35\",\"Sp. Def\":\"60\",\"Species\":\"Iron Ball Pokémon\",\"Speed\":\"30\",\"Total\":\"300\",\"Type\":[\"Steel\",\"Psychic\"]},\"Bellossom\":{\"#\":\" 182\",\"Attack\":\"80\",\"Defense\":\"95\",\"FlavorText\":\"\",\"HP\":\"75\",\"Sp. Atk\":\"90\",\"Sp. Def\":\"100\",\"Species\":\"Flower Pokémon\",\"Speed\":\"50\",\"Total\":\"490\",\"Type\":[\"Grass\"]},\"Bellsprout\":{\"#\":\" 069\",\"Attack\":\"75\",\"Defense\":\"35\",\"FlavorText\":\"If it notices anything that moves, it immediately flings its vine at the object.\",\"HP\":\"50\",\"Sp. Atk\":\"70\",\"Sp. Def\":\"30\",\"Species\":\"Flower Pokémon\",\"Speed\":\"40\",\"Total\":\"300\",\"Type\":[\"Grass\",\"Poison\"]},\"Bergmite\":{\"#\":\" 712\",\"Attack\":\"69\",\"Defense\":\"85\",\"FlavorText\":\"\",\"HP\":\"55\",\"Sp. Atk\":\"32\",\"Sp. Def\":\"35\",\"Species\":\"Ice Chunk Pokémon\",\"Speed\":\"28\",\"Total\":\"304\",\"Type\":[\"Ice\"]},\"Bibarel\":{\"#\":\" 400\",\"Attack\":\"85\",\"Defense\":\"60\",\"FlavorText\":\"\",\"HP\":\"79\",\"Sp. Atk\":\"55\",\"Sp. Def\":\"60\",\"Species\":\"Beaver Pokémon\",\"Speed\":\"71\",\"Total\":\"410\",\"Type\":[\"Normal\",\"Water\"]},\"Bidoof\":{\"#\":\" 399\",\"Attack\":\"45\",\"Defense\":\"40\",\"FlavorText\":\"\",\"HP\":\"59\",\"Sp. Atk\":\"35\",\"Sp. Def\":\"40\",\"Species\":\"Plump Mouse Pokémon\",\"Speed\":\"31\",\"Total\":\"250\",\"Type\":[\"Normal\"]},\"Binacle\":{\"#\":\" 688\",\"Attack\":\"52\",\"Defense\":\"67\",\"FlavorText\":\"\",\"HP\":\"42\",\"Sp. Atk\":\"39\",\"Sp. Def\":\"56\",\"Species\":\"Two-Handed Pokémon\",\"Speed\":\"50\",\"Total\":\"306\",\"Type\":[\"Rock\",\"Water\"]},\"Bisharp\":{\"#\":\" 625\",\"Attack\":\"125\",\"Defense\":\"100\",\"FlavorText\":\"Bisharp pursues prey in the company of a large group of Pawniard. Then Bisharp finishes off the prey.\",\"HP\":\"65\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"70\",\"Species\":\"Sword Blade Pokémon\",\"Speed\":\"70\",\"Total\":\"490\",\"Type\":[\"Dark\",\"Steel\"]},\"Blastoise\":{\"#\":\" 009\",\"Attack\":\"83\",\"Defense\":\"100\",\"FlavorText\":\"\",\"HP\":\"79\",\"Sp. Atk\":\"85\",\"Sp. Def\":\"105\",\"Species\":\"Shellfish Pokémon\",\"Speed\":\"78\",\"Total\":\"530\",\"Type\":[\"Water\"]},\"Blastoise ( Mega Blastoise )\":{\"#\":\" 009\",\"Attack\":\"103\",\"Defense\":\"120\",\"FlavorText\":\"\",\"HP\":\"79\",\"Sp. Atk\":\"135\",\"Sp. Def\":\"115\",\"Species\":\"\",\"Speed\":\"78\",\"Total\":\"630\",\"Type\":[\"Water\"]},\"Blaziken\":{\"#\":\" 257\",\"Attack\":\"120\",\"Defense\":\"70\",\"FlavorText\":\"\",\"HP\":\"80\",\"Sp. Atk\":\"110\",\"Sp. Def\":\"70\",\"Species\":\"Blaze Pokémon\",\"Speed\":\"80\",\"Total\":\"530\",\"Type\":[\"Fire\",\"Fighting\"]},\"Blaziken ( Mega Blaziken )\":{\"#\":\" 257\",\"Attack\":\"160\",\"Defense\":\"80\",\"FlavorText\":\"\",\"HP\":\"80\",\"Sp. Atk\":\"130\",\"Sp. Def\":\"80\",\"Species\":\"\",\"Speed\":\"100\",\"Total\":\"630\",\"Type\":[\"Fire\",\"Fighting\"]},\"Blissey\":{\"#\":\" 242\",\"Attack\":\"10\",\"Defense\":\"10\",\"FlavorText\":\"\",\"HP\":\"255\",\"Sp. Atk\":\"75\",\"Sp. Def\":\"135\",\"Species\":\"Happiness Pokémon\",\"Speed\":\"55\",\"Total\":\"540\",\"Type\":[\"Normal\"]},\"Blitzle\":{\"#\":\" 522\",\"Attack\":\"60\",\"Defense\":\"32\",\"FlavorText\":\"\",\"HP\":\"45\",\"Sp. Atk\":\"50\",\"Sp. Def\":\"32\",\"Species\":\"Electrified Pokémon\",\"Speed\":\"76\",\"Total\":\"295\",\"Type\":[\"Electric\"]},\"Boldore\":{\"#\":\" 525\",\"Attack\":\"105\",\"Defense\":\"105\",\"FlavorText\":\"\",\"HP\":\"70\",\"Sp. Atk\":\"50\",\"Sp. Def\":\"40\",\"Species\":\"Ore Pokémon\",\"Speed\":\"20\",\"Total\":\"390\",\"Type\":[\"Rock\"]},\"Bonsly\":{\"#\":\" 438\",\"Attack\":\"80\",\"Defense\":\"95\",\"FlavorText\":\"\",\"HP\":\"50\",\"Sp. Atk\":\"10\",\"Sp. Def\":\"45\",\"Species\":\"Bonsai Pokémon\",\"Speed\":\"10\",\"Total\":\"290\",\"Type\":[\"Rock\"]},\"Bouffalant\":{\"#\":\" 626\",\"Attack\":\"110\",\"Defense\":\"95\",\"FlavorText\":\"\",\"HP\":\"95\",\"Sp. Atk\":\"40\",\"Sp. Def\":\"95\",\"Species\":\"Bash Buffalo Pokémon\",\"Speed\":\"55\",\"Total\":\"490\",\"Type\":[\"Normal\"]},\"Braixen\":{\"#\":\" 654\",\"Attack\":\"59\",\"Defense\":\"58\",\"FlavorText\":\"\",\"HP\":\"59\",\"Sp. Atk\":\"90\",\"Sp. Def\":\"70\",\"Species\":\"Fox Pokémon\",\"Speed\":\"73\",\"Total\":\"409\",\"Type\":[\"Fire\"]},\"Braviary\":{\"#\":\" 628\",\"Attack\":\"123\",\"Defense\":\"75\",\"FlavorText\":\"\",\"HP\":\"100\",\"Sp. Atk\":\"57\",\"Sp. Def\":\"75\",\"Species\":\"Valiant Pokémon\",\"Speed\":\"80\",\"Total\":\"510\",\"Type\":[\"Normal\",\"Flying\"]},\"Breloom\":{\"#\":\" 286\",\"Attack\":\"130\",\"Defense\":\"80\",\"FlavorText\":\"\",\"HP\":\"60\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"60\",\"Species\":\"Mushroom Pokémon\",\"Speed\":\"70\",\"Total\":\"460\",\"Type\":[\"Grass\",\"Fighting\"]},\"Bronzong\":{\"#\":\" 437\",\"Attack\":\"89\",\"Defense\":\"116\",\"FlavorText\":\"\",\"HP\":\"67\",\"Sp. Atk\":\"79\",\"Sp. Def\":\"116\",\"Species\":\"Bronze Bell Pokémon\",\"Speed\":\"33\",\"Total\":\"500\",\"Type\":[\"Steel\",\"Psychic\"]},\"Bronzor\":{\"#\":\" 436\",\"Attack\":\"24\",\"Defense\":\"86\",\"FlavorText\":\"\",\"HP\":\"57\",\"Sp. Atk\":\"24\",\"Sp. Def\":\"86\",\"Species\":\"Bronze Pokémon\",\"Speed\":\"23\",\"Total\":\"300\",\"Type\":[\"Steel\",\"Psychic\"]},\"Budew\":{\"#\":\" 406\",\"Attack\":\"30\",\"Defense\":\"35\",\"FlavorText\":\"\",\"HP\":\"40\",\"Sp. Atk\":\"50\",\"Sp. Def\":\"70\",\"Species\":\"Bud Pokémon\",\"Speed\":\"55\",\"Total\":\"280\",\"Type\":[\"Grass\",\"Poison\"]},\"Buizel\":{\"#\":\" 418\",\"Attack\":\"65\",\"Defense\":\"35\",\"FlavorText\":\"\",\"HP\":\"55\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"30\",\"Species\":\"Sea Weasel Pokémon\",\"Speed\":\"85\",\"Total\":\"330\",\"Type\":[\"Water\"]},\"Bulbasaur\":{\"#\":\" 001\",\"Attack\":\"49\",\"Defense\":\"49\",\"FlavorText\":\"While it is young, it uses the nutrients that are stored in the seeds on its back in order to grow.\",\"HP\":\"45\",\"Sp. Atk\":\"65\",\"Sp. Def\":\"65\",\"Species\":\"Seed Pokémon\",\"Speed\":\"45\",\"Total\":\"318\",\"Type\":[\"Grass\",\"Poison\"]},\"Buneary\":{\"#\":\" 427\",\"Attack\":\"66\",\"Defense\":\"44\",\"FlavorText\":\"\",\"HP\":\"55\",\"Sp. Atk\":\"44\",\"Sp. Def\":\"56\",\"Species\":\"Rabbit Pokémon\",\"Speed\":\"85\",\"Total\":\"350\",\"Type\":[\"Normal\"]},\"Bunnelby\":{\"#\":\" 659\",\"Attack\":\"36\",\"Defense\":\"38\",\"FlavorText\":\"\",\"HP\":\"38\",\"Sp. Atk\":\"32\",\"Sp. Def\":\"36\",\"Species\":\"Digging Pokémon\",\"Speed\":\"57\",\"Total\":\"237\",\"Type\":[\"Normal\"]},\"Burmy\":{\"#\":\" 412\",\"Attack\":\"29\",\"Defense\":\"45\",\"FlavorText\":\"\",\"HP\":\"40\",\"Sp. Atk\":\"29\",\"Sp. Def\":\"45\",\"Species\":\"Bagworm Pokémon\",\"Speed\":\"36\",\"Total\":\"224\",\"Type\":[\"Bug\"]},\"Butterfree\":{\"#\":\" 012\",\"Attack\":\"45\",\"Defense\":\"50\",\"FlavorText\":\"It flits from flower to flower, collecting honey. It can even identify distant flowers in bloom.\",\"HP\":\"60\",\"Sp. Atk\":\"90\",\"Sp. Def\":\"80\",\"Species\":\"Butterfly Pokémon\",\"Speed\":\"70\",\"Total\":\"395\",\"Type\":[\"Bug\",\"Flying\"]},\"Cacnea\":{\"#\":\" 331\",\"Attack\":\"85\",\"Defense\":\"40\",\"FlavorText\":\"\",\"HP\":\"50\",\"Sp. Atk\":\"85\",\"Sp. Def\":\"40\",\"Species\":\"Cactus Pokémon\",\"Speed\":\"35\",\"Total\":\"335\",\"Type\":[\"Grass\"]},\"Cacturne\":{\"#\":\" 332\",\"Attack\":\"115\",\"Defense\":\"60\",\"FlavorText\":\"\",\"HP\":\"70\",\"Sp. Atk\":\"115\",\"Sp. Def\":\"60\",\"Species\":\"Scarecrow Pokémon\",\"Speed\":\"55\",\"Total\":\"475\",\"Type\":[\"Grass\",\"Dark\"]},\"Camerupt\":{\"#\":\" 323\",\"Attack\":\"100\",\"Defense\":\"70\",\"FlavorText\":\"\",\"HP\":\"70\",\"Sp. Atk\":\"105\",\"Sp. Def\":\"75\",\"Species\":\"Eruption Pokémon\",\"Speed\":\"40\",\"Total\":\"460\",\"Type\":[\"Fire\",\"Ground\"]},\"Camerupt ( Mega Camerupt )\":{\"#\":\" 323\",\"Attack\":\"120\",\"Defense\":\"100\",\"FlavorText\":\"\",\"HP\":\"70\",\"Sp. Atk\":\"145\",\"Sp. Def\":\"105\",\"Species\":\"\",\"Speed\":\"20\",\"Total\":\"560\",\"Type\":[\"Fire\",\"Ground\"]},\"Carbink\":{\"#\":\" 703\",\"Attack\":\"50\",\"Defense\":\"150\",\"FlavorText\":\"\",\"HP\":\"50\",\"Sp. Atk\":\"50\",\"Sp. Def\":\"150\",\"Species\":\"Jewel Pokémon\",\"Speed\":\"50\",\"Total\":\"500\",\"Type\":[\"Rock\",\"Fairy\"]},\"Carnivine\":{\"#\":\" 455\",\"Attack\":\"100\",\"Defense\":\"72\",\"FlavorText\":\"\",\"HP\":\"74\",\"Sp. Atk\":\"90\",\"Sp. Def\":\"72\",\"Species\":\"Bug Catcher Pokémon\",\"Speed\":\"46\",\"Total\":\"454\",\"Type\":[\"Grass\"]},\"Carracosta\":{\"#\":\" 565\",\"Attack\":\"108\",\"Defense\":\"133\",\"FlavorText\":\"\",\"HP\":\"74\",\"Sp. Atk\":\"83\",\"Sp. Def\":\"65\",\"Species\":\"Prototurtle Pokémon\",\"Speed\":\"32\",\"Total\":\"495\",\"Type\":[\"Water\",\"Rock\"]},\"Carvanha\":{\"#\":\" 318\",\"Attack\":\"90\",\"Defense\":\"20\",\"FlavorText\":\"\",\"HP\":\"45\",\"Sp. Atk\":\"65\",\"Sp. Def\":\"20\",\"Species\":\"Savage Pokémon\",\"Speed\":\"65\",\"Total\":\"305\",\"Type\":[\"Water\",\"Dark\"]},\"Cascoon\":{\"#\":\" 268\",\"Attack\":\"35\",\"Defense\":\"55\",\"FlavorText\":\"\",\"HP\":\"50\",\"Sp. Atk\":\"25\",\"Sp. Def\":\"25\",\"Species\":\"Cocoon Pokémon\",\"Speed\":\"15\",\"Total\":\"205\",\"Type\":[\"Bug\"]},\"Castform\":{\"#\":\" 351\",\"Attack\":\"70\",\"Defense\":\"70\",\"FlavorText\":\"\",\"HP\":\"70\",\"Sp. Atk\":\"70\",\"Sp. Def\":\"70\",\"Species\":\"Weather Pokémon\",\"Speed\":\"70\",\"Total\":\"420\",\"Type\":[\"Normal\"]},\"Caterpie\":{\"#\":\" 010\",\"Attack\":\"30\",\"Defense\":\"35\",\"FlavorText\":\"It crawls into foliage where it camouflages itself among leaves that are the same color as its body.\",\"HP\":\"45\",\"Sp. Atk\":\"20\",\"Sp. Def\":\"20\",\"Species\":\"Worm Pokémon\",\"Speed\":\"45\",\"Total\":\"195\",\"Type\":[\"Bug\"]},\"Celebi\":{\"#\":\" 251\",\"Attack\":\"100\",\"Defense\":\"100\",\"FlavorText\":\"\",\"HP\":\"100\",\"Sp. Atk\":\"100\",\"Sp. Def\":\"100\",\"Species\":\"Time Travel Pokémon\",\"Speed\":\"100\",\"Total\":\"600\",\"Type\":[\"Psychic\",\"Grass\"]},\"Chandelure\":{\"#\":\" 609\",\"Attack\":\"55\",\"Defense\":\"90\",\"FlavorText\":\"The spirits burned up in its ominous flame lose their way and wander this world forever.\",\"HP\":\"60\",\"Sp. Atk\":\"145\",\"Sp. Def\":\"90\",\"Species\":\"Luring Pokémon\",\"Speed\":\"80\",\"Total\":\"520\",\"Type\":[\"Ghost\",\"Fire\"]},\"Chansey\":{\"#\":\" 113\",\"Attack\":\"5\",\"Defense\":\"5\",\"FlavorText\":\"\",\"HP\":\"250\",\"Sp. Atk\":\"35\",\"Sp. Def\":\"105\",\"Species\":\"Egg Pokémon\",\"Speed\":\"50\",\"Total\":\"450\",\"Type\":[\"Normal\"]},\"Charizard\":{\"#\":\" 006\",\"Attack\":\"84\",\"Defense\":\"78\",\"FlavorText\":\"\",\"HP\":\"78\",\"Sp. Atk\":\"109\",\"Sp. Def\":\"85\",\"Species\":\"Flame Pokémon\",\"Speed\":\"100\",\"Total\":\"534\",\"Type\":[\"Fire\",\"Flying\"]},\"Charizard ( Mega Charizard X )\":{\"#\":\" 006\",\"Attack\":\"130\",\"Defense\":\"111\",\"FlavorText\":\"\",\"HP\":\"78\",\"Sp. Atk\":\"130\",\"Sp. Def\":\"85\",\"Species\":\"\",\"Speed\":\"100\",\"Total\":\"634\",\"Type\":[\"Fire\",\"Dragon\"]},\"Charizard ( Mega Charizard Y )\":{\"#\":\" 006\",\"Attack\":\"104\",\"Defense\":\"78\",\"FlavorText\":\"\",\"HP\":\"78\",\"Sp. Atk\":\"159\",\"Sp. Def\":\"115\",\"Species\":\"\",\"Speed\":\"100\",\"Total\":\"634\",\"Type\":[\"Fire\",\"Flying\"]},\"Charmander\":{\"#\":\" 004\",\"Attack\":\"52\",\"Defense\":\"43\",\"FlavorText\":\"If it's healthy, the flame on the tip of its tail will burn vigorously, even if it gets a bit wet.\",\"HP\":\"39\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"50\",\"Species\":\"Lizard Pokémon\",\"Speed\":\"65\",\"Total\":\"309\",\"Type\":[\"Fire\"]},\"Charmeleon\":{\"#\":\" 005\",\"Attack\":\"64\",\"Defense\":\"58\",\"FlavorText\":\"If it becomes agitated during battle, it spouts intense flames, incinerating its surroundings.\",\"HP\":\"58\",\"Sp. Atk\":\"80\",\"Sp. Def\":\"65\",\"Species\":\"Flame Pokémon\",\"Speed\":\"80\",\"Total\":\"405\",\"Type\":[\"Fire\"]},\"Chatot\":{\"#\":\" 441\",\"Attack\":\"65\",\"Defense\":\"45\",\"FlavorText\":\"\",\"HP\":\"76\",\"Sp. Atk\":\"92\",\"Sp. Def\":\"42\",\"Species\":\"Music Note Pokémon\",\"Speed\":\"91\",\"Total\":\"411\",\"Type\":[\"Normal\",\"Flying\"]},\"Cherrim\":{\"#\":\" 421\",\"Attack\":\"60\",\"Defense\":\"70\",\"FlavorText\":\"\",\"HP\":\"70\",\"Sp. Atk\":\"87\",\"Sp. Def\":\"78\",\"Species\":\"Blossom Pokémon\",\"Speed\":\"85\",\"Total\":\"450\",\"Type\":[\"Grass\"]},\"Cherubi\":{\"#\":\" 420\",\"Attack\":\"35\",\"Defense\":\"45\",\"FlavorText\":\"\",\"HP\":\"45\",\"Sp. Atk\":\"62\",\"Sp. Def\":\"53\",\"Species\":\"Cherry Pokémon\",\"Speed\":\"35\",\"Total\":\"275\",\"Type\":[\"Grass\"]},\"Chesnaught\":{\"#\":\" 652\",\"Attack\":\"107\",\"Defense\":\"122\",\"FlavorText\":\"\",\"HP\":\"88\",\"Sp. Atk\":\"74\",\"Sp. Def\":\"75\",\"Species\":\"Spiny Armor Pokémon\",\"Speed\":\"64\",\"Total\":\"530\",\"Type\":[\"Grass\",\"Fighting\"]},\"Chespin\":{\"#\":\" 650\",\"Attack\":\"61\",\"Defense\":\"65\",\"FlavorText\":\"\",\"HP\":\"56\",\"Sp. Atk\":\"48\",\"Sp. Def\":\"45\",\"Species\":\"Spiny Nut Pokémon\",\"Speed\":\"38\",\"Total\":\"313\",\"Type\":[\"Grass\"]},\"Chikorita\":{\"#\":\" 152\",\"Attack\":\"49\",\"Defense\":\"65\",\"FlavorText\":\"\",\"HP\":\"45\",\"Sp. Atk\":\"49\",\"Sp. Def\":\"65\",\"Species\":\"Leaf Pokémon\",\"Speed\":\"45\",\"Total\":\"318\",\"Type\":[\"Grass\"]},\"Chimchar\":{\"#\":\" 390\",\"Attack\":\"58\",\"Defense\":\"44\",\"FlavorText\":\"\",\"HP\":\"44\",\"Sp. Atk\":\"58\",\"Sp. Def\":\"44\",\"Species\":\"Chimp Pokémon\",\"Speed\":\"61\",\"Total\":\"309\",\"Type\":[\"Fire\"]},\"Chimecho\":{\"#\":\" 358\",\"Attack\":\"50\",\"Defense\":\"70\",\"FlavorText\":\"Its cries echo inside its hollow body to emerge as beautiful notes for startling and repelling foes.\",\"HP\":\"65\",\"Sp. Atk\":\"95\",\"Sp. Def\":\"80\",\"Species\":\"Wind Chime Pokémon\",\"Speed\":\"65\",\"Total\":\"425\",\"Type\":[\"Psychic\"]},\"Chinchou\":{\"#\":\" 170\",\"Attack\":\"38\",\"Defense\":\"38\",\"FlavorText\":\"\",\"HP\":\"75\",\"Sp. Atk\":\"56\",\"Sp. Def\":\"56\",\"Species\":\"Angler Pokémon\",\"Speed\":\"67\",\"Total\":\"330\",\"Type\":[\"Water\",\"Electric\"]},\"Chingling\":{\"#\":\" 433\",\"Attack\":\"30\",\"Defense\":\"50\",\"FlavorText\":\"\",\"HP\":\"45\",\"Sp. Atk\":\"65\",\"Sp. Def\":\"50\",\"Species\":\"Bell Pokémon\",\"Speed\":\"45\",\"Total\":\"285\",\"Type\":[\"Psychic\"]},\"Cinccino\":{\"#\":\" 573\",\"Attack\":\"95\",\"Defense\":\"60\",\"FlavorText\":\"\",\"HP\":\"75\",\"Sp. Atk\":\"65\",\"Sp. Def\":\"60\",\"Species\":\"Scarf Pokémon\",\"Speed\":\"115\",\"Total\":\"470\",\"Type\":[\"Normal\"]},\"Clamperl\":{\"#\":\" 366\",\"Attack\":\"64\",\"Defense\":\"85\",\"FlavorText\":\"\",\"HP\":\"35\",\"Sp. Atk\":\"74\",\"Sp. Def\":\"55\",\"Species\":\"Bivalve Pokémon\",\"Speed\":\"32\",\"Total\":\"345\",\"Type\":[\"Water\"]},\"Clauncher\":{\"#\":\" 692\",\"Attack\":\"53\",\"Defense\":\"62\",\"FlavorText\":\"\",\"HP\":\"50\",\"Sp. Atk\":\"58\",\"Sp. Def\":\"63\",\"Species\":\"Water Gun Pokémon\",\"Speed\":\"44\",\"Total\":\"330\",\"Type\":[\"Water\"]},\"Clawitzer\":{\"#\":\" 693\",\"Attack\":\"73\",\"Defense\":\"88\",\"FlavorText\":\"\",\"HP\":\"71\",\"Sp. Atk\":\"120\",\"Sp. Def\":\"89\",\"Species\":\"Howitzer Pokémon\",\"Speed\":\"59\",\"Total\":\"500\",\"Type\":[\"Water\"]},\"Claydol\":{\"#\":\" 344\",\"Attack\":\"70\",\"Defense\":\"105\",\"FlavorText\":\"\",\"HP\":\"60\",\"Sp. Atk\":\"70\",\"Sp. Def\":\"120\",\"Species\":\"Clay Doll Pokémon\",\"Speed\":\"75\",\"Total\":\"500\",\"Type\":[\"Ground\",\"Psychic\"]},\"Clefable\":{\"#\":\" 036\",\"Attack\":\"70\",\"Defense\":\"73\",\"FlavorText\":\"\",\"HP\":\"95\",\"Sp. Atk\":\"95\",\"Sp. Def\":\"90\",\"Species\":\"Fairy Pokémon\",\"Speed\":\"60\",\"Total\":\"483\",\"Type\":[\"Fairy\"]},\"Clefairy\":{\"#\":\" 035\",\"Attack\":\"45\",\"Defense\":\"48\",\"FlavorText\":\"\",\"HP\":\"70\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"65\",\"Species\":\"Fairy Pokémon\",\"Speed\":\"35\",\"Total\":\"323\",\"Type\":[\"Fairy\"]},\"Cleffa\":{\"#\":\" 173\",\"Attack\":\"25\",\"Defense\":\"28\",\"FlavorText\":\"\",\"HP\":\"50\",\"Sp. Atk\":\"45\",\"Sp. Def\":\"55\",\"Species\":\"Star Shape Pokémon\",\"Speed\":\"15\",\"Total\":\"218\",\"Type\":[\"Fairy\"]},\"Cloyster\":{\"#\":\" 091\",\"Attack\":\"95\",\"Defense\":\"180\",\"FlavorText\":\"\",\"HP\":\"50\",\"Sp. Atk\":\"85\",\"Sp. Def\":\"45\",\"Species\":\"Bivalve Pokémon\",\"Speed\":\"70\",\"Total\":\"525\",\"Type\":[\"Water\",\"Ice\"]},\"Cobalion\":{\"#\":\" 638\",\"Attack\":\"90\",\"Defense\":\"129\",\"FlavorText\":\"\",\"HP\":\"91\",\"Sp. Atk\":\"90\",\"Sp. Def\":\"72\",\"Species\":\"Iron Will Pokémon\",\"Speed\":\"108\",\"Total\":\"580\",\"Type\":[\"Steel\",\"Fighting\"]},\"Cofagrigus\":{\"#\":\" 563\",\"Attack\":\"50\",\"Defense\":\"145\",\"FlavorText\":\"\",\"HP\":\"58\",\"Sp. Atk\":\"95\",\"Sp. Def\":\"105\",\"Species\":\"Coffin Pokémon\",\"Speed\":\"30\",\"Total\":\"483\",\"Type\":[\"Ghost\"]},\"Combee\":{\"#\":\" 415\",\"Attack\":\"30\",\"Defense\":\"42\",\"FlavorText\":\"\",\"HP\":\"30\",\"Sp. Atk\":\"30\",\"Sp. Def\":\"42\",\"Species\":\"Tiny Bee Pokémon\",\"Speed\":\"70\",\"Total\":\"244\",\"Type\":[\"Bug\",\"Flying\"]},\"Combusken\":{\"#\":\" 256\",\"Attack\":\"85\",\"Defense\":\"60\",\"FlavorText\":\"\",\"HP\":\"60\",\"Sp. Atk\":\"85\",\"Sp. Def\":\"60\",\"Species\":\"Young Fowl Pokémon\",\"Speed\":\"55\",\"Total\":\"405\",\"Type\":[\"Fire\",\"Fighting\"]},\"Conkeldurr\":{\"#\":\" 534\",\"Attack\":\"140\",\"Defense\":\"95\",\"FlavorText\":\"Rather than rely on force, they master moves that utilize the centrifugal force of spinning concrete.\",\"HP\":\"105\",\"Sp. Atk\":\"55\",\"Sp. Def\":\"65\",\"Species\":\"Muscular Pokémon\",\"Speed\":\"45\",\"Total\":\"505\",\"Type\":[\"Fighting\"]},\"Corphish\":{\"#\":\" 341\",\"Attack\":\"80\",\"Defense\":\"65\",\"FlavorText\":\"\",\"HP\":\"43\",\"Sp. Atk\":\"50\",\"Sp. Def\":\"35\",\"Species\":\"Ruffian Pokémon\",\"Speed\":\"35\",\"Total\":\"308\",\"Type\":[\"Water\"]},\"Corsola\":{\"#\":\" 222\",\"Attack\":\"55\",\"Defense\":\"85\",\"FlavorText\":\"\",\"HP\":\"55\",\"Sp. Atk\":\"65\",\"Sp. Def\":\"85\",\"Species\":\"Coral Pokémon\",\"Speed\":\"35\",\"Total\":\"380\",\"Type\":[\"Water\",\"Rock\"]},\"Cottonee\":{\"#\":\" 546\",\"Attack\":\"27\",\"Defense\":\"60\",\"FlavorText\":\"\",\"HP\":\"40\",\"Sp. Atk\":\"37\",\"Sp. Def\":\"50\",\"Species\":\"Cotton Puff Pokémon\",\"Speed\":\"66\",\"Total\":\"280\",\"Type\":[\"Grass\",\"Fairy\"]},\"Cradily\":{\"#\":\" 346\",\"Attack\":\"81\",\"Defense\":\"97\",\"FlavorText\":\"\",\"HP\":\"86\",\"Sp. Atk\":\"81\",\"Sp. Def\":\"107\",\"Species\":\"Barnacle Pokémon\",\"Speed\":\"43\",\"Total\":\"495\",\"Type\":[\"Rock\",\"Grass\"]},\"Cranidos\":{\"#\":\" 408\",\"Attack\":\"125\",\"Defense\":\"40\",\"FlavorText\":\"\",\"HP\":\"67\",\"Sp. Atk\":\"30\",\"Sp. Def\":\"30\",\"Species\":\"Head Butt Pokémon\",\"Speed\":\"58\",\"Total\":\"350\",\"Type\":[\"Rock\"]},\"Crawdaunt\":{\"#\":\" 342\",\"Attack\":\"120\",\"Defense\":\"85\",\"FlavorText\":\"\",\"HP\":\"63\",\"Sp. Atk\":\"90\",\"Sp. Def\":\"55\",\"Species\":\"Rogue Pokémon\",\"Speed\":\"55\",\"Total\":\"468\",\"Type\":[\"Water\",\"Dark\"]},\"Cresselia\":{\"#\":\" 488\",\"Attack\":\"70\",\"Defense\":\"120\",\"FlavorText\":\"\",\"HP\":\"120\",\"Sp. Atk\":\"75\",\"Sp. Def\":\"130\",\"Species\":\"Lunar Pokémon\",\"Speed\":\"85\",\"Total\":\"600\",\"Type\":[\"Psychic\"]},\"Croagunk\":{\"#\":\" 453\",\"Attack\":\"61\",\"Defense\":\"40\",\"FlavorText\":\"\",\"HP\":\"48\",\"Sp. Atk\":\"61\",\"Sp. Def\":\"40\",\"Species\":\"Toxic Mouth Pokémon\",\"Speed\":\"50\",\"Total\":\"300\",\"Type\":[\"Poison\",\"Fighting\"]},\"Crobat\":{\"#\":\" 169\",\"Attack\":\"90\",\"Defense\":\"80\",\"FlavorText\":\"\",\"HP\":\"85\",\"Sp. Atk\":\"70\",\"Sp. Def\":\"80\",\"Species\":\"Bat Pokémon\",\"Speed\":\"130\",\"Total\":\"535\",\"Type\":[\"Poison\",\"Flying\"]},\"Croconaw\":{\"#\":\" 159\",\"Attack\":\"80\",\"Defense\":\"80\",\"FlavorText\":\"\",\"HP\":\"65\",\"Sp. Atk\":\"59\",\"Sp. Def\":\"63\",\"Species\":\"Big Jaw Pokémon\",\"Speed\":\"58\",\"Total\":\"405\",\"Type\":[\"Water\"]},\"Crustle\":{\"#\":\" 558\",\"Attack\":\"95\",\"Defense\":\"125\",\"FlavorText\":\"Competing for territory, Crustle fight viciously. The one whose boulder is broken is the loser of the battle.\",\"HP\":\"70\",\"Sp. Atk\":\"65\",\"Sp. Def\":\"75\",\"Species\":\"Stone Home Pokémon\",\"Speed\":\"45\",\"Total\":\"475\",\"Type\":[\"Bug\",\"Rock\"]},\"Cryogonal\":{\"#\":\" 615\",\"Attack\":\"50\",\"Defense\":\"30\",\"FlavorText\":\"\",\"HP\":\"70\",\"Sp. Atk\":\"95\",\"Sp. Def\":\"135\",\"Species\":\"Crystallizing Pokémon\",\"Speed\":\"105\",\"Total\":\"485\",\"Type\":[\"Ice\"]},\"Cubchoo\":{\"#\":\" 613\",\"Attack\":\"70\",\"Defense\":\"40\",\"FlavorText\":\"\",\"HP\":\"55\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"40\",\"Species\":\"Chill Pokémon\",\"Speed\":\"40\",\"Total\":\"305\",\"Type\":[\"Ice\"]},\"Cubone\":{\"#\":\" 104\",\"Attack\":\"50\",\"Defense\":\"95\",\"FlavorText\":\"\",\"HP\":\"50\",\"Sp. Atk\":\"40\",\"Sp. Def\":\"50\",\"Species\":\"Lonely Pokémon\",\"Speed\":\"35\",\"Total\":\"320\",\"Type\":[\"Ground\"]},\"Cyndaquil\":{\"#\":\" 155\",\"Attack\":\"52\",\"Defense\":\"43\",\"FlavorText\":\"\",\"HP\":\"39\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"50\",\"Species\":\"Fire Mouse Pokémon\",\"Speed\":\"65\",\"Total\":\"309\",\"Type\":[\"Fire\"]},\"Darkrai\":{\"#\":\" 491\",\"Attack\":\"90\",\"Defense\":\"90\",\"FlavorText\":\"\",\"HP\":\"70\",\"Sp. Atk\":\"135\",\"Sp. Def\":\"90\",\"Species\":\"Pitch-Black Pokémon\",\"Speed\":\"125\",\"Total\":\"600\",\"Type\":[\"Dark\"]},\"Darmanitan ( Standard Mode )\":{\"#\":\" 555\",\"Attack\":\"140\",\"Defense\":\"55\",\"FlavorText\":\"\",\"HP\":\"105\",\"Sp. Atk\":\"30\",\"Sp. Def\":\"55\",\"Species\":\"\",\"Speed\":\"95\",\"Total\":\"480\",\"Type\":[\"Fire\"]},\"Darmanitan ( Zen Mode )\":{\"#\":\" 555\",\"Attack\":\"30\",\"Defense\":\"105\",\"FlavorText\":\"\",\"HP\":\"105\",\"Sp. Atk\":\"140\",\"Sp. Def\":\"105\",\"Species\":\"\",\"Speed\":\"55\",\"Total\":\"540\",\"Type\":[\"Fire\",\"Psychic\"]},\"Darumaka\":{\"#\":\" 554\",\"Attack\":\"90\",\"Defense\":\"45\",\"FlavorText\":\"\",\"HP\":\"70\",\"Sp. Atk\":\"15\",\"Sp. Def\":\"45\",\"Species\":\"Zen Charm Pokémon\",\"Speed\":\"50\",\"Total\":\"315\",\"Type\":[\"Fire\"]},\"Dedenne\":{\"#\":\" 702\",\"Attack\":\"58\",\"Defense\":\"57\",\"FlavorText\":\"\",\"HP\":\"67\",\"Sp. Atk\":\"81\",\"Sp. Def\":\"67\",\"Species\":\"Antenna Pokémon\",\"Speed\":\"101\",\"Total\":\"431\",\"Type\":[\"Electric\",\"Fairy\"]},\"Deerling\":{\"#\":\" 585\",\"Attack\":\"60\",\"Defense\":\"50\",\"FlavorText\":\"\",\"HP\":\"60\",\"Sp. Atk\":\"40\",\"Sp. Def\":\"50\",\"Species\":\"Season Pokémon\",\"Speed\":\"75\",\"Total\":\"335\",\"Type\":[\"Normal\",\"Grass\"]},\"Deino\":{\"#\":\" 633\",\"Attack\":\"65\",\"Defense\":\"50\",\"FlavorText\":\"\",\"HP\":\"52\",\"Sp. Atk\":\"45\",\"Sp. Def\":\"50\",\"Species\":\"Irate Pokémon\",\"Speed\":\"38\",\"Total\":\"300\",\"Type\":[\"Dark\",\"Dragon\"]},\"Delcatty\":{\"#\":\" 301\",\"Attack\":\"65\",\"Defense\":\"65\",\"FlavorText\":\"\",\"HP\":\"70\",\"Sp. Atk\":\"55\",\"Sp. Def\":\"55\",\"Species\":\"Prim Pokémon\",\"Speed\":\"70\",\"Total\":\"380\",\"Type\":[\"Normal\"]},\"Delibird\":{\"#\":\" 225\",\"Attack\":\"55\",\"Defense\":\"45\",\"FlavorText\":\"\",\"HP\":\"45\",\"Sp. Atk\":\"65\",\"Sp. Def\":\"45\",\"Species\":\"Delivery Pokémon\",\"Speed\":\"75\",\"Total\":\"330\",\"Type\":[\"Ice\",\"Flying\"]},\"Delphox\":{\"#\":\" 655\",\"Attack\":\"69\",\"Defense\":\"72\",\"FlavorText\":\"\",\"HP\":\"75\",\"Sp. Atk\":\"114\",\"Sp. Def\":\"100\",\"Species\":\"Fox Pokémon\",\"Speed\":\"104\",\"Total\":\"534\",\"Type\":[\"Fire\",\"Psychic\"]},\"Deoxys ( Attack Forme )\":{\"#\":\" 386\",\"Attack\":\"180\",\"Defense\":\"20\",\"FlavorText\":\"\",\"HP\":\"50\",\"Sp. Atk\":\"180\",\"Sp. Def\":\"20\",\"Species\":\"\",\"Speed\":\"150\",\"Total\":\"600\",\"Type\":[\"Psychic\"]},\"Deoxys ( Defense Forme )\":{\"#\":\" 386\",\"Attack\":\"70\",\"Defense\":\"160\",\"FlavorText\":\"\",\"HP\":\"50\",\"Sp. Atk\":\"70\",\"Sp. Def\":\"160\",\"Species\":\"\",\"Speed\":\"90\",\"Total\":\"600\",\"Type\":[\"Psychic\"]},\"Deoxys ( Normal Forme )\":{\"#\":\" 386\",\"Attack\":\"150\",\"Defense\":\"50\",\"FlavorText\":\"\",\"HP\":\"50\",\"Sp. Atk\":\"150\",\"Sp. Def\":\"50\",\"Species\":\"\",\"Speed\":\"150\",\"Total\":\"600\",\"Type\":[\"Psychic\"]},\"Deoxys ( Speed Forme )\":{\"#\":\" 386\",\"Attack\":\"95\",\"Defense\":\"90\",\"FlavorText\":\"\",\"HP\":\"50\",\"Sp. Atk\":\"95\",\"Sp. Def\":\"90\",\"Species\":\"\",\"Speed\":\"180\",\"Total\":\"600\",\"Type\":[\"Psychic\"]},\"Dewgong\":{\"#\":\" 087\",\"Attack\":\"70\",\"Defense\":\"80\",\"FlavorText\":\"\",\"HP\":\"90\",\"Sp. Atk\":\"70\",\"Sp. Def\":\"95\",\"Species\":\"Sea Lion Pokémon\",\"Speed\":\"70\",\"Total\":\"475\",\"Type\":[\"Water\",\"Ice\"]},\"Dewott\":{\"#\":\" 502\",\"Attack\":\"75\",\"Defense\":\"60\",\"FlavorText\":\"\",\"HP\":\"75\",\"Sp. Atk\":\"83\",\"Sp. Def\":\"60\",\"Species\":\"Discipline Pokémon\",\"Speed\":\"60\",\"Total\":\"413\",\"Type\":[\"Water\"]},\"Dialga\":{\"#\":\" 483\",\"Attack\":\"120\",\"Defense\":\"120\",\"FlavorText\":\"\",\"HP\":\"100\",\"Sp. Atk\":\"150\",\"Sp. Def\":\"100\",\"Species\":\"Temporal Pokémon\",\"Speed\":\"90\",\"Total\":\"680\",\"Type\":[\"Steel\",\"Dragon\"]},\"Diancie\":{\"#\":\" 719\",\"Attack\":\"100\",\"Defense\":\"150\",\"FlavorText\":\"\",\"HP\":\"50\",\"Sp. Atk\":\"100\",\"Sp. Def\":\"150\",\"Species\":\"Jewel Pokémon\",\"Speed\":\"50\",\"Total\":\"600\",\"Type\":[\"Rock\",\"Fairy\"]},\"Diancie ( Mega Diancie )\":{\"#\":\" 719\",\"Attack\":\"160\",\"Defense\":\"110\",\"FlavorText\":\"\",\"HP\":\"50\",\"Sp. Atk\":\"160\",\"Sp. Def\":\"110\",\"Species\":\"\",\"Speed\":\"110\",\"Total\":\"700\",\"Type\":[\"Rock\",\"Fairy\"]},\"Diggersby\":{\"#\":\" 660\",\"Attack\":\"56\",\"Defense\":\"77\",\"FlavorText\":\"\",\"HP\":\"85\",\"Sp. Atk\":\"50\",\"Sp. Def\":\"77\",\"Species\":\"Digging Pokémon\",\"Speed\":\"78\",\"Total\":\"423\",\"Type\":[\"Normal\",\"Ground\"]},\"Diglett\":{\"#\":\" 050\",\"Attack\":\"55\",\"Defense\":\"25\",\"FlavorText\":\"\",\"HP\":\"10\",\"Sp. Atk\":\"35\",\"Sp. Def\":\"45\",\"Species\":\"Mole Pokémon\",\"Speed\":\"95\",\"Total\":\"265\",\"Type\":[\"Ground\"]},\"Ditto\":{\"#\":\" 132\",\"Attack\":\"48\",\"Defense\":\"48\",\"FlavorText\":\"\",\"HP\":\"48\",\"Sp. Atk\":\"48\",\"Sp. Def\":\"48\",\"Species\":\"Transform Pokémon\",\"Speed\":\"48\",\"Total\":\"288\",\"Type\":[\"Normal\"]},\"Dodrio\":{\"#\":\" 085\",\"Attack\":\"110\",\"Defense\":\"70\",\"FlavorText\":\"\",\"HP\":\"60\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"60\",\"Species\":\"Triple Bird Pokémon\",\"Speed\":\"100\",\"Total\":\"460\",\"Type\":[\"Normal\",\"Flying\"]},\"Doduo\":{\"#\":\" 084\",\"Attack\":\"85\",\"Defense\":\"45\",\"FlavorText\":\"\",\"HP\":\"35\",\"Sp. Atk\":\"35\",\"Sp. Def\":\"35\",\"Species\":\"Twin Bird Pokémon\",\"Speed\":\"75\",\"Total\":\"310\",\"Type\":[\"Normal\",\"Flying\"]},\"Donphan\":{\"#\":\" 232\",\"Attack\":\"120\",\"Defense\":\"120\",\"FlavorText\":\"\",\"HP\":\"90\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"60\",\"Species\":\"Armor Pokémon\",\"Speed\":\"50\",\"Total\":\"500\",\"Type\":[\"Ground\"]},\"Doublade\":{\"#\":\" 680\",\"Attack\":\"110\",\"Defense\":\"150\",\"FlavorText\":\"\",\"HP\":\"59\",\"Sp. Atk\":\"45\",\"Sp. Def\":\"49\",\"Species\":\"Sword Pokémon\",\"Speed\":\"35\",\"Total\":\"448\",\"Type\":[\"Steel\",\"Ghost\"]},\"Dragalge\":{\"#\":\" 691\",\"Attack\":\"75\",\"Defense\":\"90\",\"FlavorText\":\"\",\"HP\":\"65\",\"Sp. Atk\":\"97\",\"Sp. Def\":\"123\",\"Species\":\"Mock Kelp Pokémon\",\"Speed\":\"44\",\"Total\":\"494\",\"Type\":[\"Poison\",\"Dragon\"]},\"Dragonair\":{\"#\":\" 148\",\"Attack\":\"84\",\"Defense\":\"65\",\"FlavorText\":\"It is called the divine POKéMON. When its entire body brightens slightly, the weather changes.\",\"HP\":\"61\",\"Sp. Atk\":\"70\",\"Sp. Def\":\"70\",\"Species\":\"Dragon Pokémon\",\"Speed\":\"70\",\"Total\":\"420\",\"Type\":[\"Dragon\"]},\"Dragonite\":{\"#\":\" 149\",\"Attack\":\"134\",\"Defense\":\"95\",\"FlavorText\":\"It is said that somewhere in the ocean lies an island where these gather. Only they live there.\",\"HP\":\"91\",\"Sp. Atk\":\"100\",\"Sp. Def\":\"100\",\"Species\":\"Dragon Pokémon\",\"Speed\":\"80\",\"Total\":\"600\",\"Type\":[\"Dragon\",\"Flying\"]},\"Drapion\":{\"#\":\" 452\",\"Attack\":\"90\",\"Defense\":\"110\",\"FlavorText\":\"\",\"HP\":\"70\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"75\",\"Species\":\"Ogre Scorp Pokémon\",\"Speed\":\"95\",\"Total\":\"500\",\"Type\":[\"Poison\",\"Dark\"]},\"Dratini\":{\"#\":\" 147\",\"Attack\":\"64\",\"Defense\":\"45\",\"FlavorText\":\"It sheds many layers of skin as it grows larger. During this process, it is protected by a rapid waterfall.\",\"HP\":\"41\",\"Sp. Atk\":\"50\",\"Sp. Def\":\"50\",\"Species\":\"Dragon Pokémon\",\"Speed\":\"50\",\"Total\":\"300\",\"Type\":[\"Dragon\"]},\"Drifblim\":{\"#\":\" 426\",\"Attack\":\"80\",\"Defense\":\"44\",\"FlavorText\":\"\",\"HP\":\"150\",\"Sp. Atk\":\"90\",\"Sp. Def\":\"54\",\"Species\":\"Blimp Pokémon\",\"Speed\":\"80\",\"Total\":\"498\",\"Type\":[\"Ghost\",\"Flying\"]},\"Drifloon\":{\"#\":\" 425\",\"Attack\":\"50\",\"Defense\":\"34\",\"FlavorText\":\"\",\"HP\":\"90\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"44\",\"Species\":\"Balloon Pokémon\",\"Speed\":\"70\",\"Total\":\"348\",\"Type\":[\"Ghost\",\"Flying\"]},\"Drilbur\":{\"#\":\" 529\",\"Attack\":\"85\",\"Defense\":\"40\",\"FlavorText\":\"\",\"HP\":\"60\",\"Sp. Atk\":\"30\",\"Sp. Def\":\"45\",\"Species\":\"Mole Pokémon\",\"Speed\":\"68\",\"Total\":\"328\",\"Type\":[\"Ground\"]},\"Drowzee\":{\"#\":\" 096\",\"Attack\":\"48\",\"Defense\":\"45\",\"FlavorText\":\"When it twitches its nose, it can tell where someone is sleeping and what that person is dreaming about.\",\"HP\":\"60\",\"Sp. Atk\":\"43\",\"Sp. Def\":\"90\",\"Species\":\"Hypnosis Pokémon\",\"Speed\":\"42\",\"Total\":\"328\",\"Type\":[\"Psychic\"]},\"Druddigon\":{\"#\":\" 621\",\"Attack\":\"120\",\"Defense\":\"90\",\"FlavorText\":\"It warms its body by absorbing sunlight with its wings. When its body temperature falls, it can no longer move.\",\"HP\":\"77\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"90\",\"Species\":\"Cave Pokémon\",\"Speed\":\"48\",\"Total\":\"485\",\"Type\":[\"Dragon\"]},\"Ducklett\":{\"#\":\" 580\",\"Attack\":\"44\",\"Defense\":\"50\",\"FlavorText\":\"They are better at swimming than flying, and they happily eat their favorite food, peat moss, as they dive underwater.\",\"HP\":\"62\",\"Sp. Atk\":\"44\",\"Sp. Def\":\"50\",\"Species\":\"Water Bird Pokémon\",\"Speed\":\"55\",\"Total\":\"305\",\"Type\":[\"Water\",\"Flying\"]},\"Dugtrio\":{\"#\":\" 051\",\"Attack\":\"80\",\"Defense\":\"50\",\"FlavorText\":\"\",\"HP\":\"35\",\"Sp. Atk\":\"50\",\"Sp. Def\":\"70\",\"Species\":\"Mole Pokémon\",\"Speed\":\"120\",\"Total\":\"405\",\"Type\":[\"Ground\"]},\"Dunsparce\":{\"#\":\" 206\",\"Attack\":\"70\",\"Defense\":\"70\",\"FlavorText\":\"\",\"HP\":\"100\",\"Sp. Atk\":\"65\",\"Sp. Def\":\"65\",\"Species\":\"Land Snake Pokémon\",\"Speed\":\"45\",\"Total\":\"415\",\"Type\":[\"Normal\"]},\"Duosion\":{\"#\":\" 578\",\"Attack\":\"40\",\"Defense\":\"50\",\"FlavorText\":\"When their two divided brains think the same thoughts, their psychic power is maximized.\",\"HP\":\"65\",\"Sp. Atk\":\"125\",\"Sp. Def\":\"60\",\"Species\":\"Mitosis Pokémon\",\"Speed\":\"30\",\"Total\":\"370\",\"Type\":[\"Psychic\"]},\"Durant\":{\"#\":\" 632\",\"Attack\":\"109\",\"Defense\":\"112\",\"FlavorText\":\"They attack in groups, covering themselves in steel armor to protect themselves from Heatmor.\",\"HP\":\"58\",\"Sp. Atk\":\"48\",\"Sp. Def\":\"48\",\"Species\":\"Iron Ant Pokémon\",\"Speed\":\"109\",\"Total\":\"484\",\"Type\":[\"Bug\",\"Steel\"]},\"Dusclops\":{\"#\":\" 356\",\"Attack\":\"70\",\"Defense\":\"130\",\"FlavorText\":\"\",\"HP\":\"40\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"130\",\"Species\":\"Beckon Pokémon\",\"Speed\":\"25\",\"Total\":\"455\",\"Type\":[\"Ghost\"]},\"Dusknoir\":{\"#\":\" 477\",\"Attack\":\"100\",\"Defense\":\"135\",\"FlavorText\":\"\",\"HP\":\"45\",\"Sp. Atk\":\"65\",\"Sp. Def\":\"135\",\"Species\":\"Gripper Pokémon\",\"Speed\":\"45\",\"Total\":\"525\",\"Type\":[\"Ghost\"]},\"Duskull\":{\"#\":\" 355\",\"Attack\":\"40\",\"Defense\":\"90\",\"FlavorText\":\"\",\"HP\":\"20\",\"Sp. Atk\":\"30\",\"Sp. Def\":\"90\",\"Species\":\"Requiem Pokémon\",\"Speed\":\"25\",\"Total\":\"295\",\"Type\":[\"Ghost\"]},\"Dustox\":{\"#\":\" 269\",\"Attack\":\"50\",\"Defense\":\"70\",\"FlavorText\":\"Toxic powder is scattered with each flap. At night, it is known to strip leaves off trees lining boulevards.\",\"HP\":\"60\",\"Sp. Atk\":\"50\",\"Sp. Def\":\"90\",\"Species\":\"Poison Moth Pokémon\",\"Speed\":\"65\",\"Total\":\"385\",\"Type\":[\"Bug\",\"Poison\"]},\"Dwebble\":{\"#\":\" 557\",\"Attack\":\"65\",\"Defense\":\"85\",\"FlavorText\":\"When it finds a stone of a suitable size, it secretes a liquid from its mouth to open up a hole to crawl into.\",\"HP\":\"50\",\"Sp. Atk\":\"35\",\"Sp. Def\":\"35\",\"Species\":\"Rock Inn Pokémon\",\"Speed\":\"55\",\"Total\":\"325\",\"Type\":[\"Bug\",\"Rock\"]},\"Eelektrik\":{\"#\":\" 603\",\"Attack\":\"85\",\"Defense\":\"70\",\"FlavorText\":\"\",\"HP\":\"65\",\"Sp. Atk\":\"75\",\"Sp. Def\":\"70\",\"Species\":\"EleFish Pokémon\",\"Speed\":\"40\",\"Total\":\"405\",\"Type\":[\"Electric\"]},\"Eelektross\":{\"#\":\" 604\",\"Attack\":\"115\",\"Defense\":\"80\",\"FlavorText\":\"\",\"HP\":\"85\",\"Sp. Atk\":\"105\",\"Sp. Def\":\"80\",\"Species\":\"EleFish Pokémon\",\"Speed\":\"50\",\"Total\":\"515\",\"Type\":[\"Electric\"]},\"Eevee\":{\"#\":\" 133\",\"Attack\":\"55\",\"Defense\":\"50\",\"FlavorText\":\"\",\"HP\":\"55\",\"Sp. Atk\":\"45\",\"Sp. Def\":\"65\",\"Species\":\"Evolution Pokémon\",\"Speed\":\"55\",\"Total\":\"325\",\"Type\":[\"Normal\"]},\"Ekans\":{\"#\":\" 023\",\"Attack\":\"60\",\"Defense\":\"44\",\"FlavorText\":\"\",\"HP\":\"35\",\"Sp. Atk\":\"40\",\"Sp. Def\":\"54\",\"Species\":\"Snake Pokémon\",\"Speed\":\"55\",\"Total\":\"288\",\"Type\":[\"Poison\"]},\"Electabuzz\":{\"#\":\" 125\",\"Attack\":\"83\",\"Defense\":\"57\",\"FlavorText\":\"\",\"HP\":\"65\",\"Sp. Atk\":\"95\",\"Sp. Def\":\"85\",\"Species\":\"Electric Pokémon\",\"Speed\":\"105\",\"Total\":\"490\",\"Type\":[\"Electric\"]},\"Electivire\":{\"#\":\" 466\",\"Attack\":\"123\",\"Defense\":\"67\",\"FlavorText\":\"\",\"HP\":\"75\",\"Sp. Atk\":\"95\",\"Sp. Def\":\"85\",\"Species\":\"Thunderbolt Pokémon\",\"Speed\":\"95\",\"Total\":\"540\",\"Type\":[\"Electric\"]},\"Electrike\":{\"#\":\" 309\",\"Attack\":\"45\",\"Defense\":\"40\",\"FlavorText\":\"It generates electricity using friction from the atmosphere. In seasons with especially arid air, its entire body blazes with violent showers of sparks.\",\"HP\":\"40\",\"Sp. Atk\":\"65\",\"Sp. Def\":\"40\",\"Species\":\"Lightning Pokémon\",\"Speed\":\"65\",\"Total\":\"295\",\"Type\":[\"Electric\"]},\"Electrode\":{\"#\":\" 101\",\"Attack\":\"50\",\"Defense\":\"70\",\"FlavorText\":\"\",\"HP\":\"60\",\"Sp. Atk\":\"80\",\"Sp. Def\":\"80\",\"Species\":\"Ball Pokémon\",\"Speed\":\"140\",\"Total\":\"480\",\"Type\":[\"Electric\"]},\"Elekid\":{\"#\":\" 239\",\"Attack\":\"63\",\"Defense\":\"37\",\"FlavorText\":\"If it touches metal and discharges the electricity it has stored in its body, an ELEKID begins swinging its arms in circles to recharge itself.\",\"HP\":\"45\",\"Sp. Atk\":\"65\",\"Sp. Def\":\"55\",\"Species\":\"Electric Pokémon\",\"Speed\":\"95\",\"Total\":\"360\",\"Type\":[\"Electric\"]},\"Elgyem\":{\"#\":\" 605\",\"Attack\":\"55\",\"Defense\":\"55\",\"FlavorText\":\"\",\"HP\":\"55\",\"Sp. Atk\":\"85\",\"Sp. Def\":\"55\",\"Species\":\"Cerebral Pokémon\",\"Speed\":\"30\",\"Total\":\"335\",\"Type\":[\"Psychic\"]},\"Emboar\":{\"#\":\" 500\",\"Attack\":\"123\",\"Defense\":\"65\",\"FlavorText\":\"\",\"HP\":\"110\",\"Sp. Atk\":\"100\",\"Sp. Def\":\"65\",\"Species\":\"Mega Fire Pig Pokémon\",\"Speed\":\"65\",\"Total\":\"528\",\"Type\":[\"Fire\",\"Fighting\"]},\"Emolga\":{\"#\":\" 587\",\"Attack\":\"75\",\"Defense\":\"60\",\"FlavorText\":\"\",\"HP\":\"55\",\"Sp. Atk\":\"75\",\"Sp. Def\":\"60\",\"Species\":\"Sky Squirrel Pokémon\",\"Speed\":\"103\",\"Total\":\"428\",\"Type\":[\"Electric\",\"Flying\"]},\"Empoleon\":{\"#\":\" 395\",\"Attack\":\"86\",\"Defense\":\"88\",\"FlavorText\":\"\",\"HP\":\"84\",\"Sp. Atk\":\"111\",\"Sp. Def\":\"101\",\"Species\":\"Emperor Pokémon\",\"Speed\":\"60\",\"Total\":\"530\",\"Type\":[\"Water\",\"Steel\"]},\"Entei\":{\"#\":\" 244\",\"Attack\":\"115\",\"Defense\":\"85\",\"FlavorText\":\"\",\"HP\":\"115\",\"Sp. Atk\":\"90\",\"Sp. Def\":\"75\",\"Species\":\"Volcano Pokémon\",\"Speed\":\"100\",\"Total\":\"580\",\"Type\":[\"Fire\"]},\"Escavalier\":{\"#\":\" 589\",\"Attack\":\"135\",\"Defense\":\"105\",\"FlavorText\":\"These Pokémon evolve by wearing the shell covering of a Shelmet. The steel armor protects their whole body.\",\"HP\":\"70\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"105\",\"Species\":\"Cavalry Pokémon\",\"Speed\":\"20\",\"Total\":\"495\",\"Type\":[\"Bug\",\"Steel\"]},\"Espeon\":{\"#\":\" 196\",\"Attack\":\"65\",\"Defense\":\"60\",\"FlavorText\":\"\",\"HP\":\"65\",\"Sp. Atk\":\"130\",\"Sp. Def\":\"95\",\"Species\":\"Sun Pokémon\",\"Speed\":\"110\",\"Total\":\"525\",\"Type\":[\"Psychic\"]},\"Espurr\":{\"#\":\" 677\",\"Attack\":\"48\",\"Defense\":\"54\",\"FlavorText\":\"\",\"HP\":\"62\",\"Sp. Atk\":\"63\",\"Sp. Def\":\"60\",\"Species\":\"Restraint Pokémon\",\"Speed\":\"68\",\"Total\":\"355\",\"Type\":[\"Psychic\"]},\"Excadrill\":{\"#\":\" 530\",\"Attack\":\"135\",\"Defense\":\"60\",\"FlavorText\":\"\",\"HP\":\"110\",\"Sp. Atk\":\"50\",\"Sp. Def\":\"65\",\"Species\":\"Subterrene Pokémon\",\"Speed\":\"88\",\"Total\":\"508\",\"Type\":[\"Ground\",\"Steel\"]},\"Exeggcute\":{\"#\":\" 102\",\"Attack\":\"40\",\"Defense\":\"80\",\"FlavorText\":\"If even one is separated from the group, the energy bond between the six will make them rejoin instantly.\",\"HP\":\"60\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"45\",\"Species\":\"Egg Pokémon\",\"Speed\":\"40\",\"Total\":\"325\",\"Type\":[\"Grass\",\"Psychic\"]},\"Exeggutor\":{\"#\":\" 103\",\"Attack\":\"95\",\"Defense\":\"85\",\"FlavorText\":\"Living in a good environment makes it grow lots of heads. A head that drops off becomes an EXEGGCUTE.\",\"HP\":\"95\",\"Sp. Atk\":\"125\",\"Sp. Def\":\"65\",\"Species\":\"Coconut Pokémon\",\"Speed\":\"55\",\"Total\":\"520\",\"Type\":[\"Grass\",\"Psychic\"]},\"Exploud\":{\"#\":\" 295\",\"Attack\":\"91\",\"Defense\":\"63\",\"FlavorText\":\"\",\"HP\":\"104\",\"Sp. Atk\":\"91\",\"Sp. Def\":\"73\",\"Species\":\"Loud Noise Pokémon\",\"Speed\":\"68\",\"Total\":\"490\",\"Type\":[\"Normal\"]},\"Farfetch'd\":{\"#\":\" 083\",\"Attack\":\"65\",\"Defense\":\"55\",\"FlavorText\":\"\",\"HP\":\"52\",\"Sp. Atk\":\"58\",\"Sp. Def\":\"62\",\"Species\":\"\",\"Speed\":\"60\",\"Total\":\"352\",\"Type\":[\"Normal\",\"Flying\"]},\"Fearow\":{\"#\":\" 022\",\"Attack\":\"90\",\"Defense\":\"65\",\"FlavorText\":\"It uses its long beak to attack. It has a surprisingly long reach, so it must be treated with caution.\",\"HP\":\"65\",\"Sp. Atk\":\"61\",\"Sp. Def\":\"61\",\"Species\":\"Beak Pokémon\",\"Speed\":\"100\",\"Total\":\"442\",\"Type\":[\"Normal\",\"Flying\"]},\"Feebas\":{\"#\":\" 349\",\"Attack\":\"15\",\"Defense\":\"20\",\"FlavorText\":\"\",\"HP\":\"20\",\"Sp. Atk\":\"10\",\"Sp. Def\":\"55\",\"Species\":\"Fish Pokémon\",\"Speed\":\"80\",\"Total\":\"200\",\"Type\":[\"Water\"]},\"Fennekin\":{\"#\":\" 653\",\"Attack\":\"45\",\"Defense\":\"40\",\"FlavorText\":\"\",\"HP\":\"40\",\"Sp. Atk\":\"62\",\"Sp. Def\":\"60\",\"Species\":\"Fox Pokémon\",\"Speed\":\"60\",\"Total\":\"307\",\"Type\":[\"Fire\"]},\"Feraligatr\":{\"#\":\" 160\",\"Attack\":\"105\",\"Defense\":\"100\",\"FlavorText\":\"\",\"HP\":\"85\",\"Sp. Atk\":\"79\",\"Sp. Def\":\"83\",\"Species\":\"Big Jaw Pokémon\",\"Speed\":\"78\",\"Total\":\"530\",\"Type\":[\"Water\"]},\"Ferroseed\":{\"#\":\" 597\",\"Attack\":\"50\",\"Defense\":\"91\",\"FlavorText\":\"\",\"HP\":\"44\",\"Sp. Atk\":\"24\",\"Sp. Def\":\"86\",\"Species\":\"Thorn Seed Pokémon\",\"Speed\":\"10\",\"Total\":\"305\",\"Type\":[\"Grass\",\"Steel\"]},\"Ferrothorn\":{\"#\":\" 598\",\"Attack\":\"94\",\"Defense\":\"131\",\"FlavorText\":\"\",\"HP\":\"74\",\"Sp. Atk\":\"54\",\"Sp. Def\":\"116\",\"Species\":\"Thorn Pod Pokémon\",\"Speed\":\"20\",\"Total\":\"489\",\"Type\":[\"Grass\",\"Steel\"]},\"Finneon\":{\"#\":\" 456\",\"Attack\":\"49\",\"Defense\":\"56\",\"FlavorText\":\"\",\"HP\":\"49\",\"Sp. Atk\":\"49\",\"Sp. Def\":\"61\",\"Species\":\"Wing Fish Pokémon\",\"Speed\":\"66\",\"Total\":\"330\",\"Type\":[\"Water\"]},\"Flaaffy\":{\"#\":\" 180\",\"Attack\":\"55\",\"Defense\":\"55\",\"FlavorText\":\"Its fleece quality changes to generate strong static electricity with a small amount of wool. The bare, slick parts of its hide are shielded against electricity.\",\"HP\":\"70\",\"Sp. Atk\":\"80\",\"Sp. Def\":\"60\",\"Species\":\"Wool Pokémon\",\"Speed\":\"45\",\"Total\":\"365\",\"Type\":[\"Electric\"]},\"Flabébé\":{\"#\":\" 669\",\"Attack\":\"38\",\"Defense\":\"39\",\"FlavorText\":\"\",\"HP\":\"44\",\"Sp. Atk\":\"61\",\"Sp. Def\":\"79\",\"Species\":\"\",\"Speed\":\"42\",\"Total\":\"303\",\"Type\":[\"Fairy\"]},\"Flareon\":{\"#\":\" 136\",\"Attack\":\"130\",\"Defense\":\"60\",\"FlavorText\":\"\",\"HP\":\"65\",\"Sp. Atk\":\"95\",\"Sp. Def\":\"110\",\"Species\":\"Flame Pokémon\",\"Speed\":\"65\",\"Total\":\"525\",\"Type\":[\"Fire\"]},\"Fletchinder\":{\"#\":\" 662\",\"Attack\":\"73\",\"Defense\":\"55\",\"FlavorText\":\"\",\"HP\":\"62\",\"Sp. Atk\":\"56\",\"Sp. Def\":\"52\",\"Species\":\"Ember Pokémon\",\"Speed\":\"84\",\"Total\":\"382\",\"Type\":[\"Fire\",\"Flying\"]},\"Fletchling\":{\"#\":\" 661\",\"Attack\":\"50\",\"Defense\":\"43\",\"FlavorText\":\"\",\"HP\":\"45\",\"Sp. Atk\":\"40\",\"Sp. Def\":\"38\",\"Species\":\"Tiny Robin Pokémon\",\"Speed\":\"62\",\"Total\":\"278\",\"Type\":[\"Normal\",\"Flying\"]},\"Floatzel\":{\"#\":\" 419\",\"Attack\":\"105\",\"Defense\":\"55\",\"FlavorText\":\"\",\"HP\":\"85\",\"Sp. Atk\":\"85\",\"Sp. Def\":\"50\",\"Species\":\"Sea Weasel Pokémon\",\"Speed\":\"115\",\"Total\":\"495\",\"Type\":[\"Water\"]},\"Floette\":{\"#\":\" 670\",\"Attack\":\"45\",\"Defense\":\"47\",\"FlavorText\":\"\",\"HP\":\"54\",\"Sp. Atk\":\"75\",\"Sp. Def\":\"98\",\"Species\":\"Single Bloom Pokémon\",\"Speed\":\"52\",\"Total\":\"371\",\"Type\":[\"Fairy\"]},\"Florges\":{\"#\":\" 671\",\"Attack\":\"65\",\"Defense\":\"68\",\"FlavorText\":\"\",\"HP\":\"78\",\"Sp. Atk\":\"112\",\"Sp. Def\":\"154\",\"Species\":\"Garden Pokémon\",\"Speed\":\"75\",\"Total\":\"552\",\"Type\":[\"Fairy\"]},\"Flygon\":{\"#\":\" 330\",\"Attack\":\"100\",\"Defense\":\"80\",\"FlavorText\":\"\",\"HP\":\"80\",\"Sp. Atk\":\"80\",\"Sp. Def\":\"80\",\"Species\":\"Mystic Pokémon\",\"Speed\":\"100\",\"Total\":\"520\",\"Type\":[\"Ground\",\"Dragon\"]},\"Foongus\":{\"#\":\" 590\",\"Attack\":\"55\",\"Defense\":\"45\",\"FlavorText\":\"\",\"HP\":\"69\",\"Sp. Atk\":\"55\",\"Sp. Def\":\"55\",\"Species\":\"Mushroom Pokémon\",\"Speed\":\"15\",\"Total\":\"294\",\"Type\":[\"Grass\",\"Poison\"]},\"Forretress\":{\"#\":\" 205\",\"Attack\":\"90\",\"Defense\":\"140\",\"FlavorText\":\"\",\"HP\":\"75\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"60\",\"Species\":\"Bagworm Pokémon\",\"Speed\":\"40\",\"Total\":\"465\",\"Type\":[\"Bug\",\"Steel\"]},\"Fraxure\":{\"#\":\" 611\",\"Attack\":\"117\",\"Defense\":\"70\",\"FlavorText\":\"A broken tusk will not grow back, so it diligently sharpens its tusks on river rocks after the end of a battle.\",\"HP\":\"66\",\"Sp. Atk\":\"40\",\"Sp. Def\":\"50\",\"Species\":\"Axe Jaw Pokémon\",\"Speed\":\"67\",\"Total\":\"410\",\"Type\":[\"Dragon\"]},\"Frillish\":{\"#\":\" 592\",\"Attack\":\"40\",\"Defense\":\"50\",\"FlavorText\":\"\",\"HP\":\"55\",\"Sp. Atk\":\"65\",\"Sp. Def\":\"85\",\"Species\":\"Floating Pokémon\",\"Speed\":\"40\",\"Total\":\"335\",\"Type\":[\"Water\",\"Ghost\"]},\"Froakie\":{\"#\":\" 656\",\"Attack\":\"56\",\"Defense\":\"40\",\"FlavorText\":\"\",\"HP\":\"41\",\"Sp. Atk\":\"62\",\"Sp. Def\":\"44\",\"Species\":\"Bubble Frog Pokémon\",\"Speed\":\"71\",\"Total\":\"314\",\"Type\":[\"Water\"]},\"Frogadier\":{\"#\":\" 657\",\"Attack\":\"63\",\"Defense\":\"52\",\"FlavorText\":\"\",\"HP\":\"54\",\"Sp. Atk\":\"83\",\"Sp. Def\":\"56\",\"Species\":\"Bubble Frog Pokémon\",\"Speed\":\"97\",\"Total\":\"405\",\"Type\":[\"Water\"]},\"Froslass\":{\"#\":\" 478\",\"Attack\":\"80\",\"Defense\":\"70\",\"FlavorText\":\"\",\"HP\":\"70\",\"Sp. Atk\":\"80\",\"Sp. Def\":\"70\",\"Species\":\"Snow Land Pokémon\",\"Speed\":\"110\",\"Total\":\"480\",\"Type\":[\"Ice\",\"Ghost\"]},\"Furfrou\":{\"#\":\" 676\",\"Attack\":\"80\",\"Defense\":\"60\",\"FlavorText\":\"\",\"HP\":\"75\",\"Sp. Atk\":\"65\",\"Sp. Def\":\"90\",\"Species\":\"Poodle Pokémon\",\"Speed\":\"102\",\"Total\":\"472\",\"Type\":[\"Normal\"]},\"Furret\":{\"#\":\" 162\",\"Attack\":\"76\",\"Defense\":\"64\",\"FlavorText\":\"A FURRET has a very slim build. When under attack, it can squirm through narrow spaces and get away. In spite of its short limbs, it is very nimble and fleet.\",\"HP\":\"85\",\"Sp. Atk\":\"45\",\"Sp. Def\":\"55\",\"Species\":\"Long Body Pokémon\",\"Speed\":\"90\",\"Total\":\"415\",\"Type\":[\"Normal\"]},\"Gabite\":{\"#\":\" 444\",\"Attack\":\"90\",\"Defense\":\"65\",\"FlavorText\":\"\",\"HP\":\"68\",\"Sp. Atk\":\"50\",\"Sp. Def\":\"55\",\"Species\":\"Cave Pokémon\",\"Speed\":\"82\",\"Total\":\"410\",\"Type\":[\"Dragon\",\"Ground\"]},\"Gallade\":{\"#\":\" 475\",\"Attack\":\"125\",\"Defense\":\"65\",\"FlavorText\":\"\",\"HP\":\"68\",\"Sp. Atk\":\"65\",\"Sp. Def\":\"115\",\"Species\":\"Blade Pokémon\",\"Speed\":\"80\",\"Total\":\"518\",\"Type\":[\"Psychic\",\"Fighting\"]},\"Gallade ( Mega Gallade )\":{\"#\":\" 475\",\"Attack\":\"165\",\"Defense\":\"95\",\"FlavorText\":\"\",\"HP\":\"68\",\"Sp. Atk\":\"65\",\"Sp. Def\":\"115\",\"Species\":\"\",\"Speed\":\"110\",\"Total\":\"618\",\"Type\":[\"Psychic\",\"Fighting\"]},\"Galvantula\":{\"#\":\" 596\",\"Attack\":\"77\",\"Defense\":\"60\",\"FlavorText\":\"\",\"HP\":\"70\",\"Sp. Atk\":\"97\",\"Sp. Def\":\"60\",\"Species\":\"EleSpider Pokémon\",\"Speed\":\"108\",\"Total\":\"472\",\"Type\":[\"Bug\",\"Electric\"]},\"Garbodor\":{\"#\":\" 569\",\"Attack\":\"95\",\"Defense\":\"82\",\"FlavorText\":\"Consuming garbage makes new kinds of poison gases and liquids inside their bodies.\",\"HP\":\"80\",\"Sp. Atk\":\"60\",\"Sp. Def\":\"82\",\"Species\":\"Trash Heap Pokémon\",\"Speed\":\"75\",\"Total\":\"474\",\"Type\":[\"Poison\"]},\"Garchomp\":{\"#\":\" 445\",\"Attack\":\"130\",\"Defense\":\"95\",\"FlavorText\":\"\",\"HP\":\"108\",\"Sp. Atk\":\"80\",\"Sp. Def\":\"85\",\"Species\":\"Mach Pokémon\",\"Speed\":\"102\",\"Total\":\"600\",\"Type\":[\"Dragon\",\"Ground\"]},\"Garchomp ( Mega Garchomp )\":{\"#\":\" 445\",\"Attack\":\"170\",\"Defense\":\"115\",\"FlavorText\":\"\",\"HP\":\"108\",\"Sp. Atk\":\"120\",\"Sp. Def\":\"95\",\"Species\":\"\",\"Speed\":\"92\",\"Total\":\"700\",\"Type\":[\"Dragon\",\"Ground\"]}}"; + JSONObject jsonObject = new JSONObject(data); + Iterator iterator = jsonObject.keys(); + while (iterator.hasNext()) { + String name = iterator.next(); + if (!name.contains("(")) { + pokemons.add(new Pokemon(name, jsonObject.getJSONObject(name))); + } + } + return pokemons; + } catch (JSONException e) { + Log.i("JSON error", "error parsing json data"); + } + return pokemons; + } + + public class Pokemon { + + String name; + String number; + String attack; + String defense; + String hp; + String species; + + public Pokemon(String name, JSONObject jsonData) { + try { + this.name = name; + number = jsonData.getString("#").trim(); + attack = jsonData.getString("Attack").trim(); + defense = jsonData.getString("Defense").trim(); + hp = jsonData.getString("HP").trim(); + species = jsonData.getString("Species").trim(); + + } catch (JSONException e) { + Log.i("JSON error", "error parsing json data"); + } + } + + } + +} diff --git a/app/src/main/java/mdb/pokedex/ProfileActivity.java b/app/src/main/java/mdb/pokedex/ProfileActivity.java new file mode 100644 index 0000000..3467481 --- /dev/null +++ b/app/src/main/java/mdb/pokedex/ProfileActivity.java @@ -0,0 +1,69 @@ +package mdb.pokedex; + +import android.app.SearchManager; +import android.content.Intent; +import android.os.Bundle; +import android.support.design.widget.FloatingActionButton; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import com.bumptech.glide.Glide; + +public class ProfileActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_profile); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent search = new Intent(Intent.ACTION_WEB_SEARCH); + search.putExtra(SearchManager.QUERY, (new Pokedex()).getPokemon().get(getIntent().getExtras().getInt("POKEMON")).name); + startActivity(search); + } + }); + + populateView((getIntent().getExtras().getInt("POKEMON"))); + } + + public void populateView(int adapterPosition){ + + Pokedex pokedex = new Pokedex(); + Pokedex.Pokemon currentPokemon = pokedex.getPokemon().get(adapterPosition); + + TextView name = (TextView) (findViewById(R.id.textView3)); + name.setText(currentPokemon.name); + + TextView number = (TextView) (findViewById(R.id.textView)); + number.setText("#" + currentPokemon.number); + + TextView attack = (TextView) (findViewById(R.id.textView6)); + attack.setText("Attack: " + currentPokemon.attack); + + TextView defense = (TextView) (findViewById(R.id.textView2)); + defense.setText("Defense: " + currentPokemon.defense); + + TextView hp = (TextView) (findViewById(R.id.textView7)); + hp.setText("HP: " + currentPokemon.hp); + + TextView species = (TextView) (findViewById(R.id.textView5)); + species.setText("Species: " + currentPokemon.species); + + String pokeName = currentPokemon.name.toLowerCase(); + String url = "http://img.pokemondb.net/artwork/" + pokeName + ".jpg"; + + ImageView imageView = (ImageView) findViewById(R.id.poke_image); + + Glide.with(this) + .load(url) + .into(imageView); + } +} diff --git a/app/src/main/java/mdb/pokedex/SearchActivity.java b/app/src/main/java/mdb/pokedex/SearchActivity.java new file mode 100644 index 0000000..ceba9a6 --- /dev/null +++ b/app/src/main/java/mdb/pokedex/SearchActivity.java @@ -0,0 +1,68 @@ +package mdb.pokedex; + +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.text.Editable; +import android.text.TextWatcher; +import android.widget.EditText; + +import java.util.ArrayList; + +public class SearchActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_search); + + final RecyclerView recyclerView = (RecyclerView) findViewById(R.id.searchRecyclerView); + + recyclerView.setLayoutManager(new LinearLayoutManager(this)); + + Pokedex pokedex = new Pokedex(); + final ArrayList list = pokedex.getPokemon(); + + final PokeAdapter pokeAdapter = new PokeAdapter(getApplicationContext(), list); + recyclerView.setAdapter(pokeAdapter); + + EditText searchText = (EditText) findViewById(R.id.search_edit_text); + + searchText.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { + + } + + @Override + public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { + // Update results that show up + int numChars = charSequence.length(); + ArrayList newList = new ArrayList<>(); + + + + for(int j = 0; j < list.size(); j++){ + + if (numChars > 0 && list.get(j).name.length() >= numChars && list.get(j).name.substring(0, numChars).equals(charSequence.toString())){ + newList.add(list.get(j)); + + } + } + + //PokeAdapter newAdapter = new PokeAdapter(getApplicationContext(), newList); + //recyclerView.setAdapter(pokeAdapter); + pokeAdapter.pokemonArrayList = newList; + pokeAdapter.notifyDataSetChanged(); + + + } + + @Override + public void afterTextChanged(Editable editable) { + + } + }); + } +} diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..66509ac --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + +