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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_profile.xml b/app/src/main/res/layout/activity_profile.xml
new file mode 100644
index 0000000..cf0022f
--- /dev/null
+++ b/app/src/main/res/layout/activity_profile.xml
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_search.xml b/app/src/main/res/layout/activity_search.xml
new file mode 100644
index 0000000..51cce08
--- /dev/null
+++ b/app/src/main/res/layout/activity_search.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/content_profile.xml b/app/src/main/res/layout/content_profile.xml
new file mode 100644
index 0000000..b2e2a21
--- /dev/null
+++ b/app/src/main/res/layout/content_profile.xml
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/row_view.xml b/app/src/main/res/layout/row_view.xml
new file mode 100644
index 0000000..d786bd0
--- /dev/null
+++ b/app/src/main/res/layout/row_view.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/menu_profile.xml b/app/src/main/res/menu/menu_profile.xml
new file mode 100644
index 0000000..c2d2859
--- /dev/null
+++ b/app/src/main/res/menu/menu_profile.xml
@@ -0,0 +1,10 @@
+
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..cde69bc
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..c133a0c
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..bfa42f0
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..324e72c
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..aee44e1
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml
new file mode 100644
index 0000000..7abc06d
--- /dev/null
+++ b/app/src/main/res/values-v21/styles.xml
@@ -0,0 +1 @@
+
diff --git a/app/src/main/res/values-w820dp/dimens.xml b/app/src/main/res/values-w820dp/dimens.xml
new file mode 100644
index 0000000..63fc816
--- /dev/null
+++ b/app/src/main/res/values-w820dp/dimens.xml
@@ -0,0 +1,6 @@
+
+
+ 64dp
+
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..3ab3e9c
--- /dev/null
+++ b/app/src/main/res/values/colors.xml
@@ -0,0 +1,6 @@
+
+
+ #3F51B5
+ #303F9F
+ #FF4081
+
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
new file mode 100644
index 0000000..22d4105
--- /dev/null
+++ b/app/src/main/res/values/dimens.xml
@@ -0,0 +1,9 @@
+
+
+
+ 16dp
+ 16dp
+ 180dp
+ 16dp
+ 16dp
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..104b5b4
--- /dev/null
+++ b/app/src/main/res/values/strings.xml
@@ -0,0 +1,99 @@
+
+ Pokedex
+ High
+ Medium
+ Low
+ Button
+ gridview
+ ProfileActivity
+
+ "Material is the metaphor.\n\n"
+
+ "A material metaphor is the unifying theory of a rationalized space and a system of motion."
+ "The material is grounded in tactile reality, inspired by the study of paper and ink, yet "
+ "technologically advanced and open to imagination and magic.\n"
+ "Surfaces and edges of the material provide visual cues that are grounded in reality. The "
+ "use of familiar tactile attributes helps users quickly understand affordances. Yet the "
+ "flexibility of the material creates new affordances that supercede those in the physical "
+ "world, without breaking the rules of physics.\n"
+ "The fundamentals of light, surface, and movement are key to conveying how objects move, "
+ "interact, and exist in space and in relation to each other. Realistic lighting shows "
+ "seams, divides space, and indicates moving parts.\n\n"
+
+ "Bold, graphic, intentional.\n\n"
+
+ "The foundational elements of print based design typography, grids, space, scale, color, "
+ "and use of imagery guide visual treatments. These elements do far more than please the "
+ "eye. They create hierarchy, meaning, and focus. Deliberate color choices, edge to edge "
+ "imagery, large scale typography, and intentional white space create a bold and graphic "
+ "interface that immerse the user in the experience.\n"
+ "An emphasis on user actions makes core functionality immediately apparent and provides "
+ "waypoints for the user.\n\n"
+
+ "Motion provides meaning.\n\n"
+
+ "Motion respects and reinforces the user as the prime mover. Primary user actions are "
+ "inflection points that initiate motion, transforming the whole design.\n"
+ "All action takes place in a single environment. Objects are presented to the user without "
+ "breaking the continuity of experience even as they transform and reorganize.\n"
+ "Motion is meaningful and appropriate, serving to focus attention and maintain continuity. "
+ "Feedback is subtle yet clear. Transitions are efficient yet coherent.\n\n"
+
+ "3D world.\n\n"
+
+ "The material environment is a 3D space, which means all objects have x, y, and z "
+ "dimensions. The z-axis is perpendicularly aligned to the plane of the display, with the "
+ "positive z-axis extending towards the viewer. Every sheet of material occupies a single "
+ "position along the z-axis and has a standard 1dp thickness.\n"
+ "On the web, the z-axis is used for layering and not for perspective. The 3D world is "
+ "emulated by manipulating the y-axis.\n\n"
+
+ "Light and shadow.\n\n"
+
+ "Within the material environment, virtual lights illuminate the scene. Key lights create "
+ "directional shadows, while ambient light creates soft shadows from all angles.\n"
+ "Shadows in the material environment are cast by these two light sources. In Android "
+ "development, shadows occur when light sources are blocked by sheets of material at "
+ "various positions along the z-axis. On the web, shadows are depicted by manipulating the "
+ "y-axis only. The following example shows the card with a height of 6dp.\n\n"
+
+ "Resting elevation.\n\n"
+
+ "All material objects, regardless of size, have a resting elevation, or default elevation "
+ "that does not change. If an object changes elevation, it should return to its resting "
+ "elevation as soon as possible.\n\n"
+
+ "Component elevations.\n\n"
+
+ "The resting elevation for a component type is consistent across apps (e.g., FAB elevation "
+ "does not vary from 6dp in one app to 16dp in another app).\n"
+ "Components may have different resting elevations across platforms, depending on the depth "
+ "of the environment (e.g., TV has a greater depth than mobile or desktop).\n\n"
+
+ "Responsive elevation and dynamic elevation offsets.\n\n"
+
+ "Some component types have responsive elevation, meaning they change elevation in response "
+ "to user input (e.g., normal, focused, and pressed) or system events. These elevation "
+ "changes are consistently implemented using dynamic elevation offsets.\n"
+ "Dynamic elevation offsets are the goal elevation that a component moves towards, relative "
+ "to the component’s resting state. They ensure that elevation changes are consistent "
+ "across actions and component types. For example, all components that lift on press have "
+ "the same elevation change relative to their resting elevation.\n"
+ "Once the input event is completed or cancelled, the component will return to its resting "
+ "elevation.\n\n"
+
+ "Avoiding elevation interference.\n\n"
+
+ "Components with responsive elevations may encounter other components as they move between "
+ "their resting elevations and dynamic elevation offsets. Because material cannot pass "
+ "through other material, components avoid interfering with one another any number of ways, "
+ "whether on a per component basis or using the entire app layout.\n"
+ "On a component level, components can move or be removed before they cause interference. "
+ "For example, a floating action button (FAB) can disappear or move off screen before a "
+ "user picks up a card, or it can move if a snackbar appears.\n"
+ "On the layout level, design your app layout to minimize opportunities for interference. "
+ "For example, position the FAB to one side of stream of a cards so the FAB won’t interfere "
+ "when a user tries to pick up one of cards.\n\n"
+
+ Settings
+
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..6e67afa
--- /dev/null
+++ b/app/src/main/res/values/styles.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/test/java/mdb/pokedex/ExampleUnitTest.java b/app/src/test/java/mdb/pokedex/ExampleUnitTest.java
new file mode 100644
index 0000000..1b85ed0
--- /dev/null
+++ b/app/src/test/java/mdb/pokedex/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package mdb.pokedex;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() throws Exception {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..a3330d4
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,23 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+ repositories {
+ jcenter()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:2.2.0'
+
+ // NOTE: Do not place your application dependencies here; they belong
+ // in the individual module build.gradle files
+ }
+}
+
+allprojects {
+ repositories {
+ jcenter()
+ }
+}
+
+task clean(type: Delete) {
+ delete rootProject.buildDir
+}
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 0000000..aac7c9b
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,17 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx1536m
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..13372ae
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..04e285f
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Mon Dec 28 10:00:20 PST 2015
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
diff --git a/gradlew b/gradlew
new file mode 100755
index 0000000..9d82f78
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,160 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000..aec9973
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000..e7b4def
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1 @@
+include ':app'