From e7b5cf2b105079e22cf1e588a59130c677f7ca67 Mon Sep 17 00:00:00 2001 From: Evin Jaff Date: Mon, 27 May 2024 02:42:03 -0700 Subject: [PATCH 1/5] Stash of 5/26 work - most of issue 4 addressed --- .gitignore | 4 + server/egglocke/db.sqlite3 | Bin 143360 -> 0 bytes server/egglocke/egglocke/settings.py | 4 + server/egglocke/pokepoll/admin.py | 5 +- .../0002_rename_question_pokemon.py | 17 ++ .../migrations/0003_submitter_and_more.py | 41 +++++ .../migrations/0004_alter_submitter_email.py | 18 +++ ..._pokemon_ev_pokemon_pokemon_iv_and_more.py | 73 +++++++++ ...mon_pokemon_ev_alter_pokemon_pokemon_iv.py | 23 +++ server/egglocke/pokepoll/models.py | 42 ++++- .../pokepoll/static/pokepoll/img/loading.gif | Bin 0 -> 9559 bytes .../pokepoll/static/pokepoll/img/negative.gif | Bin 0 -> 2795 bytes .../pokepoll/static/pokepoll/img/positive.gif | Bin 0 -> 17373 bytes .../static/pokepoll/pokeapifunctions.js | 11 ++ .../pokepoll/static/pokepoll/style.css | 2 +- .../pokepoll/templates/pokepoll/detail.html | 54 ++++--- .../pokepoll/templates/pokepoll/home.html | 7 +- .../templates/pokepoll/master_submit.html | 146 ++++++++++++++++++ .../templates/pokepoll/submissions.html | 8 +- .../pokepoll/templates/pokepoll/submit.html | 6 + server/egglocke/pokepoll/tests.py | 10 +- server/egglocke/pokepoll/urls.py | 5 + server/egglocke/pokepoll/views.py | 126 +++++++++++++-- 23 files changed, 554 insertions(+), 48 deletions(-) delete mode 100644 server/egglocke/db.sqlite3 create mode 100644 server/egglocke/pokepoll/migrations/0002_rename_question_pokemon.py create mode 100644 server/egglocke/pokepoll/migrations/0003_submitter_and_more.py create mode 100644 server/egglocke/pokepoll/migrations/0004_alter_submitter_email.py create mode 100644 server/egglocke/pokepoll/migrations/0005_pokemon_pokemon_ev_pokemon_pokemon_iv_and_more.py create mode 100644 server/egglocke/pokepoll/migrations/0006_alter_pokemon_pokemon_ev_alter_pokemon_pokemon_iv.py create mode 100644 server/egglocke/pokepoll/static/pokepoll/img/loading.gif create mode 100644 server/egglocke/pokepoll/static/pokepoll/img/negative.gif create mode 100644 server/egglocke/pokepoll/static/pokepoll/img/positive.gif create mode 100644 server/egglocke/pokepoll/static/pokepoll/pokeapifunctions.js create mode 100644 server/egglocke/pokepoll/templates/pokepoll/master_submit.html create mode 100644 server/egglocke/pokepoll/templates/pokepoll/submit.html diff --git a/.gitignore b/.gitignore index 146974a..d9a11e4 100644 --- a/.gitignore +++ b/.gitignore @@ -398,3 +398,7 @@ FodyWeavers.xsd *.sln.iml server/venv/ + +.DS_Store + +server/egglocke/db.sqlite3 diff --git a/server/egglocke/db.sqlite3 b/server/egglocke/db.sqlite3 deleted file mode 100644 index f640f520464bf324a6f56d4b222a1f7096b70507..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143360 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 literal 0 HcmV?d00001 diff --git a/server/egglocke/pokepoll/static/pokepoll/img/negative.gif b/server/egglocke/pokepoll/static/pokepoll/img/negative.gif new file mode 100644 index 0000000000000000000000000000000000000000..5cd65a9f17f3d9d6489259757e7223510ba680ab GIT binary patch literal 2795 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 literal 0 HcmV?d00001 diff --git a/server/egglocke/pokepoll/static/pokepoll/img/positive.gif b/server/egglocke/pokepoll/static/pokepoll/img/positive.gif new file mode 100644 index 0000000000000000000000000000000000000000..82a47c489361e4629d947c53240e713843202b3a GIT binary patch literal 17373 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 d{=5MoqM+FDZr response.json()) + .then(data => data.name) +} \ No newline at end of file diff --git a/server/egglocke/pokepoll/static/pokepoll/style.css b/server/egglocke/pokepoll/static/pokepoll/style.css index 1820f30..4fa6c3a 100644 --- a/server/egglocke/pokepoll/static/pokepoll/style.css +++ b/server/egglocke/pokepoll/static/pokepoll/style.css @@ -3,5 +3,5 @@ li a { } body { - background: white url("img/astarion.png") no-repeat; + background: #f0f0f0; } \ No newline at end of file diff --git a/server/egglocke/pokepoll/templates/pokepoll/detail.html b/server/egglocke/pokepoll/templates/pokepoll/detail.html index da81fc5..5e66fd1 100644 --- a/server/egglocke/pokepoll/templates/pokepoll/detail.html +++ b/server/egglocke/pokepoll/templates/pokepoll/detail.html @@ -1,21 +1,39 @@ -

{{ question.question_text }}

-
    -{% for choice in question.choice_set.all %} -
  • {{ choice.choice_text }}
  • -{% endfor %} -
+{% load static %} + + + +

+ +{{ pokemon }} + + +

Submitted by {{ pokemon.submitter.name }}

Submissime owo

-
- {% csrf_token %} -
-

{{ question.question_text }}

- {% if error_message %}

{{ error_message }}

{% endif %} - {% for choice in question.choice_set.all %} - -
- {% endfor %} -
- -
\ No newline at end of file + + + + + + + + \ No newline at end of file diff --git a/server/egglocke/pokepoll/templates/pokepoll/home.html b/server/egglocke/pokepoll/templates/pokepoll/home.html index 465befc..383c5c4 100644 --- a/server/egglocke/pokepoll/templates/pokepoll/home.html +++ b/server/egglocke/pokepoll/templates/pokepoll/home.html @@ -5,7 +5,10 @@

Eviii's Egglocke Maker uwu :3

-

X Eggs Submitted so far!

+

{{ num_eggs_submitted }} Eggs Submitted so far!

-
Submit an Egg! \ No newline at end of file +Submit an egg! + +View Submissions! + diff --git a/server/egglocke/pokepoll/templates/pokepoll/master_submit.html b/server/egglocke/pokepoll/templates/pokepoll/master_submit.html new file mode 100644 index 0000000..dbe9281 --- /dev/null +++ b/server/egglocke/pokepoll/templates/pokepoll/master_submit.html @@ -0,0 +1,146 @@ +{% load static %} +

Hewwo

+ + +
{% csrf_token %} + + {{ pokemon_form.as_p }} + + I have submitted a Pokemon before (we we will check if you) + + +
+ + +
+ + + +
+ + +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/server/egglocke/pokepoll/templates/pokepoll/submissions.html b/server/egglocke/pokepoll/templates/pokepoll/submissions.html index 0511c6a..ebd72b8 100644 --- a/server/egglocke/pokepoll/templates/pokepoll/submissions.html +++ b/server/egglocke/pokepoll/templates/pokepoll/submissions.html @@ -3,12 +3,12 @@ -{% if latest_question_list %} +{% if latest_pokemon_list %} {% else %}

No polls are available.

-{% endif %} \ No newline at end of file +{% endif %} diff --git a/server/egglocke/pokepoll/templates/pokepoll/submit.html b/server/egglocke/pokepoll/templates/pokepoll/submit.html new file mode 100644 index 0000000..7878014 --- /dev/null +++ b/server/egglocke/pokepoll/templates/pokepoll/submit.html @@ -0,0 +1,6 @@ + + +
{% csrf_token %} + {{ form.as_p }} + +
\ No newline at end of file diff --git a/server/egglocke/pokepoll/tests.py b/server/egglocke/pokepoll/tests.py index b2baa35..72c0210 100644 --- a/server/egglocke/pokepoll/tests.py +++ b/server/egglocke/pokepoll/tests.py @@ -4,7 +4,7 @@ from django.test import TestCase from django.utils import timezone from django.urls import reverse -from .models import Question +from .models import Pokemon class QuestionModelTests(TestCase): @@ -14,7 +14,7 @@ def test_was_published_recently_with_future_question(self): is in the future. """ time = timezone.now() + datetime.timedelta(days=30) - future_question = Question(pub_date=time) + future_question = Pokemon(pub_date=time) self.assertIs(future_question.was_published_recently(), False) def test_was_published_recently_with_old_question(self): @@ -23,7 +23,7 @@ def test_was_published_recently_with_old_question(self): is older than 1 day. """ time = timezone.now() - datetime.timedelta(days=1, seconds=1) - old_question = Question(pub_date=time) + old_question = Pokemon(pub_date=time) self.assertIs(old_question.was_published_recently(), False) @@ -33,7 +33,7 @@ def test_was_published_recently_with_recent_question(self): is within the last day. """ time = timezone.now() - datetime.timedelta(hours=23, minutes=59, seconds=59) - recent_question = Question(pub_date=time) + recent_question = Pokemon(pub_date=time) self.assertIs(recent_question.was_published_recently(), True) def create_question(question_text, days): @@ -43,7 +43,7 @@ def create_question(question_text, days): in the past, positive for questions that have yet to be published). """ time = timezone.now() + datetime.timedelta(days=days) - return Question.objects.create(question_text=question_text, pub_date=time) + return Pokemon.objects.create(question_text=question_text, pub_date=time) class QuestionIndexViewTests(TestCase): diff --git a/server/egglocke/pokepoll/urls.py b/server/egglocke/pokepoll/urls.py index e6331ce..6ce2b0e 100644 --- a/server/egglocke/pokepoll/urls.py +++ b/server/egglocke/pokepoll/urls.py @@ -9,4 +9,9 @@ path("/", views.DetailView.as_view(), name="detail"), path("/results/", views.ResultsView.as_view(), name="results"), path("/vote/", views.vote, name="vote"), + path("submit/", views.MasterPokemonAndSubmitterView.as_view(), name="submit"), + # path("submitAuthor/", views.SubmitterFormView.as_view(), name="submitAuthor"), + # path("submitPokemon/", views.PokemonFormView.as_view(), name="submitPokemon"), + path("validateSubmitter/", views.validate_submitter, name="validateSubmitter"), + ] \ No newline at end of file diff --git a/server/egglocke/pokepoll/views.py b/server/egglocke/pokepoll/views.py index e1f8663..082d640 100644 --- a/server/egglocke/pokepoll/views.py +++ b/server/egglocke/pokepoll/views.py @@ -1,46 +1,147 @@ from django.shortcuts import render, get_object_or_404 from django.template import loader -from django.http import Http404, HttpResponse, HttpResponseRedirect +from django.http import Http404, HttpResponse, HttpResponseRedirect, JsonResponse from django.db.models import F from django.views import generic from django.utils import timezone +from django import forms +from django.forms import TextInput, EmailInput # Create your views here. from django.urls import reverse -from .models import Question, Choice +from .models import Pokemon, Submitter class HomeView(generic.TemplateView): template_name = "pokepoll/home.html" + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + context["num_eggs_submitted"] = self.get_num_eggs_submitted() + return context + + def get_num_eggs_submitted(self): + return Pokemon.objects.count() + class IndexView(generic.ListView): template_name = "pokepoll/submissions.html" - context_object_name = "latest_question_list" + context_object_name = "latest_pokemon_list" def get_queryset(self): """ Return the last five published questions (not including those set to be published in the future). """ - return Question.objects.filter(pub_date__lte=timezone.now()).order_by("-pub_date")[ + return Pokemon.objects.filter(pub_date__lte=timezone.now()).order_by("-pub_date")[ :5 ] class DetailView(generic.DetailView): - model = Question + model = Pokemon template_name = "pokepoll/detail.html" + context_object_name = "pokemon" class ResultsView(generic.DetailView): - model = Question + model = Pokemon template_name = "pokepoll/results.html" +class PokemonForm(forms.ModelForm): + class Meta: + model = Pokemon + fields = ['pokemon_nickname', 'pokemon_species'] + +class SubmitterForm(forms.ModelForm): + class Meta: + model = Submitter + fields = ['email', 'name'] + widgets = { + 'name': TextInput(attrs={ + 'class': "form-control", + 'style': 'max-width: 300px;', + 'placeholder': 'Name' + }), + 'email': EmailInput(attrs={ + 'class': "form-control", + 'style': 'max-width: 300px;', + 'placeholder': 'Email' + }) + } + +class MasterPokemonAndSubmitterView(generic.TemplateView): + template_name = 'pokepoll/master_submit.html' + + def get(self, request, *args, **kwargs): + submitter_form = SubmitterForm() + song_form = PokemonForm() + return render(request, self.template_name, { + 'submitter_form': submitter_form, + 'pokemon_form': song_form + }) + + def post(self, request, *args, **kwargs): + + print(request.POST) + + submitter_form = SubmitterForm(request.POST) + song_form = SubmitterForm(request.POST) + + # add validation here + + # if email is in database + foreign_key = None + + if Submitter.objects.filter(email=request.POST.get('email')).exists(): + print("email: {} | ".format(request.POST.get('email'))) + # since emails are unique, we can get the first one + emails = Submitter.objects.get(email=request.POST.get('email')) + foreign_key = emails.id + + else: + # create a new submitter + submitter = Submitter( + name=request.POST.get('name'), + email=request.POST.get('email') + ) + + submitter.save() + foreign_key = submitter.id + + # create a new pokemon + pokemon = Pokemon( + pokemon_nickname=request.POST.get('pokemon_nickname'), + pokemon_species=request.POST.get('pokemon_species'), + pub_date=timezone.now(), + submitter_id=foreign_key + ) + + pokemon.save() + + return HttpResponseRedirect(reverse('pokepoll:home')) + + + + + # if submitter_form.is_valid() and song_form.is_valid(): + # submitter = submitter_form.save() + # song = song_form.save(commit=False) + # song.submitter = submitter + # song.save() + + # return HttpResponseRedirect(reverse('pokepoll:home')) + + # return render(request, self.template_name, { + # 'submitter_form': submitter_form, + # 'pokemon_form': song_form + # }) + + def vote(request, question_id): - question = get_object_or_404(Question, pk=question_id) + question = get_object_or_404(Pokemon, pk=question_id) try: selected_choice = question.choice_set.get(pk=request.POST["choice"]) - except (KeyError, Choice.DoesNotExist): + except (KeyError, Submitter.DoesNotExist): # Redisplay the question voting form. return render( request, @@ -56,4 +157,11 @@ def vote(request, question_id): # Always return an HttpResponseRedirect after successfully dealing # with POST data. This prevents data from being posted twice if a # user hits the Back button. - return HttpResponseRedirect(reverse("pokepoll:results", args=(question.id,))) \ No newline at end of file + return HttpResponseRedirect(reverse("pokepoll:results", args=(question.id,))) + +def validate_submitter(request): + email = request.POST.get('email', None) + data = { + 'is_taken': Submitter.objects.filter(email__iexact=email).exists() + } + return JsonResponse(data) \ No newline at end of file From e01d09c23a365b93a4b02b87a584eaa6745c8cb7 Mon Sep 17 00:00:00 2001 From: Evin Jaff Date: Mon, 27 May 2024 03:59:39 -0700 Subject: [PATCH 2/5] autocomplete kinda works --- server/egglocke/egglocke/settings.py | 1 - server/egglocke/pokepoll/cachedconstants.py | 43 + ...07_alter_pokemon_pokemon_moves_and_more.py | 23 + ...08_alter_pokemon_pokemon_moves_and_more.py | 23 + ...09_alter_pokemon_pokemon_moves_and_more.py | 23 + server/egglocke/pokepoll/models.py | 8 +- .../pokepoll/pokemondomainknowledge.py | 2 + .../static/pokepoll/all_pokemon_names.json | 1 + .../static/pokepoll/img/placeholdersprite.png | Bin 0 -> 29579 bytes .../pokepoll/static/pokepoll/pokedex.json | 16586 ++++++++++++++++ .../pokepoll/templates/pokepoll/detail.html | 2 +- .../templates/pokepoll/master_submit.html | 202 + server/egglocke/pokepoll/views.py | 7 +- 13 files changed, 16914 insertions(+), 7 deletions(-) create mode 100644 server/egglocke/pokepoll/cachedconstants.py create mode 100644 server/egglocke/pokepoll/migrations/0007_alter_pokemon_pokemon_moves_and_more.py create mode 100644 server/egglocke/pokepoll/migrations/0008_alter_pokemon_pokemon_moves_and_more.py create mode 100644 server/egglocke/pokepoll/migrations/0009_alter_pokemon_pokemon_moves_and_more.py create mode 100644 server/egglocke/pokepoll/pokemondomainknowledge.py create mode 100644 server/egglocke/pokepoll/static/pokepoll/all_pokemon_names.json create mode 100644 server/egglocke/pokepoll/static/pokepoll/img/placeholdersprite.png create mode 100644 server/egglocke/pokepoll/static/pokepoll/pokedex.json diff --git a/server/egglocke/egglocke/settings.py b/server/egglocke/egglocke/settings.py index 91fcaa4..a278037 100644 --- a/server/egglocke/egglocke/settings.py +++ b/server/egglocke/egglocke/settings.py @@ -123,6 +123,5 @@ DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' - # Custom settings POKEMON_GENERATION = 4 \ No newline at end of file diff --git a/server/egglocke/pokepoll/cachedconstants.py b/server/egglocke/pokepoll/cachedconstants.py new file mode 100644 index 0000000..7c75668 --- /dev/null +++ b/server/egglocke/pokepoll/cachedconstants.py @@ -0,0 +1,43 @@ +import pypokedex +import json + +# Constants + +ALL_POKEMON_NAMES = [ +] + +MAX_POKEDEX_DICT = { + 1: 151, + 2: 251, + 3: 386, + 4: 493, + 5: 649, + 6: 721, + 7: 809, + 8: 898, +} + +def import_json(filepath): + with open(filepath, 'r') as f: + data = json.load(f) + return data + + +def main(): + + # Derive constant JSON files from static/pokepoll/pokemdex.json + pokedex = import_json('static/pokepoll/pokedex.json') + + # file 1: all_pokemon_names.json + all_pokemon_names = [] + for pokemon in pokedex: + all_pokemon_names.append(pokemon['name']["english"]) + + with open('static/pokepoll/all_pokemon_names.json', 'w') as f: + json.dump(all_pokemon_names, f) + + + + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/server/egglocke/pokepoll/migrations/0007_alter_pokemon_pokemon_moves_and_more.py b/server/egglocke/pokepoll/migrations/0007_alter_pokemon_pokemon_moves_and_more.py new file mode 100644 index 0000000..5d4d09b --- /dev/null +++ b/server/egglocke/pokepoll/migrations/0007_alter_pokemon_pokemon_moves_and_more.py @@ -0,0 +1,23 @@ +# Generated by Django 5.0.6 on 2024-05-27 09:44 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pokepoll', '0006_alter_pokemon_pokemon_ev_alter_pokemon_pokemon_iv'), + ] + + operations = [ + migrations.AlterField( + model_name='pokemon', + name='pokemon_moves', + field=models.JSONField(default=[]), + ), + migrations.AlterField( + model_name='pokemon', + name='pokemon_movespp', + field=models.JSONField(default=[]), + ), + ] diff --git a/server/egglocke/pokepoll/migrations/0008_alter_pokemon_pokemon_moves_and_more.py b/server/egglocke/pokepoll/migrations/0008_alter_pokemon_pokemon_moves_and_more.py new file mode 100644 index 0000000..5da53d8 --- /dev/null +++ b/server/egglocke/pokepoll/migrations/0008_alter_pokemon_pokemon_moves_and_more.py @@ -0,0 +1,23 @@ +# Generated by Django 5.0.6 on 2024-05-27 09:44 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pokepoll', '0007_alter_pokemon_pokemon_moves_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='pokemon', + name='pokemon_moves', + field=models.JSONField(default={}), + ), + migrations.AlterField( + model_name='pokemon', + name='pokemon_movespp', + field=models.JSONField(default={}), + ), + ] diff --git a/server/egglocke/pokepoll/migrations/0009_alter_pokemon_pokemon_moves_and_more.py b/server/egglocke/pokepoll/migrations/0009_alter_pokemon_pokemon_moves_and_more.py new file mode 100644 index 0000000..a072bcf --- /dev/null +++ b/server/egglocke/pokepoll/migrations/0009_alter_pokemon_pokemon_moves_and_more.py @@ -0,0 +1,23 @@ +# Generated by Django 5.0.6 on 2024-05-27 09:45 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pokepoll', '0008_alter_pokemon_pokemon_moves_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='pokemon', + name='pokemon_moves', + field=models.JSONField(default=dict), + ), + migrations.AlterField( + model_name='pokemon', + name='pokemon_movespp', + field=models.JSONField(default=dict), + ), + ] diff --git a/server/egglocke/pokepoll/models.py b/server/egglocke/pokepoll/models.py index 2ff5c1e..3179d67 100644 --- a/server/egglocke/pokepoll/models.py +++ b/server/egglocke/pokepoll/models.py @@ -29,10 +29,10 @@ class Pokemon(models.Model): pokemon_nature = models.IntegerField(default=1) pokemon_OT = models.CharField(max_length=10, default="Red") pokemon_OTGender = models.IntegerField(default=1) - pokemon_IV = models.JSONField(default=[31, 31, 31, 31, 31, 31]) - pokemon_EV = models.JSONField(default=[0, 0, 0, 0, 0, 0]) - pokemon_moves = models.JSONField(default=list()) - pokemon_movespp = models.JSONField(default=list()) + pokemon_IV = models.JSONField(default=list([31, 31, 31, 31, 31, 31])) + pokemon_EV = models.JSONField(default=list([0, 0, 0, 0, 0, 0])) + pokemon_moves = models.JSONField(default=dict) + pokemon_movespp = models.JSONField(default=dict) pub_date = models.DateTimeField("date published") diff --git a/server/egglocke/pokepoll/pokemondomainknowledge.py b/server/egglocke/pokepoll/pokemondomainknowledge.py new file mode 100644 index 0000000..139597f --- /dev/null +++ b/server/egglocke/pokepoll/pokemondomainknowledge.py @@ -0,0 +1,2 @@ + + diff --git a/server/egglocke/pokepoll/static/pokepoll/all_pokemon_names.json b/server/egglocke/pokepoll/static/pokepoll/all_pokemon_names.json new file mode 100644 index 0000000..bbb9e7c --- /dev/null +++ b/server/egglocke/pokepoll/static/pokepoll/all_pokemon_names.json @@ -0,0 +1 @@ +["Bulbasaur", "Ivysaur", "Venusaur", "Charmander", "Charmeleon", "Charizard", "Squirtle", "Wartortle", "Blastoise", "Caterpie", "Metapod", "Butterfree", "Weedle", "Kakuna", "Beedrill", "Pidgey", "Pidgeotto", "Pidgeot", "Rattata", "Raticate", "Spearow", "Fearow", "Ekans", "Arbok", "Pikachu", "Raichu", "Sandshrew", "Sandslash", "Nidoran\u2640", "Nidorina", "Nidoqueen", "Nidoran\u2642", "Nidorino", "Nidoking", "Clefairy", "Clefable", "Vulpix", "Ninetales", "Jigglypuff", "Wigglytuff", "Zubat", "Golbat", "Oddish", "Gloom", "Vileplume", "Paras", "Parasect", "Venonat", "Venomoth", "Diglett", "Dugtrio", "Meowth", "Persian", "Psyduck", "Golduck", "Mankey", "Primeape", "Growlithe", "Arcanine", "Poliwag", "Poliwhirl", "Poliwrath", "Abra", "Kadabra", "Alakazam", "Machop", "Machoke", "Machamp", "Bellsprout", "Weepinbell", "Victreebel", "Tentacool", "Tentacruel", "Geodude", "Graveler", "Golem", "Ponyta", "Rapidash", "Slowpoke", "Slowbro", "Magnemite", "Magneton", "Farfetch'd", "Doduo", "Dodrio", "Seel", "Dewgong", "Grimer", "Muk", "Shellder", "Cloyster", "Gastly", "Haunter", "Gengar", "Onix", "Drowzee", "Hypno", "Krabby", "Kingler", "Voltorb", "Electrode", "Exeggcute", "Exeggutor", "Cubone", "Marowak", "Hitmonlee", "Hitmonchan", "Lickitung", "Koffing", "Weezing", "Rhyhorn", "Rhydon", "Chansey", "Tangela", "Kangaskhan", "Horsea", "Seadra", "Goldeen", "Seaking", "Staryu", "Starmie", "Mr. Mime", "Scyther", "Jynx", "Electabuzz", "Magmar", "Pinsir", "Tauros", "Magikarp", "Gyarados", "Lapras", "Ditto", "Eevee", "Vaporeon", "Jolteon", "Flareon", "Porygon", "Omanyte", "Omastar", "Kabuto", "Kabutops", "Aerodactyl", "Snorlax", "Articuno", "Zapdos", "Moltres", "Dratini", "Dragonair", "Dragonite", "Mewtwo", "Mew", "Chikorita", "Bayleef", "Meganium", "Cyndaquil", "Quilava", "Typhlosion", "Totodile", "Croconaw", "Feraligatr", "Sentret", "Furret", "Hoothoot", "Noctowl", "Ledyba", "Ledian", "Spinarak", "Ariados", "Crobat", "Chinchou", "Lanturn", "Pichu", "Cleffa", "Igglybuff", "Togepi", "Togetic", "Natu", "Xatu", "Mareep", "Flaaffy", "Ampharos", "Bellossom", "Marill", "Azumarill", "Sudowoodo", "Politoed", "Hoppip", "Skiploom", "Jumpluff", "Aipom", "Sunkern", "Sunflora", "Yanma", "Wooper", "Quagsire", "Espeon", "Umbreon", "Murkrow", "Slowking", "Misdreavus", "Unown", "Wobbuffet", "Girafarig", "Pineco", "Forretress", "Dunsparce", "Gligar", "Steelix", "Snubbull", "Granbull", "Qwilfish", "Scizor", "Shuckle", "Heracross", "Sneasel", "Teddiursa", "Ursaring", "Slugma", "Magcargo", "Swinub", "Piloswine", "Corsola", "Remoraid", "Octillery", "Delibird", "Mantine", "Skarmory", "Houndour", "Houndoom", "Kingdra", "Phanpy", "Donphan", "Porygon2", "Stantler", "Smeargle", "Tyrogue", "Hitmontop", "Smoochum", "Elekid", "Magby", "Miltank", "Blissey", "Raikou", "Entei", "Suicune", "Larvitar", "Pupitar", "Tyranitar", "Lugia", "Ho-Oh", "Celebi", "Treecko", "Grovyle", "Sceptile", "Torchic", "Combusken", "Blaziken", "Mudkip", "Marshtomp", "Swampert", "Poochyena", "Mightyena", "Zigzagoon", "Linoone", "Wurmple", "Silcoon", "Beautifly", "Cascoon", "Dustox", "Lotad", "Lombre", "Ludicolo", "Seedot", "Nuzleaf", "Shiftry", "Taillow", "Swellow", "Wingull", "Pelipper", "Ralts", "Kirlia", "Gardevoir", "Surskit", "Masquerain", "Shroomish", "Breloom", "Slakoth", "Vigoroth", "Slaking", "Nincada", "Ninjask", "Shedinja", "Whismur", "Loudred", "Exploud", "Makuhita", "Hariyama", "Azurill", "Nosepass", "Skitty", "Delcatty", "Sableye", "Mawile", "Aron", "Lairon", "Aggron", "Meditite", "Medicham", "Electrike", "Manectric", "Plusle", "Minun", "Volbeat", "Illumise", "Roselia", "Gulpin", "Swalot", "Carvanha", "Sharpedo", "Wailmer", "Wailord", "Numel", "Camerupt", "Torkoal", "Spoink", "Grumpig", "Spinda", "Trapinch", "Vibrava", "Flygon", "Cacnea", "Cacturne", "Swablu", "Altaria", "Zangoose", "Seviper", "Lunatone", "Solrock", "Barboach", "Whiscash", "Corphish", "Crawdaunt", "Baltoy", "Claydol", "Lileep", "Cradily", "Anorith", "Armaldo", "Feebas", "Milotic", "Castform", "Kecleon", "Shuppet", "Banette", "Duskull", "Dusclops", "Tropius", "Chimecho", "Absol", "Wynaut", "Snorunt", "Glalie", "Spheal", "Sealeo", "Walrein", "Clamperl", "Huntail", "Gorebyss", "Relicanth", "Luvdisc", "Bagon", "Shelgon", "Salamence", "Beldum", "Metang", "Metagross", "Regirock", "Regice", "Registeel", "Latias", "Latios", "Kyogre", "Groudon", "Rayquaza", "Jirachi", "Deoxys", "Turtwig", "Grotle", "Torterra", "Chimchar", "Monferno", "Infernape", "Piplup", "Prinplup", "Empoleon", "Starly", "Staravia", "Staraptor", "Bidoof", "Bibarel", "Kricketot", "Kricketune", "Shinx", "Luxio", "Luxray", "Budew", "Roserade", "Cranidos", "Rampardos", "Shieldon", "Bastiodon", "Burmy", "Wormadam", "Mothim", "Combee", "Vespiquen", "Pachirisu", "Buizel", "Floatzel", "Cherubi", "Cherrim", "Shellos", "Gastrodon", "Ambipom", "Drifloon", "Drifblim", "Buneary", "Lopunny", "Mismagius", "Honchkrow", "Glameow", "Purugly", "Chingling", "Stunky", "Skuntank", "Bronzor", "Bronzong", "Bonsly", "Mime Jr.", "Happiny", "Chatot", "Spiritomb", "Gible", "Gabite", "Garchomp", "Munchlax", "Riolu", "Lucario", "Hippopotas", "Hippowdon", "Skorupi", "Drapion", "Croagunk", "Toxicroak", "Carnivine", "Finneon", "Lumineon", "Mantyke", "Snover", "Abomasnow", "Weavile", "Magnezone", "Lickilicky", "Rhyperior", "Tangrowth", "Electivire", "Magmortar", "Togekiss", "Yanmega", "Leafeon", "Glaceon", "Gliscor", "Mamoswine", "Porygon-Z", "Gallade", "Probopass", "Dusknoir", "Froslass", "Rotom", "Uxie", "Mesprit", "Azelf", "Dialga", "Palkia", "Heatran", "Regigigas", "Giratina", "Cresselia", "Phione", "Manaphy", "Darkrai", "Shaymin", "Arceus", "Victini", "Snivy", "Servine", "Serperior", "Tepig", "Pignite", "Emboar", "Oshawott", "Dewott", "Samurott", "Patrat", "Watchog", "Lillipup", "Herdier", "Stoutland", "Purrloin", "Liepard", "Pansage", "Simisage", "Pansear", "Simisear", "Panpour", "Simipour", "Munna", "Musharna", "Pidove", "Tranquill", "Unfezant", "Blitzle", "Zebstrika", "Roggenrola", "Boldore", "Gigalith", "Woobat", "Swoobat", "Drilbur", "Excadrill", "Audino", "Timburr", "Gurdurr", "Conkeldurr", "Tympole", "Palpitoad", "Seismitoad", "Throh", "Sawk", "Sewaddle", "Swadloon", "Leavanny", "Venipede", "Whirlipede", "Scolipede", "Cottonee", "Whimsicott", "Petilil", "Lilligant", "Basculin", "Sandile", "Krokorok", "Krookodile", "Darumaka", "Darmanitan", "Maractus", "Dwebble", "Crustle", "Scraggy", "Scrafty", "Sigilyph", "Yamask", "Cofagrigus", "Tirtouga", "Carracosta", "Archen", "Archeops", "Trubbish", "Garbodor", "Zorua", "Zoroark", "Minccino", "Cinccino", "Gothita", "Gothorita", "Gothitelle", "Solosis", "Duosion", "Reuniclus", "Ducklett", "Swanna", "Vanillite", "Vanillish", "Vanilluxe", "Deerling", "Sawsbuck", "Emolga", "Karrablast", "Escavalier", "Foongus", "Amoonguss", "Frillish", "Jellicent", "Alomomola", "Joltik", "Galvantula", "Ferroseed", "Ferrothorn", "Klink", "Klang", "Klinklang", "Tynamo", "Eelektrik", "Eelektross", "Elgyem", "Beheeyem", "Litwick", "Lampent", "Chandelure", "Axew", "Fraxure", "Haxorus", "Cubchoo", "Beartic", "Cryogonal", "Shelmet", "Accelgor", "Stunfisk", "Mienfoo", "Mienshao", "Druddigon", "Golett", "Golurk", "Pawniard", "Bisharp", "Bouffalant", "Rufflet", "Braviary", "Vullaby", "Mandibuzz", "Heatmor", "Durant", "Deino", "Zweilous", "Hydreigon", "Larvesta", "Volcarona", "Cobalion", "Terrakion", "Virizion", "Tornadus", "Thundurus", "Reshiram", "Zekrom", "Landorus", "Kyurem", "Keldeo", "Meloetta", "Genesect", "Chespin", "Quilladin", "Chesnaught", "Fennekin", "Braixen", "Delphox", "Froakie", "Frogadier", "Greninja", "Bunnelby", "Diggersby", "Fletchling", "Fletchinder", "Talonflame", "Scatterbug", "Spewpa", "Vivillon", "Litleo", "Pyroar", "Flab\u00e9b\u00e9", "Floette", "Florges", "Skiddo", "Gogoat", "Pancham", "Pangoro", "Furfrou", "Espurr", "Meowstic", "Honedge", "Doublade", "Aegislash", "Spritzee", "Aromatisse", "Swirlix", "Slurpuff", "Inkay", "Malamar", "Binacle", "Barbaracle", "Skrelp", "Dragalge", "Clauncher", "Clawitzer", "Helioptile", "Heliolisk", "Tyrunt", "Tyrantrum", "Amaura", "Aurorus", "Sylveon", "Hawlucha", "Dedenne", "Carbink", "Goomy", "Sliggoo", "Goodra", "Klefki", "Phantump", "Trevenant", "Pumpkaboo", "Gourgeist", "Bergmite", "Avalugg", "Noibat", "Noivern", "Xerneas", "Yveltal", "Zygarde", "Diancie", "Hoopa", "Volcanion", "Rowlet", "Dartrix", "Decidueye", "Litten", "Torracat", "Incineroar", "Popplio", "Brionne", "Primarina", "Pikipek", "Trumbeak", "Toucannon", "Yungoos", "Gumshoos", "Grubbin", "Charjabug", "Vikavolt", "Crabrawler", "Crabominable", "Oricorio", "Cutiefly", "Ribombee", "Rockruff", "Lycanroc", "Wishiwashi", "Mareanie", "Toxapex", "Mudbray", "Mudsdale", "Dewpider", "Araquanid", "Fomantis", "Lurantis", "Morelull", "Shiinotic", "Salandit", "Salazzle", "Stufful", "Bewear", "Bounsweet", "Steenee", "Tsareena", "Comfey", "Oranguru", "Passimian", "Wimpod", "Golisopod", "Sandygast", "Palossand", "Pyukumuku", "Type: Null", "Silvally", "Minior", "Komala", "Turtonator", "Togedemaru", "Mimikyu", "Bruxish", "Drampa", "Dhelmise", "Jangmo-o", "Hakamo-o", "Kommo-o", "Tapu Koko", "Tapu Lele", "Tapu Bulu", "Tapu Fini", "Cosmog", "Cosmoem", "Solgaleo", "Lunala", "Nihilego", "Buzzwole", "Pheromosa", "Xurkitree", "Celesteela", "Kartana", "Guzzlord", "Necrozma", "Magearna", "Marshadow", "Poipole", "Naganadel", "Stakataka", "Blacephalon", "Zeraora", "Meltan", "Melmetal"] \ No newline at end of file diff --git a/server/egglocke/pokepoll/static/pokepoll/img/placeholdersprite.png b/server/egglocke/pokepoll/static/pokepoll/img/placeholdersprite.png new file mode 100644 index 0000000000000000000000000000000000000000..f2ef3a0fe546b67b58c54ae81704b1a74f087ffd GIT binary patch literal 29579 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 literal 0 HcmV?d00001 diff --git a/server/egglocke/pokepoll/static/pokepoll/pokedex.json b/server/egglocke/pokepoll/static/pokepoll/pokedex.json new file mode 100644 index 0000000..21fc884 --- /dev/null +++ b/server/egglocke/pokepoll/static/pokepoll/pokedex.json @@ -0,0 +1,16586 @@ +[{ + "id": 1, + "name": { + "english": "Bulbasaur", + "japanese": "フシギダネ", + "chinese": "妙蛙种子", + "french": "Bulbizarre" + }, + "type": [ + "Grass", + "Poison" + ], + "base": { + "HP": 45, + "Attack": 49, + "Defense": 49, + "Sp. Attack": 65, + "Sp. Defense": 65, + "Speed": 45 + } + }, + { + "id": 2, + "name": { + "english": "Ivysaur", + "japanese": "フシギソウ", + "chinese": "妙蛙草", + "french": "Herbizarre" + }, + "type": [ + "Grass", + "Poison" + ], + "base": { + "HP": 60, + "Attack": 62, + "Defense": 63, + "Sp. Attack": 80, + "Sp. Defense": 80, + "Speed": 60 + } + }, + { + "id": 3, + "name": { + "english": "Venusaur", + "japanese": "フシギバナ", + "chinese": "妙蛙花", + "french": "Florizarre" + }, + "type": [ + "Grass", + "Poison" + ], + "base": { + "HP": 80, + "Attack": 82, + "Defense": 83, + "Sp. Attack": 100, + "Sp. Defense": 100, + "Speed": 80 + } + }, + { + "id": 4, + "name": { + "english": "Charmander", + "japanese": "ヒトカゲ", + "chinese": "小火龙", + "french": "Salamèche" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 39, + "Attack": 52, + "Defense": 43, + "Sp. Attack": 60, + "Sp. Defense": 50, + "Speed": 65 + } + }, + { + "id": 5, + "name": { + "english": "Charmeleon", + "japanese": "リザード", + "chinese": "火恐龙", + "french": "Reptincel" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 58, + "Attack": 64, + "Defense": 58, + "Sp. Attack": 80, + "Sp. Defense": 65, + "Speed": 80 + } + }, + { + "id": 6, + "name": { + "english": "Charizard", + "japanese": "リザードン", + "chinese": "喷火龙", + "french": "Dracaufeu" + }, + "type": [ + "Fire", + "Flying" + ], + "base": { + "HP": 78, + "Attack": 84, + "Defense": 78, + "Sp. Attack": 109, + "Sp. Defense": 85, + "Speed": 100 + } + }, + { + "id": 7, + "name": { + "english": "Squirtle", + "japanese": "ゼニガメ", + "chinese": "杰尼龟", + "french": "Carapuce" + }, + "type": [ + "Water" + ], + "base": { + "HP": 44, + "Attack": 48, + "Defense": 65, + "Sp. Attack": 50, + "Sp. Defense": 64, + "Speed": 43 + } + }, + { + "id": 8, + "name": { + "english": "Wartortle", + "japanese": "カメール", + "chinese": "卡咪龟", + "french": "Carabaffe" + }, + "type": [ + "Water" + ], + "base": { + "HP": 59, + "Attack": 63, + "Defense": 80, + "Sp. Attack": 65, + "Sp. Defense": 80, + "Speed": 58 + } + }, + { + "id": 9, + "name": { + "english": "Blastoise", + "japanese": "カメックス", + "chinese": "水箭龟", + "french": "Tortank" + }, + "type": [ + "Water" + ], + "base": { + "HP": 79, + "Attack": 83, + "Defense": 100, + "Sp. Attack": 85, + "Sp. Defense": 105, + "Speed": 78 + } + }, + { + "id": 10, + "name": { + "english": "Caterpie", + "japanese": "キャタピー", + "chinese": "绿毛虫", + "french": "Chenipan" + }, + "type": [ + "Bug" + ], + "base": { + "HP": 45, + "Attack": 30, + "Defense": 35, + "Sp. Attack": 20, + "Sp. Defense": 20, + "Speed": 45 + } + }, + { + "id": 11, + "name": { + "english": "Metapod", + "japanese": "トランセル", + "chinese": "铁甲蛹", + "french": "Chrysacier" + }, + "type": [ + "Bug" + ], + "base": { + "HP": 50, + "Attack": 20, + "Defense": 55, + "Sp. Attack": 25, + "Sp. Defense": 25, + "Speed": 30 + } + }, + { + "id": 12, + "name": { + "english": "Butterfree", + "japanese": "バタフリー", + "chinese": "巴大蝶", + "french": "Papilusion" + }, + "type": [ + "Bug", + "Flying" + ], + "base": { + "HP": 60, + "Attack": 45, + "Defense": 50, + "Sp. Attack": 90, + "Sp. Defense": 80, + "Speed": 70 + } + }, + { + "id": 13, + "name": { + "english": "Weedle", + "japanese": "ビードル", + "chinese": "独角虫", + "french": "Aspicot" + }, + "type": [ + "Bug", + "Poison" + ], + "base": { + "HP": 40, + "Attack": 35, + "Defense": 30, + "Sp. Attack": 20, + "Sp. Defense": 20, + "Speed": 50 + } + }, + { + "id": 14, + "name": { + "english": "Kakuna", + "japanese": "コクーン", + "chinese": "铁壳蛹", + "french": "Coconfort" + }, + "type": [ + "Bug", + "Poison" + ], + "base": { + "HP": 45, + "Attack": 25, + "Defense": 50, + "Sp. Attack": 25, + "Sp. Defense": 25, + "Speed": 35 + } + }, + { + "id": 15, + "name": { + "english": "Beedrill", + "japanese": "スピアー", + "chinese": "大针蜂", + "french": "Dardargnan" + }, + "type": [ + "Bug", + "Poison" + ], + "base": { + "HP": 65, + "Attack": 90, + "Defense": 40, + "Sp. Attack": 45, + "Sp. Defense": 80, + "Speed": 75 + } + }, + { + "id": 16, + "name": { + "english": "Pidgey", + "japanese": "ポッポ", + "chinese": "波波", + "french": "Roucool" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 40, + "Attack": 45, + "Defense": 40, + "Sp. Attack": 35, + "Sp. Defense": 35, + "Speed": 56 + } + }, + { + "id": 17, + "name": { + "english": "Pidgeotto", + "japanese": "ピジョン", + "chinese": "比比鸟", + "french": "Roucoups" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 63, + "Attack": 60, + "Defense": 55, + "Sp. Attack": 50, + "Sp. Defense": 50, + "Speed": 71 + } + }, + { + "id": 18, + "name": { + "english": "Pidgeot", + "japanese": "ピジョット", + "chinese": "大比鸟", + "french": "Roucarnage" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 83, + "Attack": 80, + "Defense": 75, + "Sp. Attack": 70, + "Sp. Defense": 70, + "Speed": 101 + } + }, + { + "id": 19, + "name": { + "english": "Rattata", + "japanese": "コラッタ", + "chinese": "小拉达", + "french": "Rattata" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 30, + "Attack": 56, + "Defense": 35, + "Sp. Attack": 25, + "Sp. Defense": 35, + "Speed": 72 + } + }, + { + "id": 20, + "name": { + "english": "Raticate", + "japanese": "ラッタ", + "chinese": "拉达", + "french": "Rattatac" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 55, + "Attack": 81, + "Defense": 60, + "Sp. Attack": 50, + "Sp. Defense": 70, + "Speed": 97 + } + }, + { + "id": 21, + "name": { + "english": "Spearow", + "japanese": "オニスズメ", + "chinese": "烈雀", + "french": "Piafabec" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 40, + "Attack": 60, + "Defense": 30, + "Sp. Attack": 31, + "Sp. Defense": 31, + "Speed": 70 + } + }, + { + "id": 22, + "name": { + "english": "Fearow", + "japanese": "オニドリル", + "chinese": "大嘴雀", + "french": "Rapasdepic" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 65, + "Attack": 90, + "Defense": 65, + "Sp. Attack": 61, + "Sp. Defense": 61, + "Speed": 100 + } + }, + { + "id": 23, + "name": { + "english": "Ekans", + "japanese": "アーボ", + "chinese": "阿柏蛇", + "french": "Abo" + }, + "type": [ + "Poison" + ], + "base": { + "HP": 35, + "Attack": 60, + "Defense": 44, + "Sp. Attack": 40, + "Sp. Defense": 54, + "Speed": 55 + } + }, + { + "id": 24, + "name": { + "english": "Arbok", + "japanese": "アーボック", + "chinese": "阿柏怪", + "french": "Arbok" + }, + "type": [ + "Poison" + ], + "base": { + "HP": 60, + "Attack": 95, + "Defense": 69, + "Sp. Attack": 65, + "Sp. Defense": 79, + "Speed": 80 + } + }, + { + "id": 25, + "name": { + "english": "Pikachu", + "japanese": "ピカチュウ", + "chinese": "皮卡丘", + "french": "Pikachu" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 35, + "Attack": 55, + "Defense": 40, + "Sp. Attack": 50, + "Sp. Defense": 50, + "Speed": 90 + } + }, + { + "id": 26, + "name": { + "english": "Raichu", + "japanese": "ライチュウ", + "chinese": "雷丘", + "french": "Raichu" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 60, + "Attack": 90, + "Defense": 55, + "Sp. Attack": 90, + "Sp. Defense": 80, + "Speed": 110 + } + }, + { + "id": 27, + "name": { + "english": "Sandshrew", + "japanese": "サンド", + "chinese": "穿山鼠", + "french": "Sabelette" + }, + "type": [ + "Ground" + ], + "base": { + "HP": 50, + "Attack": 75, + "Defense": 85, + "Sp. Attack": 20, + "Sp. Defense": 30, + "Speed": 40 + } + }, + { + "id": 28, + "name": { + "english": "Sandslash", + "japanese": "サンドパン", + "chinese": "穿山王", + "french": "Sablaireau" + }, + "type": [ + "Ground" + ], + "base": { + "HP": 75, + "Attack": 100, + "Defense": 110, + "Sp. Attack": 45, + "Sp. Defense": 55, + "Speed": 65 + } + }, + { + "id": 29, + "name": { + "english": "Nidoran♀", + "japanese": "ニドラン♀", + "chinese": "尼多兰", + "french": "Nidoran♀" + }, + "type": [ + "Poison" + ], + "base": { + "HP": 55, + "Attack": 47, + "Defense": 52, + "Sp. Attack": 40, + "Sp. Defense": 40, + "Speed": 41 + } + }, + { + "id": 30, + "name": { + "english": "Nidorina", + "japanese": "ニドリーナ", + "chinese": "尼多娜", + "french": "Nidorina" + }, + "type": [ + "Poison" + ], + "base": { + "HP": 70, + "Attack": 62, + "Defense": 67, + "Sp. Attack": 55, + "Sp. Defense": 55, + "Speed": 56 + } + }, + { + "id": 31, + "name": { + "english": "Nidoqueen", + "japanese": "ニドクイン", + "chinese": "尼多后", + "french": "Nidoqueen" + }, + "type": [ + "Poison", + "Ground" + ], + "base": { + "HP": 90, + "Attack": 92, + "Defense": 87, + "Sp. Attack": 75, + "Sp. Defense": 85, + "Speed": 76 + } + }, + { + "id": 32, + "name": { + "english": "Nidoran♂", + "japanese": "ニドラン♂", + "chinese": "尼多朗", + "french": "Nidoran♂" + }, + "type": [ + "Poison" + ], + "base": { + "HP": 46, + "Attack": 57, + "Defense": 40, + "Sp. Attack": 40, + "Sp. Defense": 40, + "Speed": 50 + } + }, + { + "id": 33, + "name": { + "english": "Nidorino", + "japanese": "ニドリーノ", + "chinese": "尼多力诺", + "french": "Nidorino" + }, + "type": [ + "Poison" + ], + "base": { + "HP": 61, + "Attack": 72, + "Defense": 57, + "Sp. Attack": 55, + "Sp. Defense": 55, + "Speed": 65 + } + }, + { + "id": 34, + "name": { + "english": "Nidoking", + "japanese": "ニドキング", + "chinese": "尼多王", + "french": "Nidoking" + }, + "type": [ + "Poison", + "Ground" + ], + "base": { + "HP": 81, + "Attack": 102, + "Defense": 77, + "Sp. Attack": 85, + "Sp. Defense": 75, + "Speed": 85 + } + }, + { + "id": 35, + "name": { + "english": "Clefairy", + "japanese": "ピッピ", + "chinese": "皮皮", + "french": "Mélofée" + }, + "type": [ + "Fairy" + ], + "base": { + "HP": 70, + "Attack": 45, + "Defense": 48, + "Sp. Attack": 60, + "Sp. Defense": 65, + "Speed": 35 + } + }, + { + "id": 36, + "name": { + "english": "Clefable", + "japanese": "ピクシー", + "chinese": "皮可西", + "french": "Mélodelfe" + }, + "type": [ + "Fairy" + ], + "base": { + "HP": 95, + "Attack": 70, + "Defense": 73, + "Sp. Attack": 95, + "Sp. Defense": 90, + "Speed": 60 + } + }, + { + "id": 37, + "name": { + "english": "Vulpix", + "japanese": "ロコン", + "chinese": "六尾", + "french": "Goupix" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 38, + "Attack": 41, + "Defense": 40, + "Sp. Attack": 50, + "Sp. Defense": 65, + "Speed": 65 + } + }, + { + "id": 38, + "name": { + "english": "Ninetales", + "japanese": "キュウコン", + "chinese": "九尾", + "french": "Feunard" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 73, + "Attack": 76, + "Defense": 75, + "Sp. Attack": 81, + "Sp. Defense": 100, + "Speed": 100 + } + }, + { + "id": 39, + "name": { + "english": "Jigglypuff", + "japanese": "プリン", + "chinese": "胖丁", + "french": "Rondoudou" + }, + "type": [ + "Normal", + "Fairy" + ], + "base": { + "HP": 115, + "Attack": 45, + "Defense": 20, + "Sp. Attack": 45, + "Sp. Defense": 25, + "Speed": 20 + } + }, + { + "id": 40, + "name": { + "english": "Wigglytuff", + "japanese": "プクリン", + "chinese": "胖可丁", + "french": "Grodoudou" + }, + "type": [ + "Normal", + "Fairy" + ], + "base": { + "HP": 140, + "Attack": 70, + "Defense": 45, + "Sp. Attack": 85, + "Sp. Defense": 50, + "Speed": 45 + } + }, + { + "id": 41, + "name": { + "english": "Zubat", + "japanese": "ズバット", + "chinese": "超音蝠", + "french": "Nosferapti" + }, + "type": [ + "Poison", + "Flying" + ], + "base": { + "HP": 40, + "Attack": 45, + "Defense": 35, + "Sp. Attack": 30, + "Sp. Defense": 40, + "Speed": 55 + } + }, + { + "id": 42, + "name": { + "english": "Golbat", + "japanese": "ゴルバット", + "chinese": "大嘴蝠", + "french": "Nosferalto" + }, + "type": [ + "Poison", + "Flying" + ], + "base": { + "HP": 75, + "Attack": 80, + "Defense": 70, + "Sp. Attack": 65, + "Sp. Defense": 75, + "Speed": 90 + } + }, + { + "id": 43, + "name": { + "english": "Oddish", + "japanese": "ナゾノクサ", + "chinese": "走路草", + "french": "Mystherbe" + }, + "type": [ + "Grass", + "Poison" + ], + "base": { + "HP": 45, + "Attack": 50, + "Defense": 55, + "Sp. Attack": 75, + "Sp. Defense": 65, + "Speed": 30 + } + }, + { + "id": 44, + "name": { + "english": "Gloom", + "japanese": "クサイハナ", + "chinese": "臭臭花", + "french": "Ortide" + }, + "type": [ + "Grass", + "Poison" + ], + "base": { + "HP": 60, + "Attack": 65, + "Defense": 70, + "Sp. Attack": 85, + "Sp. Defense": 75, + "Speed": 40 + } + }, + { + "id": 45, + "name": { + "english": "Vileplume", + "japanese": "ラフレシア", + "chinese": "霸王花", + "french": "Rafflesia" + }, + "type": [ + "Grass", + "Poison" + ], + "base": { + "HP": 75, + "Attack": 80, + "Defense": 85, + "Sp. Attack": 110, + "Sp. Defense": 90, + "Speed": 50 + } + }, + { + "id": 46, + "name": { + "english": "Paras", + "japanese": "パラス", + "chinese": "派拉斯", + "french": "Paras" + }, + "type": [ + "Bug", + "Grass" + ], + "base": { + "HP": 35, + "Attack": 70, + "Defense": 55, + "Sp. Attack": 45, + "Sp. Defense": 55, + "Speed": 25 + } + }, + { + "id": 47, + "name": { + "english": "Parasect", + "japanese": "パラセクト", + "chinese": "派拉斯特", + "french": "Parasect" + }, + "type": [ + "Bug", + "Grass" + ], + "base": { + "HP": 60, + "Attack": 95, + "Defense": 80, + "Sp. Attack": 60, + "Sp. Defense": 80, + "Speed": 30 + } + }, + { + "id": 48, + "name": { + "english": "Venonat", + "japanese": "コンパン", + "chinese": "毛球", + "french": "Mimitoss" + }, + "type": [ + "Bug", + "Poison" + ], + "base": { + "HP": 60, + "Attack": 55, + "Defense": 50, + "Sp. Attack": 40, + "Sp. Defense": 55, + "Speed": 45 + } + }, + { + "id": 49, + "name": { + "english": "Venomoth", + "japanese": "モルフォン", + "chinese": "摩鲁蛾", + "french": "Aéromite" + }, + "type": [ + "Bug", + "Poison" + ], + "base": { + "HP": 70, + "Attack": 65, + "Defense": 60, + "Sp. Attack": 90, + "Sp. Defense": 75, + "Speed": 90 + } + }, + { + "id": 50, + "name": { + "english": "Diglett", + "japanese": "ディグダ", + "chinese": "地鼠", + "french": "Taupiqueur" + }, + "type": [ + "Ground" + ], + "base": { + "HP": 10, + "Attack": 55, + "Defense": 25, + "Sp. Attack": 35, + "Sp. Defense": 45, + "Speed": 95 + } + }, + { + "id": 51, + "name": { + "english": "Dugtrio", + "japanese": "ダグトリオ", + "chinese": "三地鼠", + "french": "Triopikeur" + }, + "type": [ + "Ground" + ], + "base": { + "HP": 35, + "Attack": 100, + "Defense": 50, + "Sp. Attack": 50, + "Sp. Defense": 70, + "Speed": 120 + } + }, + { + "id": 52, + "name": { + "english": "Meowth", + "japanese": "ニャース", + "chinese": "喵喵", + "french": "Miaouss" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 40, + "Attack": 45, + "Defense": 35, + "Sp. Attack": 40, + "Sp. Defense": 40, + "Speed": 90 + } + }, + { + "id": 53, + "name": { + "english": "Persian", + "japanese": "ペルシアン", + "chinese": "猫老大", + "french": "Persian" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 65, + "Attack": 70, + "Defense": 60, + "Sp. Attack": 65, + "Sp. Defense": 65, + "Speed": 115 + } + }, + { + "id": 54, + "name": { + "english": "Psyduck", + "japanese": "コダック", + "chinese": "可达鸭", + "french": "Psykokwak" + }, + "type": [ + "Water" + ], + "base": { + "HP": 50, + "Attack": 52, + "Defense": 48, + "Sp. Attack": 65, + "Sp. Defense": 50, + "Speed": 55 + } + }, + { + "id": 55, + "name": { + "english": "Golduck", + "japanese": "ゴルダック", + "chinese": "哥达鸭", + "french": "Akwakwak" + }, + "type": [ + "Water" + ], + "base": { + "HP": 80, + "Attack": 82, + "Defense": 78, + "Sp. Attack": 95, + "Sp. Defense": 80, + "Speed": 85 + } + }, + { + "id": 56, + "name": { + "english": "Mankey", + "japanese": "マンキー", + "chinese": "猴怪", + "french": "Férosinge" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 40, + "Attack": 80, + "Defense": 35, + "Sp. Attack": 35, + "Sp. Defense": 45, + "Speed": 70 + } + }, + { + "id": 57, + "name": { + "english": "Primeape", + "japanese": "オコリザル", + "chinese": "火暴猴", + "french": "Colossinge" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 65, + "Attack": 105, + "Defense": 60, + "Sp. Attack": 60, + "Sp. Defense": 70, + "Speed": 95 + } + }, + { + "id": 58, + "name": { + "english": "Growlithe", + "japanese": "ガーディ", + "chinese": "卡蒂狗", + "french": "Caninos" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 55, + "Attack": 70, + "Defense": 45, + "Sp. Attack": 70, + "Sp. Defense": 50, + "Speed": 60 + } + }, + { + "id": 59, + "name": { + "english": "Arcanine", + "japanese": "ウインディ", + "chinese": "风速狗", + "french": "Arcanin" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 90, + "Attack": 110, + "Defense": 80, + "Sp. Attack": 100, + "Sp. Defense": 80, + "Speed": 95 + } + }, + { + "id": 60, + "name": { + "english": "Poliwag", + "japanese": "ニョロモ", + "chinese": "蚊香蝌蚪", + "french": "Ptitard" + }, + "type": [ + "Water" + ], + "base": { + "HP": 40, + "Attack": 50, + "Defense": 40, + "Sp. Attack": 40, + "Sp. Defense": 40, + "Speed": 90 + } + }, + { + "id": 61, + "name": { + "english": "Poliwhirl", + "japanese": "ニョロゾ", + "chinese": "蚊香君", + "french": "Têtarte" + }, + "type": [ + "Water" + ], + "base": { + "HP": 65, + "Attack": 65, + "Defense": 65, + "Sp. Attack": 50, + "Sp. Defense": 50, + "Speed": 90 + } + }, + { + "id": 62, + "name": { + "english": "Poliwrath", + "japanese": "ニョロボン", + "chinese": "蚊香泳士", + "french": "Tartard" + }, + "type": [ + "Water", + "Fighting" + ], + "base": { + "HP": 90, + "Attack": 95, + "Defense": 95, + "Sp. Attack": 70, + "Sp. Defense": 90, + "Speed": 70 + } + }, + { + "id": 63, + "name": { + "english": "Abra", + "japanese": "ケーシィ", + "chinese": "凯西", + "french": "Abra" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 25, + "Attack": 20, + "Defense": 15, + "Sp. Attack": 105, + "Sp. Defense": 55, + "Speed": 90 + } + }, + { + "id": 64, + "name": { + "english": "Kadabra", + "japanese": "ユンゲラー", + "chinese": "勇基拉", + "french": "Kadabra" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 40, + "Attack": 35, + "Defense": 30, + "Sp. Attack": 120, + "Sp. Defense": 70, + "Speed": 105 + } + }, + { + "id": 65, + "name": { + "english": "Alakazam", + "japanese": "フーディン", + "chinese": "胡地", + "french": "Alakazam" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 55, + "Attack": 50, + "Defense": 45, + "Sp. Attack": 135, + "Sp. Defense": 95, + "Speed": 120 + } + }, + { + "id": 66, + "name": { + "english": "Machop", + "japanese": "ワンリキー", + "chinese": "腕力", + "french": "Machoc" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 70, + "Attack": 80, + "Defense": 50, + "Sp. Attack": 35, + "Sp. Defense": 35, + "Speed": 35 + } + }, + { + "id": 67, + "name": { + "english": "Machoke", + "japanese": "ゴーリキー", + "chinese": "豪力", + "french": "Machopeur" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 80, + "Attack": 100, + "Defense": 70, + "Sp. Attack": 50, + "Sp. Defense": 60, + "Speed": 45 + } + }, + { + "id": 68, + "name": { + "english": "Machamp", + "japanese": "カイリキー", + "chinese": "怪力", + "french": "Mackogneur" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 90, + "Attack": 130, + "Defense": 80, + "Sp. Attack": 65, + "Sp. Defense": 85, + "Speed": 55 + } + }, + { + "id": 69, + "name": { + "english": "Bellsprout", + "japanese": "マダツボミ", + "chinese": "喇叭芽", + "french": "Chétiflor" + }, + "type": [ + "Grass", + "Poison" + ], + "base": { + "HP": 50, + "Attack": 75, + "Defense": 35, + "Sp. Attack": 70, + "Sp. Defense": 30, + "Speed": 40 + } + }, + { + "id": 70, + "name": { + "english": "Weepinbell", + "japanese": "ウツドン", + "chinese": "口呆花", + "french": "Boustiflor" + }, + "type": [ + "Grass", + "Poison" + ], + "base": { + "HP": 65, + "Attack": 90, + "Defense": 50, + "Sp. Attack": 85, + "Sp. Defense": 45, + "Speed": 55 + } + }, + { + "id": 71, + "name": { + "english": "Victreebel", + "japanese": "ウツボット", + "chinese": "大食花", + "french": "Empiflor" + }, + "type": [ + "Grass", + "Poison" + ], + "base": { + "HP": 80, + "Attack": 105, + "Defense": 65, + "Sp. Attack": 100, + "Sp. Defense": 70, + "Speed": 70 + } + }, + { + "id": 72, + "name": { + "english": "Tentacool", + "japanese": "メノクラゲ", + "chinese": "玛瑙水母", + "french": "Tentacool" + }, + "type": [ + "Water", + "Poison" + ], + "base": { + "HP": 40, + "Attack": 40, + "Defense": 35, + "Sp. Attack": 50, + "Sp. Defense": 100, + "Speed": 70 + } + }, + { + "id": 73, + "name": { + "english": "Tentacruel", + "japanese": "ドククラゲ", + "chinese": "毒刺水母", + "french": "Tentacruel" + }, + "type": [ + "Water", + "Poison" + ], + "base": { + "HP": 80, + "Attack": 70, + "Defense": 65, + "Sp. Attack": 80, + "Sp. Defense": 120, + "Speed": 100 + } + }, + { + "id": 74, + "name": { + "english": "Geodude", + "japanese": "イシツブテ", + "chinese": "小拳石", + "french": "Racaillou" + }, + "type": [ + "Rock", + "Ground" + ], + "base": { + "HP": 40, + "Attack": 80, + "Defense": 100, + "Sp. Attack": 30, + "Sp. Defense": 30, + "Speed": 20 + } + }, + { + "id": 75, + "name": { + "english": "Graveler", + "japanese": "ゴローン", + "chinese": "隆隆石", + "french": "Gravalanch" + }, + "type": [ + "Rock", + "Ground" + ], + "base": { + "HP": 55, + "Attack": 95, + "Defense": 115, + "Sp. Attack": 45, + "Sp. Defense": 45, + "Speed": 35 + } + }, + { + "id": 76, + "name": { + "english": "Golem", + "japanese": "ゴローニャ", + "chinese": "隆隆岩", + "french": "Grolem" + }, + "type": [ + "Rock", + "Ground" + ], + "base": { + "HP": 80, + "Attack": 120, + "Defense": 130, + "Sp. Attack": 55, + "Sp. Defense": 65, + "Speed": 45 + } + }, + { + "id": 77, + "name": { + "english": "Ponyta", + "japanese": "ポニータ", + "chinese": "小火马", + "french": "Ponyta" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 50, + "Attack": 85, + "Defense": 55, + "Sp. Attack": 65, + "Sp. Defense": 65, + "Speed": 90 + } + }, + { + "id": 78, + "name": { + "english": "Rapidash", + "japanese": "ギャロップ", + "chinese": "烈焰马", + "french": "Galopa" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 65, + "Attack": 100, + "Defense": 70, + "Sp. Attack": 80, + "Sp. Defense": 80, + "Speed": 105 + } + }, + { + "id": 79, + "name": { + "english": "Slowpoke", + "japanese": "ヤドン", + "chinese": "呆呆兽", + "french": "Ramoloss" + }, + "type": [ + "Water", + "Psychic" + ], + "base": { + "HP": 90, + "Attack": 65, + "Defense": 65, + "Sp. Attack": 40, + "Sp. Defense": 40, + "Speed": 15 + } + }, + { + "id": 80, + "name": { + "english": "Slowbro", + "japanese": "ヤドラン", + "chinese": "呆壳兽", + "french": "Flagadoss" + }, + "type": [ + "Water", + "Psychic" + ], + "base": { + "HP": 95, + "Attack": 75, + "Defense": 110, + "Sp. Attack": 100, + "Sp. Defense": 80, + "Speed": 30 + } + }, + { + "id": 81, + "name": { + "english": "Magnemite", + "japanese": "コイル", + "chinese": "小磁怪", + "french": "Magnéti" + }, + "type": [ + "Electric", + "Steel" + ], + "base": { + "HP": 25, + "Attack": 35, + "Defense": 70, + "Sp. Attack": 95, + "Sp. Defense": 55, + "Speed": 45 + } + }, + { + "id": 82, + "name": { + "english": "Magneton", + "japanese": "レアコイル", + "chinese": "三合一磁怪", + "french": "Magnéton" + }, + "type": [ + "Electric", + "Steel" + ], + "base": { + "HP": 50, + "Attack": 60, + "Defense": 95, + "Sp. Attack": 120, + "Sp. Defense": 70, + "Speed": 70 + } + }, + { + "id": 83, + "name": { + "english": "Farfetch'd", + "japanese": "カモネギ", + "chinese": "大葱鸭", + "french": "Canarticho" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 52, + "Attack": 90, + "Defense": 55, + "Sp. Attack": 58, + "Sp. Defense": 62, + "Speed": 60 + } + }, + { + "id": 84, + "name": { + "english": "Doduo", + "japanese": "ドードー", + "chinese": "嘟嘟", + "french": "Doduo" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 35, + "Attack": 85, + "Defense": 45, + "Sp. Attack": 35, + "Sp. Defense": 35, + "Speed": 75 + } + }, + { + "id": 85, + "name": { + "english": "Dodrio", + "japanese": "ドードリオ", + "chinese": "嘟嘟利", + "french": "Dodrio" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 60, + "Attack": 110, + "Defense": 70, + "Sp. Attack": 60, + "Sp. Defense": 60, + "Speed": 110 + } + }, + { + "id": 86, + "name": { + "english": "Seel", + "japanese": "パウワウ", + "chinese": "小海狮", + "french": "Otaria" + }, + "type": [ + "Water" + ], + "base": { + "HP": 65, + "Attack": 45, + "Defense": 55, + "Sp. Attack": 45, + "Sp. Defense": 70, + "Speed": 45 + } + }, + { + "id": 87, + "name": { + "english": "Dewgong", + "japanese": "ジュゴン", + "chinese": "白海狮", + "french": "Lamantine" + }, + "type": [ + "Water", + "Ice" + ], + "base": { + "HP": 90, + "Attack": 70, + "Defense": 80, + "Sp. Attack": 70, + "Sp. Defense": 95, + "Speed": 70 + } + }, + { + "id": 88, + "name": { + "english": "Grimer", + "japanese": "ベトベター", + "chinese": "臭泥", + "french": "Tadmorv" + }, + "type": [ + "Poison" + ], + "base": { + "HP": 80, + "Attack": 80, + "Defense": 50, + "Sp. Attack": 40, + "Sp. Defense": 50, + "Speed": 25 + } + }, + { + "id": 89, + "name": { + "english": "Muk", + "japanese": "ベトベトン", + "chinese": "臭臭泥", + "french": "Grotadmorv" + }, + "type": [ + "Poison" + ], + "base": { + "HP": 105, + "Attack": 105, + "Defense": 75, + "Sp. Attack": 65, + "Sp. Defense": 100, + "Speed": 50 + } + }, + { + "id": 90, + "name": { + "english": "Shellder", + "japanese": "シェルダー", + "chinese": "大舌贝", + "french": "Kokiyas" + }, + "type": [ + "Water" + ], + "base": { + "HP": 30, + "Attack": 65, + "Defense": 100, + "Sp. Attack": 45, + "Sp. Defense": 25, + "Speed": 40 + } + }, + { + "id": 91, + "name": { + "english": "Cloyster", + "japanese": "パルシェン", + "chinese": "刺甲贝", + "french": "Crustabri" + }, + "type": [ + "Water", + "Ice" + ], + "base": { + "HP": 50, + "Attack": 95, + "Defense": 180, + "Sp. Attack": 85, + "Sp. Defense": 45, + "Speed": 70 + } + }, + { + "id": 92, + "name": { + "english": "Gastly", + "japanese": "ゴース", + "chinese": "鬼斯", + "french": "Fantominus" + }, + "type": [ + "Ghost", + "Poison" + ], + "base": { + "HP": 30, + "Attack": 35, + "Defense": 30, + "Sp. Attack": 100, + "Sp. Defense": 35, + "Speed": 80 + } + }, + { + "id": 93, + "name": { + "english": "Haunter", + "japanese": "ゴースト", + "chinese": "鬼斯通", + "french": "Spectrum" + }, + "type": [ + "Ghost", + "Poison" + ], + "base": { + "HP": 45, + "Attack": 50, + "Defense": 45, + "Sp. Attack": 115, + "Sp. Defense": 55, + "Speed": 95 + } + }, + { + "id": 94, + "name": { + "english": "Gengar", + "japanese": "ゲンガー", + "chinese": "耿鬼", + "french": "Ectoplasma" + }, + "type": [ + "Ghost", + "Poison" + ], + "base": { + "HP": 60, + "Attack": 65, + "Defense": 60, + "Sp. Attack": 130, + "Sp. Defense": 75, + "Speed": 110 + } + }, + { + "id": 95, + "name": { + "english": "Onix", + "japanese": "イワーク", + "chinese": "大岩蛇", + "french": "Onix" + }, + "type": [ + "Rock", + "Ground" + ], + "base": { + "HP": 35, + "Attack": 45, + "Defense": 160, + "Sp. Attack": 30, + "Sp. Defense": 45, + "Speed": 70 + } + }, + { + "id": 96, + "name": { + "english": "Drowzee", + "japanese": "スリープ", + "chinese": "催眠貘", + "french": "Soporifik" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 60, + "Attack": 48, + "Defense": 45, + "Sp. Attack": 43, + "Sp. Defense": 90, + "Speed": 42 + } + }, + { + "id": 97, + "name": { + "english": "Hypno", + "japanese": "スリーパー", + "chinese": "引梦貘人", + "french": "Hypnomade" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 85, + "Attack": 73, + "Defense": 70, + "Sp. Attack": 73, + "Sp. Defense": 115, + "Speed": 67 + } + }, + { + "id": 98, + "name": { + "english": "Krabby", + "japanese": "クラブ", + "chinese": "大钳蟹", + "french": "Krabby" + }, + "type": [ + "Water" + ], + "base": { + "HP": 30, + "Attack": 105, + "Defense": 90, + "Sp. Attack": 25, + "Sp. Defense": 25, + "Speed": 50 + } + }, + { + "id": 99, + "name": { + "english": "Kingler", + "japanese": "キングラー", + "chinese": "巨钳蟹", + "french": "Krabboss" + }, + "type": [ + "Water" + ], + "base": { + "HP": 55, + "Attack": 130, + "Defense": 115, + "Sp. Attack": 50, + "Sp. Defense": 50, + "Speed": 75 + } + }, + { + "id": 100, + "name": { + "english": "Voltorb", + "japanese": "ビリリダマ", + "chinese": "霹雳电球", + "french": "Voltorbe" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 40, + "Attack": 30, + "Defense": 50, + "Sp. Attack": 55, + "Sp. Defense": 55, + "Speed": 100 + } + }, + { + "id": 101, + "name": { + "english": "Electrode", + "japanese": "マルマイン", + "chinese": "顽皮雷弹", + "french": "Électrode" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 60, + "Attack": 50, + "Defense": 70, + "Sp. Attack": 80, + "Sp. Defense": 80, + "Speed": 150 + } + }, + { + "id": 102, + "name": { + "english": "Exeggcute", + "japanese": "タマタマ", + "chinese": "蛋蛋", + "french": "Noeunoeuf" + }, + "type": [ + "Grass", + "Psychic" + ], + "base": { + "HP": 60, + "Attack": 40, + "Defense": 80, + "Sp. Attack": 60, + "Sp. Defense": 45, + "Speed": 40 + } + }, + { + "id": 103, + "name": { + "english": "Exeggutor", + "japanese": "ナッシー", + "chinese": "椰蛋树", + "french": "Noadkoko" + }, + "type": [ + "Grass", + "Psychic" + ], + "base": { + "HP": 95, + "Attack": 95, + "Defense": 85, + "Sp. Attack": 125, + "Sp. Defense": 75, + "Speed": 55 + } + }, + { + "id": 104, + "name": { + "english": "Cubone", + "japanese": "カラカラ", + "chinese": "卡拉卡拉", + "french": "Osselait" + }, + "type": [ + "Ground" + ], + "base": { + "HP": 50, + "Attack": 50, + "Defense": 95, + "Sp. Attack": 40, + "Sp. Defense": 50, + "Speed": 35 + } + }, + { + "id": 105, + "name": { + "english": "Marowak", + "japanese": "ガラガラ", + "chinese": "嘎啦嘎啦", + "french": "Ossatueur" + }, + "type": [ + "Ground" + ], + "base": { + "HP": 60, + "Attack": 80, + "Defense": 110, + "Sp. Attack": 50, + "Sp. Defense": 80, + "Speed": 45 + } + }, + { + "id": 106, + "name": { + "english": "Hitmonlee", + "japanese": "サワムラー", + "chinese": "飞腿郎", + "french": "Kicklee" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 50, + "Attack": 120, + "Defense": 53, + "Sp. Attack": 35, + "Sp. Defense": 110, + "Speed": 87 + } + }, + { + "id": 107, + "name": { + "english": "Hitmonchan", + "japanese": "エビワラー", + "chinese": "快拳郎", + "french": "Tygnon" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 50, + "Attack": 105, + "Defense": 79, + "Sp. Attack": 35, + "Sp. Defense": 110, + "Speed": 76 + } + }, + { + "id": 108, + "name": { + "english": "Lickitung", + "japanese": "ベロリンガ", + "chinese": "大舌头", + "french": "Excelangue" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 90, + "Attack": 55, + "Defense": 75, + "Sp. Attack": 60, + "Sp. Defense": 75, + "Speed": 30 + } + }, + { + "id": 109, + "name": { + "english": "Koffing", + "japanese": "ドガース", + "chinese": "瓦斯弹", + "french": "Smogo" + }, + "type": [ + "Poison" + ], + "base": { + "HP": 40, + "Attack": 65, + "Defense": 95, + "Sp. Attack": 60, + "Sp. Defense": 45, + "Speed": 35 + } + }, + { + "id": 110, + "name": { + "english": "Weezing", + "japanese": "マタドガス", + "chinese": "双弹瓦斯", + "french": "Smogogo" + }, + "type": [ + "Poison" + ], + "base": { + "HP": 65, + "Attack": 90, + "Defense": 120, + "Sp. Attack": 85, + "Sp. Defense": 70, + "Speed": 60 + } + }, + { + "id": 111, + "name": { + "english": "Rhyhorn", + "japanese": "サイホーン", + "chinese": "独角犀牛", + "french": "Rhinocorne" + }, + "type": [ + "Ground", + "Rock" + ], + "base": { + "HP": 80, + "Attack": 85, + "Defense": 95, + "Sp. Attack": 30, + "Sp. Defense": 30, + "Speed": 25 + } + }, + { + "id": 112, + "name": { + "english": "Rhydon", + "japanese": "サイドン", + "chinese": "钻角犀兽", + "french": "Rhinoféros" + }, + "type": [ + "Ground", + "Rock" + ], + "base": { + "HP": 105, + "Attack": 130, + "Defense": 120, + "Sp. Attack": 45, + "Sp. Defense": 45, + "Speed": 40 + } + }, + { + "id": 113, + "name": { + "english": "Chansey", + "japanese": "ラッキー", + "chinese": "吉利蛋", + "french": "Leveinard" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 250, + "Attack": 5, + "Defense": 5, + "Sp. Attack": 35, + "Sp. Defense": 105, + "Speed": 50 + } + }, + { + "id": 114, + "name": { + "english": "Tangela", + "japanese": "モンジャラ", + "chinese": "蔓藤怪", + "french": "Saquedeneu" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 65, + "Attack": 55, + "Defense": 115, + "Sp. Attack": 100, + "Sp. Defense": 40, + "Speed": 60 + } + }, + { + "id": 115, + "name": { + "english": "Kangaskhan", + "japanese": "ガルーラ", + "chinese": "袋兽", + "french": "Kangourex" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 105, + "Attack": 95, + "Defense": 80, + "Sp. Attack": 40, + "Sp. Defense": 80, + "Speed": 90 + } + }, + { + "id": 116, + "name": { + "english": "Horsea", + "japanese": "タッツー", + "chinese": "墨海马", + "french": "Hypotrempe" + }, + "type": [ + "Water" + ], + "base": { + "HP": 30, + "Attack": 40, + "Defense": 70, + "Sp. Attack": 70, + "Sp. Defense": 25, + "Speed": 60 + } + }, + { + "id": 117, + "name": { + "english": "Seadra", + "japanese": "シードラ", + "chinese": "海刺龙", + "french": "Hypocéan" + }, + "type": [ + "Water" + ], + "base": { + "HP": 55, + "Attack": 65, + "Defense": 95, + "Sp. Attack": 95, + "Sp. Defense": 45, + "Speed": 85 + } + }, + { + "id": 118, + "name": { + "english": "Goldeen", + "japanese": "トサキント", + "chinese": "角金鱼", + "french": "Poissirène" + }, + "type": [ + "Water" + ], + "base": { + "HP": 45, + "Attack": 67, + "Defense": 60, + "Sp. Attack": 35, + "Sp. Defense": 50, + "Speed": 63 + } + }, + { + "id": 119, + "name": { + "english": "Seaking", + "japanese": "アズマオウ", + "chinese": "金鱼王", + "french": "Poissoroy" + }, + "type": [ + "Water" + ], + "base": { + "HP": 80, + "Attack": 92, + "Defense": 65, + "Sp. Attack": 65, + "Sp. Defense": 80, + "Speed": 68 + } + }, + { + "id": 120, + "name": { + "english": "Staryu", + "japanese": "ヒトデマン", + "chinese": "海星星", + "french": "Stari" + }, + "type": [ + "Water" + ], + "base": { + "HP": 30, + "Attack": 45, + "Defense": 55, + "Sp. Attack": 70, + "Sp. Defense": 55, + "Speed": 85 + } + }, + { + "id": 121, + "name": { + "english": "Starmie", + "japanese": "スターミー", + "chinese": "宝石海星", + "french": "Staross" + }, + "type": [ + "Water", + "Psychic" + ], + "base": { + "HP": 60, + "Attack": 75, + "Defense": 85, + "Sp. Attack": 100, + "Sp. Defense": 85, + "Speed": 115 + } + }, + { + "id": 122, + "name": { + "english": "Mr. Mime", + "japanese": "バリヤード", + "chinese": "魔墙人偶", + "french": "M. Mime" + }, + "type": [ + "Psychic", + "Fairy" + ], + "base": { + "HP": 40, + "Attack": 45, + "Defense": 65, + "Sp. Attack": 100, + "Sp. Defense": 120, + "Speed": 90 + } + }, + { + "id": 123, + "name": { + "english": "Scyther", + "japanese": "ストライク", + "chinese": "飞天螳螂", + "french": "Insécateur" + }, + "type": [ + "Bug", + "Flying" + ], + "base": { + "HP": 70, + "Attack": 110, + "Defense": 80, + "Sp. Attack": 55, + "Sp. Defense": 80, + "Speed": 105 + } + }, + { + "id": 124, + "name": { + "english": "Jynx", + "japanese": "ルージュラ", + "chinese": "迷唇姐", + "french": "Lippoutou" + }, + "type": [ + "Ice", + "Psychic" + ], + "base": { + "HP": 65, + "Attack": 50, + "Defense": 35, + "Sp. Attack": 115, + "Sp. Defense": 95, + "Speed": 95 + } + }, + { + "id": 125, + "name": { + "english": "Electabuzz", + "japanese": "エレブー", + "chinese": "电击兽", + "french": "Élektek" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 65, + "Attack": 83, + "Defense": 57, + "Sp. Attack": 95, + "Sp. Defense": 85, + "Speed": 105 + } + }, + { + "id": 126, + "name": { + "english": "Magmar", + "japanese": "ブーバー", + "chinese": "鸭嘴火兽", + "french": "Magmar" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 65, + "Attack": 95, + "Defense": 57, + "Sp. Attack": 100, + "Sp. Defense": 85, + "Speed": 93 + } + }, + { + "id": 127, + "name": { + "english": "Pinsir", + "japanese": "カイロス", + "chinese": "凯罗斯", + "french": "Scarabrute" + }, + "type": [ + "Bug" + ], + "base": { + "HP": 65, + "Attack": 125, + "Defense": 100, + "Sp. Attack": 55, + "Sp. Defense": 70, + "Speed": 85 + } + }, + { + "id": 128, + "name": { + "english": "Tauros", + "japanese": "ケンタロス", + "chinese": "肯泰罗", + "french": "Tauros" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 75, + "Attack": 100, + "Defense": 95, + "Sp. Attack": 40, + "Sp. Defense": 70, + "Speed": 110 + } + }, + { + "id": 129, + "name": { + "english": "Magikarp", + "japanese": "コイキング", + "chinese": "鲤鱼王", + "french": "Magicarpe" + }, + "type": [ + "Water" + ], + "base": { + "HP": 20, + "Attack": 10, + "Defense": 55, + "Sp. Attack": 15, + "Sp. Defense": 20, + "Speed": 80 + } + }, + { + "id": 130, + "name": { + "english": "Gyarados", + "japanese": "ギャラドス", + "chinese": "暴鲤龙", + "french": "Léviator" + }, + "type": [ + "Water", + "Flying" + ], + "base": { + "HP": 95, + "Attack": 125, + "Defense": 79, + "Sp. Attack": 60, + "Sp. Defense": 100, + "Speed": 81 + } + }, + { + "id": 131, + "name": { + "english": "Lapras", + "japanese": "ラプラス", + "chinese": "拉普拉斯", + "french": "Lokhlass" + }, + "type": [ + "Water", + "Ice" + ], + "base": { + "HP": 130, + "Attack": 85, + "Defense": 80, + "Sp. Attack": 85, + "Sp. Defense": 95, + "Speed": 60 + } + }, + { + "id": 132, + "name": { + "english": "Ditto", + "japanese": "メタモン", + "chinese": "百变怪", + "french": "Métamorph" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 48, + "Attack": 48, + "Defense": 48, + "Sp. Attack": 48, + "Sp. Defense": 48, + "Speed": 48 + } + }, + { + "id": 133, + "name": { + "english": "Eevee", + "japanese": "イーブイ", + "chinese": "伊布", + "french": "Évoli" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 55, + "Attack": 55, + "Defense": 50, + "Sp. Attack": 45, + "Sp. Defense": 65, + "Speed": 55 + } + }, + { + "id": 134, + "name": { + "english": "Vaporeon", + "japanese": "シャワーズ", + "chinese": "水伊布", + "french": "Aquali" + }, + "type": [ + "Water" + ], + "base": { + "HP": 130, + "Attack": 65, + "Defense": 60, + "Sp. Attack": 110, + "Sp. Defense": 95, + "Speed": 65 + } + }, + { + "id": 135, + "name": { + "english": "Jolteon", + "japanese": "サンダース", + "chinese": "雷伊布", + "french": "Voltali" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 65, + "Attack": 65, + "Defense": 60, + "Sp. Attack": 110, + "Sp. Defense": 95, + "Speed": 130 + } + }, + { + "id": 136, + "name": { + "english": "Flareon", + "japanese": "ブースター", + "chinese": "火伊布", + "french": "Pyroli" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 65, + "Attack": 130, + "Defense": 60, + "Sp. Attack": 95, + "Sp. Defense": 110, + "Speed": 65 + } + }, + { + "id": 137, + "name": { + "english": "Porygon", + "japanese": "ポリゴン", + "chinese": "多边兽", + "french": "Porygon" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 65, + "Attack": 60, + "Defense": 70, + "Sp. Attack": 85, + "Sp. Defense": 75, + "Speed": 40 + } + }, + { + "id": 138, + "name": { + "english": "Omanyte", + "japanese": "オムナイト", + "chinese": "菊石兽", + "french": "Amonita" + }, + "type": [ + "Rock", + "Water" + ], + "base": { + "HP": 35, + "Attack": 40, + "Defense": 100, + "Sp. Attack": 90, + "Sp. Defense": 55, + "Speed": 35 + } + }, + { + "id": 139, + "name": { + "english": "Omastar", + "japanese": "オムスター", + "chinese": "多刺菊石兽", + "french": "Amonistar" + }, + "type": [ + "Rock", + "Water" + ], + "base": { + "HP": 70, + "Attack": 60, + "Defense": 125, + "Sp. Attack": 115, + "Sp. Defense": 70, + "Speed": 55 + } + }, + { + "id": 140, + "name": { + "english": "Kabuto", + "japanese": "カブト", + "chinese": "化石盔", + "french": "Kabuto" + }, + "type": [ + "Rock", + "Water" + ], + "base": { + "HP": 30, + "Attack": 80, + "Defense": 90, + "Sp. Attack": 55, + "Sp. Defense": 45, + "Speed": 55 + } + }, + { + "id": 141, + "name": { + "english": "Kabutops", + "japanese": "カブトプス", + "chinese": "镰刀盔", + "french": "Kabutops" + }, + "type": [ + "Rock", + "Water" + ], + "base": { + "HP": 60, + "Attack": 115, + "Defense": 105, + "Sp. Attack": 65, + "Sp. Defense": 70, + "Speed": 80 + } + }, + { + "id": 142, + "name": { + "english": "Aerodactyl", + "japanese": "プテラ", + "chinese": "化石翼龙", + "french": "Ptéra" + }, + "type": [ + "Rock", + "Flying" + ], + "base": { + "HP": 80, + "Attack": 105, + "Defense": 65, + "Sp. Attack": 60, + "Sp. Defense": 75, + "Speed": 130 + } + }, + { + "id": 143, + "name": { + "english": "Snorlax", + "japanese": "カビゴン", + "chinese": "卡比兽", + "french": "Ronflex" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 160, + "Attack": 110, + "Defense": 65, + "Sp. Attack": 65, + "Sp. Defense": 110, + "Speed": 30 + } + }, + { + "id": 144, + "name": { + "english": "Articuno", + "japanese": "フリーザー", + "chinese": "急冻鸟", + "french": "Artikodin" + }, + "type": [ + "Ice", + "Flying" + ], + "base": { + "HP": 90, + "Attack": 85, + "Defense": 100, + "Sp. Attack": 95, + "Sp. Defense": 125, + "Speed": 85 + } + }, + { + "id": 145, + "name": { + "english": "Zapdos", + "japanese": "サンダー", + "chinese": "闪电鸟", + "french": "Électhor" + }, + "type": [ + "Electric", + "Flying" + ], + "base": { + "HP": 90, + "Attack": 90, + "Defense": 85, + "Sp. Attack": 125, + "Sp. Defense": 90, + "Speed": 100 + } + }, + { + "id": 146, + "name": { + "english": "Moltres", + "japanese": "ファイヤー", + "chinese": "火焰鸟", + "french": "Sulfura" + }, + "type": [ + "Fire", + "Flying" + ], + "base": { + "HP": 90, + "Attack": 100, + "Defense": 90, + "Sp. Attack": 125, + "Sp. Defense": 85, + "Speed": 90 + } + }, + { + "id": 147, + "name": { + "english": "Dratini", + "japanese": "ミニリュウ", + "chinese": "迷你龙", + "french": "Minidraco" + }, + "type": [ + "Dragon" + ], + "base": { + "HP": 41, + "Attack": 64, + "Defense": 45, + "Sp. Attack": 50, + "Sp. Defense": 50, + "Speed": 50 + } + }, + { + "id": 148, + "name": { + "english": "Dragonair", + "japanese": "ハクリュー", + "chinese": "哈克龙", + "french": "Draco" + }, + "type": [ + "Dragon" + ], + "base": { + "HP": 61, + "Attack": 84, + "Defense": 65, + "Sp. Attack": 70, + "Sp. Defense": 70, + "Speed": 70 + } + }, + { + "id": 149, + "name": { + "english": "Dragonite", + "japanese": "カイリュー", + "chinese": "快龙", + "french": "Dracolosse" + }, + "type": [ + "Dragon", + "Flying" + ], + "base": { + "HP": 91, + "Attack": 134, + "Defense": 95, + "Sp. Attack": 100, + "Sp. Defense": 100, + "Speed": 80 + } + }, + { + "id": 150, + "name": { + "english": "Mewtwo", + "japanese": "ミュウツー", + "chinese": "超梦", + "french": "Mewtwo" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 106, + "Attack": 110, + "Defense": 90, + "Sp. Attack": 154, + "Sp. Defense": 90, + "Speed": 130 + } + }, + { + "id": 151, + "name": { + "english": "Mew", + "japanese": "ミュウ", + "chinese": "梦幻", + "french": "Mew" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 100, + "Attack": 100, + "Defense": 100, + "Sp. Attack": 100, + "Sp. Defense": 100, + "Speed": 100 + } + }, + { + "id": 152, + "name": { + "english": "Chikorita", + "japanese": "チコリータ", + "chinese": "菊草叶", + "french": "Germignon" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 45, + "Attack": 49, + "Defense": 65, + "Sp. Attack": 49, + "Sp. Defense": 65, + "Speed": 45 + } + }, + { + "id": 153, + "name": { + "english": "Bayleef", + "japanese": "ベイリーフ", + "chinese": "月桂叶", + "french": "Macronium" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 60, + "Attack": 62, + "Defense": 80, + "Sp. Attack": 63, + "Sp. Defense": 80, + "Speed": 60 + } + }, + { + "id": 154, + "name": { + "english": "Meganium", + "japanese": "メガニウム", + "chinese": "大竺葵", + "french": "Méganium" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 80, + "Attack": 82, + "Defense": 100, + "Sp. Attack": 83, + "Sp. Defense": 100, + "Speed": 80 + } + }, + { + "id": 155, + "name": { + "english": "Cyndaquil", + "japanese": "ヒノアラシ", + "chinese": "火球鼠", + "french": "Héricendre" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 39, + "Attack": 52, + "Defense": 43, + "Sp. Attack": 60, + "Sp. Defense": 50, + "Speed": 65 + } + }, + { + "id": 156, + "name": { + "english": "Quilava", + "japanese": "マグマラシ", + "chinese": "火岩鼠", + "french": "Feurisson" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 58, + "Attack": 64, + "Defense": 58, + "Sp. Attack": 80, + "Sp. Defense": 65, + "Speed": 80 + } + }, + { + "id": 157, + "name": { + "english": "Typhlosion", + "japanese": "バクフーン", + "chinese": "火暴兽", + "french": "Typhlosion" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 78, + "Attack": 84, + "Defense": 78, + "Sp. Attack": 109, + "Sp. Defense": 85, + "Speed": 100 + } + }, + { + "id": 158, + "name": { + "english": "Totodile", + "japanese": "ワニノコ", + "chinese": "小锯鳄", + "french": "Kaiminus" + }, + "type": [ + "Water" + ], + "base": { + "HP": 50, + "Attack": 65, + "Defense": 64, + "Sp. Attack": 44, + "Sp. Defense": 48, + "Speed": 43 + } + }, + { + "id": 159, + "name": { + "english": "Croconaw", + "japanese": "アリゲイツ", + "chinese": "蓝鳄", + "french": "Crocrodil" + }, + "type": [ + "Water" + ], + "base": { + "HP": 65, + "Attack": 80, + "Defense": 80, + "Sp. Attack": 59, + "Sp. Defense": 63, + "Speed": 58 + } + }, + { + "id": 160, + "name": { + "english": "Feraligatr", + "japanese": "オーダイル", + "chinese": "大力鳄", + "french": "Aligatueur" + }, + "type": [ + "Water" + ], + "base": { + "HP": 85, + "Attack": 105, + "Defense": 100, + "Sp. Attack": 79, + "Sp. Defense": 83, + "Speed": 78 + } + }, + { + "id": 161, + "name": { + "english": "Sentret", + "japanese": "オタチ", + "chinese": "尾立", + "french": "Fouinette" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 35, + "Attack": 46, + "Defense": 34, + "Sp. Attack": 35, + "Sp. Defense": 45, + "Speed": 20 + } + }, + { + "id": 162, + "name": { + "english": "Furret", + "japanese": "オオタチ", + "chinese": "大尾立", + "french": "Fouinar" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 85, + "Attack": 76, + "Defense": 64, + "Sp. Attack": 45, + "Sp. Defense": 55, + "Speed": 90 + } + }, + { + "id": 163, + "name": { + "english": "Hoothoot", + "japanese": "ホーホー", + "chinese": "咕咕", + "french": "Hoothoot" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 60, + "Attack": 30, + "Defense": 30, + "Sp. Attack": 36, + "Sp. Defense": 56, + "Speed": 50 + } + }, + { + "id": 164, + "name": { + "english": "Noctowl", + "japanese": "ヨルノズク", + "chinese": "猫头夜鹰", + "french": "Noarfang" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 100, + "Attack": 50, + "Defense": 50, + "Sp. Attack": 86, + "Sp. Defense": 96, + "Speed": 70 + } + }, + { + "id": 165, + "name": { + "english": "Ledyba", + "japanese": "レディバ", + "chinese": "芭瓢虫", + "french": "Coxy" + }, + "type": [ + "Bug", + "Flying" + ], + "base": { + "HP": 40, + "Attack": 20, + "Defense": 30, + "Sp. Attack": 40, + "Sp. Defense": 80, + "Speed": 55 + } + }, + { + "id": 166, + "name": { + "english": "Ledian", + "japanese": "レディアン", + "chinese": "安瓢虫", + "french": "Coxyclaque" + }, + "type": [ + "Bug", + "Flying" + ], + "base": { + "HP": 55, + "Attack": 35, + "Defense": 50, + "Sp. Attack": 55, + "Sp. Defense": 110, + "Speed": 85 + } + }, + { + "id": 167, + "name": { + "english": "Spinarak", + "japanese": "イトマル", + "chinese": "圆丝蛛", + "french": "Mimigal" + }, + "type": [ + "Bug", + "Poison" + ], + "base": { + "HP": 40, + "Attack": 60, + "Defense": 40, + "Sp. Attack": 40, + "Sp. Defense": 40, + "Speed": 30 + } + }, + { + "id": 168, + "name": { + "english": "Ariados", + "japanese": "アリアドス", + "chinese": "阿利多斯", + "french": "Migalos" + }, + "type": [ + "Bug", + "Poison" + ], + "base": { + "HP": 70, + "Attack": 90, + "Defense": 70, + "Sp. Attack": 60, + "Sp. Defense": 70, + "Speed": 40 + } + }, + { + "id": 169, + "name": { + "english": "Crobat", + "japanese": "クロバット", + "chinese": "叉字蝠", + "french": "Nostenfer" + }, + "type": [ + "Poison", + "Flying" + ], + "base": { + "HP": 85, + "Attack": 90, + "Defense": 80, + "Sp. Attack": 70, + "Sp. Defense": 80, + "Speed": 130 + } + }, + { + "id": 170, + "name": { + "english": "Chinchou", + "japanese": "チョンチー", + "chinese": "灯笼鱼", + "french": "Loupio" + }, + "type": [ + "Water", + "Electric" + ], + "base": { + "HP": 75, + "Attack": 38, + "Defense": 38, + "Sp. Attack": 56, + "Sp. Defense": 56, + "Speed": 67 + } + }, + { + "id": 171, + "name": { + "english": "Lanturn", + "japanese": "ランターン", + "chinese": "电灯怪", + "french": "Lanturn" + }, + "type": [ + "Water", + "Electric" + ], + "base": { + "HP": 125, + "Attack": 58, + "Defense": 58, + "Sp. Attack": 76, + "Sp. Defense": 76, + "Speed": 67 + } + }, + { + "id": 172, + "name": { + "english": "Pichu", + "japanese": "ピチュー", + "chinese": "皮丘", + "french": "Pichu" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 20, + "Attack": 40, + "Defense": 15, + "Sp. Attack": 35, + "Sp. Defense": 35, + "Speed": 60 + } + }, + { + "id": 173, + "name": { + "english": "Cleffa", + "japanese": "ピィ", + "chinese": "皮宝宝", + "french": "Mélo" + }, + "type": [ + "Fairy" + ], + "base": { + "HP": 50, + "Attack": 25, + "Defense": 28, + "Sp. Attack": 45, + "Sp. Defense": 55, + "Speed": 15 + } + }, + { + "id": 174, + "name": { + "english": "Igglybuff", + "japanese": "ププリン", + "chinese": "宝宝丁", + "french": "Toudoudou" + }, + "type": [ + "Normal", + "Fairy" + ], + "base": { + "HP": 90, + "Attack": 30, + "Defense": 15, + "Sp. Attack": 40, + "Sp. Defense": 20, + "Speed": 15 + } + }, + { + "id": 175, + "name": { + "english": "Togepi", + "japanese": "トゲピー", + "chinese": "波克比", + "french": "Togepi" + }, + "type": [ + "Fairy" + ], + "base": { + "HP": 35, + "Attack": 20, + "Defense": 65, + "Sp. Attack": 40, + "Sp. Defense": 65, + "Speed": 20 + } + }, + { + "id": 176, + "name": { + "english": "Togetic", + "japanese": "トゲチック", + "chinese": "波克基古", + "french": "Togetic" + }, + "type": [ + "Fairy", + "Flying" + ], + "base": { + "HP": 55, + "Attack": 40, + "Defense": 85, + "Sp. Attack": 80, + "Sp. Defense": 105, + "Speed": 40 + } + }, + { + "id": 177, + "name": { + "english": "Natu", + "japanese": "ネイティ", + "chinese": "天然雀", + "french": "Natu" + }, + "type": [ + "Psychic", + "Flying" + ], + "base": { + "HP": 40, + "Attack": 50, + "Defense": 45, + "Sp. Attack": 70, + "Sp. Defense": 45, + "Speed": 70 + } + }, + { + "id": 178, + "name": { + "english": "Xatu", + "japanese": "ネイティオ", + "chinese": "天然鸟", + "french": "Xatu" + }, + "type": [ + "Psychic", + "Flying" + ], + "base": { + "HP": 65, + "Attack": 75, + "Defense": 70, + "Sp. Attack": 95, + "Sp. Defense": 70, + "Speed": 95 + } + }, + { + "id": 179, + "name": { + "english": "Mareep", + "japanese": "メリープ", + "chinese": "咩利羊", + "french": "Wattouat" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 55, + "Attack": 40, + "Defense": 40, + "Sp. Attack": 65, + "Sp. Defense": 45, + "Speed": 35 + } + }, + { + "id": 180, + "name": { + "english": "Flaaffy", + "japanese": "モココ", + "chinese": "茸茸羊", + "french": "Lainergie" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 70, + "Attack": 55, + "Defense": 55, + "Sp. Attack": 80, + "Sp. Defense": 60, + "Speed": 45 + } + }, + { + "id": 181, + "name": { + "english": "Ampharos", + "japanese": "デンリュウ", + "chinese": "电龙", + "french": "Pharamp" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 90, + "Attack": 75, + "Defense": 85, + "Sp. Attack": 115, + "Sp. Defense": 90, + "Speed": 55 + } + }, + { + "id": 182, + "name": { + "english": "Bellossom", + "japanese": "キレイハナ", + "chinese": "美丽花", + "french": "Joliflor" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 75, + "Attack": 80, + "Defense": 95, + "Sp. Attack": 90, + "Sp. Defense": 100, + "Speed": 50 + } + }, + { + "id": 183, + "name": { + "english": "Marill", + "japanese": "マリル", + "chinese": "玛力露", + "french": "Marill" + }, + "type": [ + "Water", + "Fairy" + ], + "base": { + "HP": 70, + "Attack": 20, + "Defense": 50, + "Sp. Attack": 20, + "Sp. Defense": 50, + "Speed": 40 + } + }, + { + "id": 184, + "name": { + "english": "Azumarill", + "japanese": "マリルリ", + "chinese": "玛力露丽", + "french": "Azumarill" + }, + "type": [ + "Water", + "Fairy" + ], + "base": { + "HP": 100, + "Attack": 50, + "Defense": 80, + "Sp. Attack": 60, + "Sp. Defense": 80, + "Speed": 50 + } + }, + { + "id": 185, + "name": { + "english": "Sudowoodo", + "japanese": "ウソッキー", + "chinese": "树才怪‎", + "french": "Simularbre" + }, + "type": [ + "Rock" + ], + "base": { + "HP": 70, + "Attack": 100, + "Defense": 115, + "Sp. Attack": 30, + "Sp. Defense": 65, + "Speed": 30 + } + }, + { + "id": 186, + "name": { + "english": "Politoed", + "japanese": "ニョロトノ", + "chinese": "蚊香蛙皇", + "french": "Tarpaud" + }, + "type": [ + "Water" + ], + "base": { + "HP": 90, + "Attack": 75, + "Defense": 75, + "Sp. Attack": 90, + "Sp. Defense": 100, + "Speed": 70 + } + }, + { + "id": 187, + "name": { + "english": "Hoppip", + "japanese": "ハネッコ", + "chinese": "毽子草", + "french": "Granivol" + }, + "type": [ + "Grass", + "Flying" + ], + "base": { + "HP": 35, + "Attack": 35, + "Defense": 40, + "Sp. Attack": 35, + "Sp. Defense": 55, + "Speed": 50 + } + }, + { + "id": 188, + "name": { + "english": "Skiploom", + "japanese": "ポポッコ", + "chinese": "毽子花", + "french": "Floravol" + }, + "type": [ + "Grass", + "Flying" + ], + "base": { + "HP": 55, + "Attack": 45, + "Defense": 50, + "Sp. Attack": 45, + "Sp. Defense": 65, + "Speed": 80 + } + }, + { + "id": 189, + "name": { + "english": "Jumpluff", + "japanese": "ワタッコ", + "chinese": "毽子棉", + "french": "Cotovol" + }, + "type": [ + "Grass", + "Flying" + ], + "base": { + "HP": 75, + "Attack": 55, + "Defense": 70, + "Sp. Attack": 55, + "Sp. Defense": 95, + "Speed": 110 + } + }, + { + "id": 190, + "name": { + "english": "Aipom", + "japanese": "エイパム", + "chinese": "长尾怪手", + "french": "Capumain" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 55, + "Attack": 70, + "Defense": 55, + "Sp. Attack": 40, + "Sp. Defense": 55, + "Speed": 85 + } + }, + { + "id": 191, + "name": { + "english": "Sunkern", + "japanese": "ヒマナッツ", + "chinese": "向日种子", + "french": "Tournegrin" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 30, + "Attack": 30, + "Defense": 30, + "Sp. Attack": 30, + "Sp. Defense": 30, + "Speed": 30 + } + }, + { + "id": 192, + "name": { + "english": "Sunflora", + "japanese": "キマワリ", + "chinese": "向日花怪", + "french": "Héliatronc" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 75, + "Attack": 75, + "Defense": 55, + "Sp. Attack": 105, + "Sp. Defense": 85, + "Speed": 30 + } + }, + { + "id": 193, + "name": { + "english": "Yanma", + "japanese": "ヤンヤンマ", + "chinese": "蜻蜻蜓", + "french": "Yanma" + }, + "type": [ + "Bug", + "Flying" + ], + "base": { + "HP": 65, + "Attack": 65, + "Defense": 45, + "Sp. Attack": 75, + "Sp. Defense": 45, + "Speed": 95 + } + }, + { + "id": 194, + "name": { + "english": "Wooper", + "japanese": "ウパー", + "chinese": "乌波", + "french": "Axoloto" + }, + "type": [ + "Water", + "Ground" + ], + "base": { + "HP": 55, + "Attack": 45, + "Defense": 45, + "Sp. Attack": 25, + "Sp. Defense": 25, + "Speed": 15 + } + }, + { + "id": 195, + "name": { + "english": "Quagsire", + "japanese": "ヌオー", + "chinese": "沼王", + "french": "Maraiste" + }, + "type": [ + "Water", + "Ground" + ], + "base": { + "HP": 95, + "Attack": 85, + "Defense": 85, + "Sp. Attack": 65, + "Sp. Defense": 65, + "Speed": 35 + } + }, + { + "id": 196, + "name": { + "english": "Espeon", + "japanese": "エーフィ", + "chinese": "太阳伊布", + "french": "Mentali" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 65, + "Attack": 65, + "Defense": 60, + "Sp. Attack": 130, + "Sp. Defense": 95, + "Speed": 110 + } + }, + { + "id": 197, + "name": { + "english": "Umbreon", + "japanese": "ブラッキー", + "chinese": "月亮伊布", + "french": "Noctali" + }, + "type": [ + "Dark" + ], + "base": { + "HP": 95, + "Attack": 65, + "Defense": 110, + "Sp. Attack": 60, + "Sp. Defense": 130, + "Speed": 65 + } + }, + { + "id": 198, + "name": { + "english": "Murkrow", + "japanese": "ヤミカラス", + "chinese": "黑暗鸦", + "french": "Cornèbre" + }, + "type": [ + "Dark", + "Flying" + ], + "base": { + "HP": 60, + "Attack": 85, + "Defense": 42, + "Sp. Attack": 85, + "Sp. Defense": 42, + "Speed": 91 + } + }, + { + "id": 199, + "name": { + "english": "Slowking", + "japanese": "ヤドキング", + "chinese": "呆呆王", + "french": "Roigada" + }, + "type": [ + "Water", + "Psychic" + ], + "base": { + "HP": 95, + "Attack": 75, + "Defense": 80, + "Sp. Attack": 100, + "Sp. Defense": 110, + "Speed": 30 + } + }, + { + "id": 200, + "name": { + "english": "Misdreavus", + "japanese": "ムウマ", + "chinese": "梦妖", + "french": "Feuforêve" + }, + "type": [ + "Ghost" + ], + "base": { + "HP": 60, + "Attack": 60, + "Defense": 60, + "Sp. Attack": 85, + "Sp. Defense": 85, + "Speed": 85 + } + }, + { + "id": 201, + "name": { + "english": "Unown", + "japanese": "アンノーン", + "chinese": "未知图腾", + "french": "Zarbi" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 48, + "Attack": 72, + "Defense": 48, + "Sp. Attack": 72, + "Sp. Defense": 48, + "Speed": 48 + } + }, + { + "id": 202, + "name": { + "english": "Wobbuffet", + "japanese": "ソーナンス", + "chinese": "果然翁", + "french": "Qulbutoké" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 190, + "Attack": 33, + "Defense": 58, + "Sp. Attack": 33, + "Sp. Defense": 58, + "Speed": 33 + } + }, + { + "id": 203, + "name": { + "english": "Girafarig", + "japanese": "キリンリキ", + "chinese": "麒麟奇", + "french": "Girafarig" + }, + "type": [ + "Normal", + "Psychic" + ], + "base": { + "HP": 70, + "Attack": 80, + "Defense": 65, + "Sp. Attack": 90, + "Sp. Defense": 65, + "Speed": 85 + } + }, + { + "id": 204, + "name": { + "english": "Pineco", + "japanese": "クヌギダマ", + "chinese": "榛果球", + "french": "Pomdepik" + }, + "type": [ + "Bug" + ], + "base": { + "HP": 50, + "Attack": 65, + "Defense": 90, + "Sp. Attack": 35, + "Sp. Defense": 35, + "Speed": 15 + } + }, + { + "id": 205, + "name": { + "english": "Forretress", + "japanese": "フォレトス", + "chinese": "佛烈托斯", + "french": "Foretress" + }, + "type": [ + "Bug", + "Steel" + ], + "base": { + "HP": 75, + "Attack": 90, + "Defense": 140, + "Sp. Attack": 60, + "Sp. Defense": 60, + "Speed": 40 + } + }, + { + "id": 206, + "name": { + "english": "Dunsparce", + "japanese": "ノコッチ", + "chinese": "土龙弟弟", + "french": "Insolourdo" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 100, + "Attack": 70, + "Defense": 70, + "Sp. Attack": 65, + "Sp. Defense": 65, + "Speed": 45 + } + }, + { + "id": 207, + "name": { + "english": "Gligar", + "japanese": "グライガー", + "chinese": "天蝎", + "french": "Scorplane" + }, + "type": [ + "Ground", + "Flying" + ], + "base": { + "HP": 65, + "Attack": 75, + "Defense": 105, + "Sp. Attack": 35, + "Sp. Defense": 65, + "Speed": 85 + } + }, + { + "id": 208, + "name": { + "english": "Steelix", + "japanese": "ハガネール", + "chinese": "大钢蛇", + "french": "Steelix" + }, + "type": [ + "Steel", + "Ground" + ], + "base": { + "HP": 75, + "Attack": 85, + "Defense": 200, + "Sp. Attack": 55, + "Sp. Defense": 65, + "Speed": 30 + } + }, + { + "id": 209, + "name": { + "english": "Snubbull", + "japanese": "ブルー", + "chinese": "布鲁", + "french": "Snubbull" + }, + "type": [ + "Fairy" + ], + "base": { + "HP": 60, + "Attack": 80, + "Defense": 50, + "Sp. Attack": 40, + "Sp. Defense": 40, + "Speed": 30 + } + }, + { + "id": 210, + "name": { + "english": "Granbull", + "japanese": "グランブル", + "chinese": "布鲁皇", + "french": "Granbull" + }, + "type": [ + "Fairy" + ], + "base": { + "HP": 90, + "Attack": 120, + "Defense": 75, + "Sp. Attack": 60, + "Sp. Defense": 60, + "Speed": 45 + } + }, + { + "id": 211, + "name": { + "english": "Qwilfish", + "japanese": "ハリーセン", + "chinese": "千针鱼", + "french": "Qwilfish" + }, + "type": [ + "Water", + "Poison" + ], + "base": { + "HP": 65, + "Attack": 95, + "Defense": 85, + "Sp. Attack": 55, + "Sp. Defense": 55, + "Speed": 85 + } + }, + { + "id": 212, + "name": { + "english": "Scizor", + "japanese": "ハッサム", + "chinese": "巨钳螳螂", + "french": "Cizayox" + }, + "type": [ + "Bug", + "Steel" + ], + "base": { + "HP": 70, + "Attack": 130, + "Defense": 100, + "Sp. Attack": 55, + "Sp. Defense": 80, + "Speed": 65 + } + }, + { + "id": 213, + "name": { + "english": "Shuckle", + "japanese": "ツボツボ", + "chinese": "壶壶", + "french": "Caratroc" + }, + "type": [ + "Bug", + "Rock" + ], + "base": { + "HP": 20, + "Attack": 10, + "Defense": 230, + "Sp. Attack": 10, + "Sp. Defense": 230, + "Speed": 5 + } + }, + { + "id": 214, + "name": { + "english": "Heracross", + "japanese": "ヘラクロス", + "chinese": "赫拉克罗斯", + "french": "Scarhino" + }, + "type": [ + "Bug", + "Fighting" + ], + "base": { + "HP": 80, + "Attack": 125, + "Defense": 75, + "Sp. Attack": 40, + "Sp. Defense": 95, + "Speed": 85 + } + }, + { + "id": 215, + "name": { + "english": "Sneasel", + "japanese": "ニューラ", + "chinese": "狃拉", + "french": "Farfuret" + }, + "type": [ + "Dark", + "Ice" + ], + "base": { + "HP": 55, + "Attack": 95, + "Defense": 55, + "Sp. Attack": 35, + "Sp. Defense": 75, + "Speed": 115 + } + }, + { + "id": 216, + "name": { + "english": "Teddiursa", + "japanese": "ヒメグマ", + "chinese": "熊宝宝", + "french": "Teddiursa" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 60, + "Attack": 80, + "Defense": 50, + "Sp. Attack": 50, + "Sp. Defense": 50, + "Speed": 40 + } + }, + { + "id": 217, + "name": { + "english": "Ursaring", + "japanese": "リングマ", + "chinese": "圈圈熊", + "french": "Ursaring" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 90, + "Attack": 130, + "Defense": 75, + "Sp. Attack": 75, + "Sp. Defense": 75, + "Speed": 55 + } + }, + { + "id": 218, + "name": { + "english": "Slugma", + "japanese": "マグマッグ", + "chinese": "熔岩虫", + "french": "Limagma" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 40, + "Attack": 40, + "Defense": 40, + "Sp. Attack": 70, + "Sp. Defense": 40, + "Speed": 20 + } + }, + { + "id": 219, + "name": { + "english": "Magcargo", + "japanese": "マグカルゴ", + "chinese": "熔岩蜗牛", + "french": "Volcaropod" + }, + "type": [ + "Fire", + "Rock" + ], + "base": { + "HP": 60, + "Attack": 50, + "Defense": 120, + "Sp. Attack": 90, + "Sp. Defense": 80, + "Speed": 30 + } + }, + { + "id": 220, + "name": { + "english": "Swinub", + "japanese": "ウリムー", + "chinese": "小山猪", + "french": "Marcacrin" + }, + "type": [ + "Ice", + "Ground" + ], + "base": { + "HP": 50, + "Attack": 50, + "Defense": 40, + "Sp. Attack": 30, + "Sp. Defense": 30, + "Speed": 50 + } + }, + { + "id": 221, + "name": { + "english": "Piloswine", + "japanese": "イノムー", + "chinese": "长毛猪", + "french": "Cochignon" + }, + "type": [ + "Ice", + "Ground" + ], + "base": { + "HP": 100, + "Attack": 100, + "Defense": 80, + "Sp. Attack": 60, + "Sp. Defense": 60, + "Speed": 50 + } + }, + { + "id": 222, + "name": { + "english": "Corsola", + "japanese": "サニーゴ", + "chinese": "太阳珊瑚", + "french": "Corayon" + }, + "type": [ + "Water", + "Rock" + ], + "base": { + "HP": 65, + "Attack": 55, + "Defense": 95, + "Sp. Attack": 65, + "Sp. Defense": 95, + "Speed": 35 + } + }, + { + "id": 223, + "name": { + "english": "Remoraid", + "japanese": "テッポウオ", + "chinese": "铁炮鱼", + "french": "Rémoraid" + }, + "type": [ + "Water" + ], + "base": { + "HP": 35, + "Attack": 65, + "Defense": 35, + "Sp. Attack": 65, + "Sp. Defense": 35, + "Speed": 65 + } + }, + { + "id": 224, + "name": { + "english": "Octillery", + "japanese": "オクタン", + "chinese": "章鱼桶", + "french": "Octillery" + }, + "type": [ + "Water" + ], + "base": { + "HP": 75, + "Attack": 105, + "Defense": 75, + "Sp. Attack": 105, + "Sp. Defense": 75, + "Speed": 45 + } + }, + { + "id": 225, + "name": { + "english": "Delibird", + "japanese": "デリバード", + "chinese": "信使鸟", + "french": "Cadoizo" + }, + "type": [ + "Ice", + "Flying" + ], + "base": { + "HP": 45, + "Attack": 55, + "Defense": 45, + "Sp. Attack": 65, + "Sp. Defense": 45, + "Speed": 75 + } + }, + { + "id": 226, + "name": { + "english": "Mantine", + "japanese": "マンタイン", + "chinese": "巨翅飞鱼", + "french": "Démanta" + }, + "type": [ + "Water", + "Flying" + ], + "base": { + "HP": 85, + "Attack": 40, + "Defense": 70, + "Sp. Attack": 80, + "Sp. Defense": 140, + "Speed": 70 + } + }, + { + "id": 227, + "name": { + "english": "Skarmory", + "japanese": "エアームド", + "chinese": "盔甲鸟", + "french": "Airmure" + }, + "type": [ + "Steel", + "Flying" + ], + "base": { + "HP": 65, + "Attack": 80, + "Defense": 140, + "Sp. Attack": 40, + "Sp. Defense": 70, + "Speed": 70 + } + }, + { + "id": 228, + "name": { + "english": "Houndour", + "japanese": "デルビル", + "chinese": "戴鲁比", + "french": "Malosse" + }, + "type": [ + "Dark", + "Fire" + ], + "base": { + "HP": 45, + "Attack": 60, + "Defense": 30, + "Sp. Attack": 80, + "Sp. Defense": 50, + "Speed": 65 + } + }, + { + "id": 229, + "name": { + "english": "Houndoom", + "japanese": "ヘルガー", + "chinese": "黑鲁加", + "french": "Démolosse" + }, + "type": [ + "Dark", + "Fire" + ], + "base": { + "HP": 75, + "Attack": 90, + "Defense": 50, + "Sp. Attack": 110, + "Sp. Defense": 80, + "Speed": 95 + } + }, + { + "id": 230, + "name": { + "english": "Kingdra", + "japanese": "キングドラ", + "chinese": "刺龙王", + "french": "Hyporoi" + }, + "type": [ + "Water", + "Dragon" + ], + "base": { + "HP": 75, + "Attack": 95, + "Defense": 95, + "Sp. Attack": 95, + "Sp. Defense": 95, + "Speed": 85 + } + }, + { + "id": 231, + "name": { + "english": "Phanpy", + "japanese": "ゴマゾウ", + "chinese": "小小象", + "french": "Phanpy" + }, + "type": [ + "Ground" + ], + "base": { + "HP": 90, + "Attack": 60, + "Defense": 60, + "Sp. Attack": 40, + "Sp. Defense": 40, + "Speed": 40 + } + }, + { + "id": 232, + "name": { + "english": "Donphan", + "japanese": "ドンファン", + "chinese": "顿甲", + "french": "Donphan" + }, + "type": [ + "Ground" + ], + "base": { + "HP": 90, + "Attack": 120, + "Defense": 120, + "Sp. Attack": 60, + "Sp. Defense": 60, + "Speed": 50 + } + }, + { + "id": 233, + "name": { + "english": "Porygon2", + "japanese": "ポリゴン2", + "chinese": "多边兽Ⅱ", + "french": "Porygon2" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 85, + "Attack": 80, + "Defense": 90, + "Sp. Attack": 105, + "Sp. Defense": 95, + "Speed": 60 + } + }, + { + "id": 234, + "name": { + "english": "Stantler", + "japanese": "オドシシ", + "chinese": "惊角鹿", + "french": "Cerfrousse" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 73, + "Attack": 95, + "Defense": 62, + "Sp. Attack": 85, + "Sp. Defense": 65, + "Speed": 85 + } + }, + { + "id": 235, + "name": { + "english": "Smeargle", + "japanese": "ドーブル", + "chinese": "图图犬", + "french": "Queulorior" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 55, + "Attack": 20, + "Defense": 35, + "Sp. Attack": 20, + "Sp. Defense": 45, + "Speed": 75 + } + }, + { + "id": 236, + "name": { + "english": "Tyrogue", + "japanese": "バルキー", + "chinese": "无畏小子", + "french": "Debugant" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 35, + "Attack": 35, + "Defense": 35, + "Sp. Attack": 35, + "Sp. Defense": 35, + "Speed": 35 + } + }, + { + "id": 237, + "name": { + "english": "Hitmontop", + "japanese": "カポエラー", + "chinese": "战舞郎", + "french": "Kapoera" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 50, + "Attack": 95, + "Defense": 95, + "Sp. Attack": 35, + "Sp. Defense": 110, + "Speed": 70 + } + }, + { + "id": 238, + "name": { + "english": "Smoochum", + "japanese": "ムチュール", + "chinese": "迷唇娃", + "french": "Lippouti" + }, + "type": [ + "Ice", + "Psychic" + ], + "base": { + "HP": 45, + "Attack": 30, + "Defense": 15, + "Sp. Attack": 85, + "Sp. Defense": 65, + "Speed": 65 + } + }, + { + "id": 239, + "name": { + "english": "Elekid", + "japanese": "エレキッド", + "chinese": "电击怪", + "french": "Élekid" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 45, + "Attack": 63, + "Defense": 37, + "Sp. Attack": 65, + "Sp. Defense": 55, + "Speed": 95 + } + }, + { + "id": 240, + "name": { + "english": "Magby", + "japanese": "ブビィ", + "chinese": "鸭嘴宝宝", + "french": "Magby" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 45, + "Attack": 75, + "Defense": 37, + "Sp. Attack": 70, + "Sp. Defense": 55, + "Speed": 83 + } + }, + { + "id": 241, + "name": { + "english": "Miltank", + "japanese": "ミルタンク", + "chinese": "大奶罐", + "french": "Écrémeuh" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 95, + "Attack": 80, + "Defense": 105, + "Sp. Attack": 40, + "Sp. Defense": 70, + "Speed": 100 + } + }, + { + "id": 242, + "name": { + "english": "Blissey", + "japanese": "ハピナス", + "chinese": "幸福蛋", + "french": "Leuphorie" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 255, + "Attack": 10, + "Defense": 10, + "Sp. Attack": 75, + "Sp. Defense": 135, + "Speed": 55 + } + }, + { + "id": 243, + "name": { + "english": "Raikou", + "japanese": "ライコウ", + "chinese": "雷公", + "french": "Raikou" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 90, + "Attack": 85, + "Defense": 75, + "Sp. Attack": 115, + "Sp. Defense": 100, + "Speed": 115 + } + }, + { + "id": 244, + "name": { + "english": "Entei", + "japanese": "エンテイ", + "chinese": "炎帝", + "french": "Entei" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 115, + "Attack": 115, + "Defense": 85, + "Sp. Attack": 90, + "Sp. Defense": 75, + "Speed": 100 + } + }, + { + "id": 245, + "name": { + "english": "Suicune", + "japanese": "スイクン", + "chinese": "水君", + "french": "Suicune" + }, + "type": [ + "Water" + ], + "base": { + "HP": 100, + "Attack": 75, + "Defense": 115, + "Sp. Attack": 90, + "Sp. Defense": 115, + "Speed": 85 + } + }, + { + "id": 246, + "name": { + "english": "Larvitar", + "japanese": "ヨーギラス", + "chinese": "幼基拉斯", + "french": "Embrylex" + }, + "type": [ + "Rock", + "Ground" + ], + "base": { + "HP": 50, + "Attack": 64, + "Defense": 50, + "Sp. Attack": 45, + "Sp. Defense": 50, + "Speed": 41 + } + }, + { + "id": 247, + "name": { + "english": "Pupitar", + "japanese": "サナギラス", + "chinese": "沙基拉斯", + "french": "Ymphect" + }, + "type": [ + "Rock", + "Ground" + ], + "base": { + "HP": 70, + "Attack": 84, + "Defense": 70, + "Sp. Attack": 65, + "Sp. Defense": 70, + "Speed": 51 + } + }, + { + "id": 248, + "name": { + "english": "Tyranitar", + "japanese": "バンギラス", + "chinese": "班基拉斯", + "french": "Tyranocif" + }, + "type": [ + "Rock", + "Dark" + ], + "base": { + "HP": 100, + "Attack": 134, + "Defense": 110, + "Sp. Attack": 95, + "Sp. Defense": 100, + "Speed": 61 + } + }, + { + "id": 249, + "name": { + "english": "Lugia", + "japanese": "ルギア", + "chinese": "洛奇亚", + "french": "Lugia" + }, + "type": [ + "Psychic", + "Flying" + ], + "base": { + "HP": 106, + "Attack": 90, + "Defense": 130, + "Sp. Attack": 90, + "Sp. Defense": 154, + "Speed": 110 + } + }, + { + "id": 250, + "name": { + "english": "Ho-Oh", + "japanese": "ホウオウ", + "chinese": "凤王", + "french": "Ho-Oh" + }, + "type": [ + "Fire", + "Flying" + ], + "base": { + "HP": 106, + "Attack": 130, + "Defense": 90, + "Sp. Attack": 110, + "Sp. Defense": 154, + "Speed": 90 + } + }, + { + "id": 251, + "name": { + "english": "Celebi", + "japanese": "セレビィ", + "chinese": "时拉比", + "french": "Celebi" + }, + "type": [ + "Psychic", + "Grass" + ], + "base": { + "HP": 100, + "Attack": 100, + "Defense": 100, + "Sp. Attack": 100, + "Sp. Defense": 100, + "Speed": 100 + } + }, + { + "id": 252, + "name": { + "english": "Treecko", + "japanese": "キモリ", + "chinese": "木守宫", + "french": "Arcko" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 40, + "Attack": 45, + "Defense": 35, + "Sp. Attack": 65, + "Sp. Defense": 55, + "Speed": 70 + } + }, + { + "id": 253, + "name": { + "english": "Grovyle", + "japanese": "ジュプトル", + "chinese": "森林蜥蜴", + "french": "Massko" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 50, + "Attack": 65, + "Defense": 45, + "Sp. Attack": 85, + "Sp. Defense": 65, + "Speed": 95 + } + }, + { + "id": 254, + "name": { + "english": "Sceptile", + "japanese": "ジュカイン", + "chinese": "蜥蜴王", + "french": "Jungko" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 70, + "Attack": 85, + "Defense": 65, + "Sp. Attack": 105, + "Sp. Defense": 85, + "Speed": 120 + } + }, + { + "id": 255, + "name": { + "english": "Torchic", + "japanese": "アチャモ", + "chinese": "火稚鸡", + "french": "Poussifeu" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 45, + "Attack": 60, + "Defense": 40, + "Sp. Attack": 70, + "Sp. Defense": 50, + "Speed": 45 + } + }, + { + "id": 256, + "name": { + "english": "Combusken", + "japanese": "ワカシャモ", + "chinese": "力壮鸡", + "french": "Galifeu" + }, + "type": [ + "Fire", + "Fighting" + ], + "base": { + "HP": 60, + "Attack": 85, + "Defense": 60, + "Sp. Attack": 85, + "Sp. Defense": 60, + "Speed": 55 + } + }, + { + "id": 257, + "name": { + "english": "Blaziken", + "japanese": "バシャーモ", + "chinese": "火焰鸡", + "french": "Braségali" + }, + "type": [ + "Fire", + "Fighting" + ], + "base": { + "HP": 80, + "Attack": 120, + "Defense": 70, + "Sp. Attack": 110, + "Sp. Defense": 70, + "Speed": 80 + } + }, + { + "id": 258, + "name": { + "english": "Mudkip", + "japanese": "ミズゴロウ", + "chinese": "水跃鱼", + "french": "Gobou" + }, + "type": [ + "Water" + ], + "base": { + "HP": 50, + "Attack": 70, + "Defense": 50, + "Sp. Attack": 50, + "Sp. Defense": 50, + "Speed": 40 + } + }, + { + "id": 259, + "name": { + "english": "Marshtomp", + "japanese": "ヌマクロー", + "chinese": "沼跃鱼", + "french": "Flobio" + }, + "type": [ + "Water", + "Ground" + ], + "base": { + "HP": 70, + "Attack": 85, + "Defense": 70, + "Sp. Attack": 60, + "Sp. Defense": 70, + "Speed": 50 + } + }, + { + "id": 260, + "name": { + "english": "Swampert", + "japanese": "ラグラージ", + "chinese": "巨沼怪", + "french": "Laggron" + }, + "type": [ + "Water", + "Ground" + ], + "base": { + "HP": 100, + "Attack": 110, + "Defense": 90, + "Sp. Attack": 85, + "Sp. Defense": 90, + "Speed": 60 + } + }, + { + "id": 261, + "name": { + "english": "Poochyena", + "japanese": "ポチエナ", + "chinese": "土狼犬", + "french": "Medhyèna" + }, + "type": [ + "Dark" + ], + "base": { + "HP": 35, + "Attack": 55, + "Defense": 35, + "Sp. Attack": 30, + "Sp. Defense": 30, + "Speed": 35 + } + }, + { + "id": 262, + "name": { + "english": "Mightyena", + "japanese": "グラエナ", + "chinese": "大狼犬", + "french": "Grahyèna" + }, + "type": [ + "Dark" + ], + "base": { + "HP": 70, + "Attack": 90, + "Defense": 70, + "Sp. Attack": 60, + "Sp. Defense": 60, + "Speed": 70 + } + }, + { + "id": 263, + "name": { + "english": "Zigzagoon", + "japanese": "ジグザグマ", + "chinese": "蛇纹熊", + "french": "Zigzaton" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 38, + "Attack": 30, + "Defense": 41, + "Sp. Attack": 30, + "Sp. Defense": 41, + "Speed": 60 + } + }, + { + "id": 264, + "name": { + "english": "Linoone", + "japanese": "マッスグマ", + "chinese": "直冲熊", + "french": "Linéon" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 78, + "Attack": 70, + "Defense": 61, + "Sp. Attack": 50, + "Sp. Defense": 61, + "Speed": 100 + } + }, + { + "id": 265, + "name": { + "english": "Wurmple", + "japanese": "ケムッソ", + "chinese": "刺尾虫", + "french": "Chenipotte" + }, + "type": [ + "Bug" + ], + "base": { + "HP": 45, + "Attack": 45, + "Defense": 35, + "Sp. Attack": 20, + "Sp. Defense": 30, + "Speed": 20 + } + }, + { + "id": 266, + "name": { + "english": "Silcoon", + "japanese": "カラサリス", + "chinese": "甲壳茧", + "french": "Armulys" + }, + "type": [ + "Bug" + ], + "base": { + "HP": 50, + "Attack": 35, + "Defense": 55, + "Sp. Attack": 25, + "Sp. Defense": 25, + "Speed": 15 + } + }, + { + "id": 267, + "name": { + "english": "Beautifly", + "japanese": "アゲハント", + "chinese": "狩猎凤蝶", + "french": "Charmillon" + }, + "type": [ + "Bug", + "Flying" + ], + "base": { + "HP": 60, + "Attack": 70, + "Defense": 50, + "Sp. Attack": 100, + "Sp. Defense": 50, + "Speed": 65 + } + }, + { + "id": 268, + "name": { + "english": "Cascoon", + "japanese": "マユルド", + "chinese": "盾甲茧", + "french": "Blindalys" + }, + "type": [ + "Bug" + ], + "base": { + "HP": 50, + "Attack": 35, + "Defense": 55, + "Sp. Attack": 25, + "Sp. Defense": 25, + "Speed": 15 + } + }, + { + "id": 269, + "name": { + "english": "Dustox", + "japanese": "ドクケイル", + "chinese": "毒粉蛾", + "french": "Papinox" + }, + "type": [ + "Bug", + "Poison" + ], + "base": { + "HP": 60, + "Attack": 50, + "Defense": 70, + "Sp. Attack": 50, + "Sp. Defense": 90, + "Speed": 65 + } + }, + { + "id": 270, + "name": { + "english": "Lotad", + "japanese": "ハスボー", + "chinese": "莲叶童子", + "french": "Nénupiot" + }, + "type": [ + "Water", + "Grass" + ], + "base": { + "HP": 40, + "Attack": 30, + "Defense": 30, + "Sp. Attack": 40, + "Sp. Defense": 50, + "Speed": 30 + } + }, + { + "id": 271, + "name": { + "english": "Lombre", + "japanese": "ハスブレロ", + "chinese": "莲帽小童", + "french": "Lombre" + }, + "type": [ + "Water", + "Grass" + ], + "base": { + "HP": 60, + "Attack": 50, + "Defense": 50, + "Sp. Attack": 60, + "Sp. Defense": 70, + "Speed": 50 + } + }, + { + "id": 272, + "name": { + "english": "Ludicolo", + "japanese": "ルンパッパ", + "chinese": "乐天河童", + "french": "Ludicolo" + }, + "type": [ + "Water", + "Grass" + ], + "base": { + "HP": 80, + "Attack": 70, + "Defense": 70, + "Sp. Attack": 90, + "Sp. Defense": 100, + "Speed": 70 + } + }, + { + "id": 273, + "name": { + "english": "Seedot", + "japanese": "タネボー", + "chinese": "橡实果", + "french": "Grainipiot" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 40, + "Attack": 40, + "Defense": 50, + "Sp. Attack": 30, + "Sp. Defense": 30, + "Speed": 30 + } + }, + { + "id": 274, + "name": { + "english": "Nuzleaf", + "japanese": "コノハナ", + "chinese": "长鼻叶", + "french": "Pifeuil" + }, + "type": [ + "Grass", + "Dark" + ], + "base": { + "HP": 70, + "Attack": 70, + "Defense": 40, + "Sp. Attack": 60, + "Sp. Defense": 40, + "Speed": 60 + } + }, + { + "id": 275, + "name": { + "english": "Shiftry", + "japanese": "ダーテング", + "chinese": "狡猾天狗", + "french": "Tengalice" + }, + "type": [ + "Grass", + "Dark" + ], + "base": { + "HP": 90, + "Attack": 100, + "Defense": 60, + "Sp. Attack": 90, + "Sp. Defense": 60, + "Speed": 80 + } + }, + { + "id": 276, + "name": { + "english": "Taillow", + "japanese": "スバメ", + "chinese": "傲骨燕", + "french": "Nirondelle" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 40, + "Attack": 55, + "Defense": 30, + "Sp. Attack": 30, + "Sp. Defense": 30, + "Speed": 85 + } + }, + { + "id": 277, + "name": { + "english": "Swellow", + "japanese": "オオスバメ", + "chinese": "大王燕", + "french": "Hélédelle" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 60, + "Attack": 85, + "Defense": 60, + "Sp. Attack": 75, + "Sp. Defense": 50, + "Speed": 125 + } + }, + { + "id": 278, + "name": { + "english": "Wingull", + "japanese": "キャモメ", + "chinese": "长翅鸥", + "french": "Goélise" + }, + "type": [ + "Water", + "Flying" + ], + "base": { + "HP": 40, + "Attack": 30, + "Defense": 30, + "Sp. Attack": 55, + "Sp. Defense": 30, + "Speed": 85 + } + }, + { + "id": 279, + "name": { + "english": "Pelipper", + "japanese": "ペリッパー", + "chinese": "大嘴鸥", + "french": "Bekipan" + }, + "type": [ + "Water", + "Flying" + ], + "base": { + "HP": 60, + "Attack": 50, + "Defense": 100, + "Sp. Attack": 95, + "Sp. Defense": 70, + "Speed": 65 + } + }, + { + "id": 280, + "name": { + "english": "Ralts", + "japanese": "ラルトス", + "chinese": "拉鲁拉丝", + "french": "Tarsal" + }, + "type": [ + "Psychic", + "Fairy" + ], + "base": { + "HP": 28, + "Attack": 25, + "Defense": 25, + "Sp. Attack": 45, + "Sp. Defense": 35, + "Speed": 40 + } + }, + { + "id": 281, + "name": { + "english": "Kirlia", + "japanese": "キルリア", + "chinese": "奇鲁莉安", + "french": "Kirlia" + }, + "type": [ + "Psychic", + "Fairy" + ], + "base": { + "HP": 38, + "Attack": 35, + "Defense": 35, + "Sp. Attack": 65, + "Sp. Defense": 55, + "Speed": 50 + } + }, + { + "id": 282, + "name": { + "english": "Gardevoir", + "japanese": "サーナイト", + "chinese": "沙奈朵", + "french": "Gardevoir" + }, + "type": [ + "Psychic", + "Fairy" + ], + "base": { + "HP": 68, + "Attack": 65, + "Defense": 65, + "Sp. Attack": 125, + "Sp. Defense": 115, + "Speed": 80 + } + }, + { + "id": 283, + "name": { + "english": "Surskit", + "japanese": "アメタマ", + "chinese": "溜溜糖球", + "french": "Arakdo" + }, + "type": [ + "Bug", + "Water" + ], + "base": { + "HP": 40, + "Attack": 30, + "Defense": 32, + "Sp. Attack": 50, + "Sp. Defense": 52, + "Speed": 65 + } + }, + { + "id": 284, + "name": { + "english": "Masquerain", + "japanese": "アメモース", + "chinese": "雨翅蛾", + "french": "Maskadra" + }, + "type": [ + "Bug", + "Flying" + ], + "base": { + "HP": 70, + "Attack": 60, + "Defense": 62, + "Sp. Attack": 100, + "Sp. Defense": 82, + "Speed": 80 + } + }, + { + "id": 285, + "name": { + "english": "Shroomish", + "japanese": "キノココ", + "chinese": "蘑蘑菇", + "french": "Balignon" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 60, + "Attack": 40, + "Defense": 60, + "Sp. Attack": 40, + "Sp. Defense": 60, + "Speed": 35 + } + }, + { + "id": 286, + "name": { + "english": "Breloom", + "japanese": "キノガッサ", + "chinese": "斗笠菇", + "french": "Chapignon" + }, + "type": [ + "Grass", + "Fighting" + ], + "base": { + "HP": 60, + "Attack": 130, + "Defense": 80, + "Sp. Attack": 60, + "Sp. Defense": 60, + "Speed": 70 + } + }, + { + "id": 287, + "name": { + "english": "Slakoth", + "japanese": "ナマケロ", + "chinese": "懒人獭", + "french": "Parecool" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 60, + "Attack": 60, + "Defense": 60, + "Sp. Attack": 35, + "Sp. Defense": 35, + "Speed": 30 + } + }, + { + "id": 288, + "name": { + "english": "Vigoroth", + "japanese": "ヤルキモノ", + "chinese": "过动猿", + "french": "Vigoroth" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 80, + "Attack": 80, + "Defense": 80, + "Sp. Attack": 55, + "Sp. Defense": 55, + "Speed": 90 + } + }, + { + "id": 289, + "name": { + "english": "Slaking", + "japanese": "ケッキング", + "chinese": "请假王", + "french": "Monaflèmit" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 150, + "Attack": 160, + "Defense": 100, + "Sp. Attack": 95, + "Sp. Defense": 65, + "Speed": 100 + } + }, + { + "id": 290, + "name": { + "english": "Nincada", + "japanese": "ツチニン", + "chinese": "土居忍士", + "french": "Ningale" + }, + "type": [ + "Bug", + "Ground" + ], + "base": { + "HP": 31, + "Attack": 45, + "Defense": 90, + "Sp. Attack": 30, + "Sp. Defense": 30, + "Speed": 40 + } + }, + { + "id": 291, + "name": { + "english": "Ninjask", + "japanese": "テッカニン", + "chinese": "铁面忍者", + "french": "Ninjask" + }, + "type": [ + "Bug", + "Flying" + ], + "base": { + "HP": 61, + "Attack": 90, + "Defense": 45, + "Sp. Attack": 50, + "Sp. Defense": 50, + "Speed": 160 + } + }, + { + "id": 292, + "name": { + "english": "Shedinja", + "japanese": "ヌケニン", + "chinese": "脱壳忍者", + "french": "Munja" + }, + "type": [ + "Bug", + "Ghost" + ], + "base": { + "HP": 1, + "Attack": 90, + "Defense": 45, + "Sp. Attack": 30, + "Sp. Defense": 30, + "Speed": 40 + } + }, + { + "id": 293, + "name": { + "english": "Whismur", + "japanese": "ゴニョニョ", + "chinese": "咕妞妞", + "french": "Chuchmur" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 64, + "Attack": 51, + "Defense": 23, + "Sp. Attack": 51, + "Sp. Defense": 23, + "Speed": 28 + } + }, + { + "id": 294, + "name": { + "english": "Loudred", + "japanese": "ドゴーム", + "chinese": "吼爆弹", + "french": "Ramboum" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 84, + "Attack": 71, + "Defense": 43, + "Sp. Attack": 71, + "Sp. Defense": 43, + "Speed": 48 + } + }, + { + "id": 295, + "name": { + "english": "Exploud", + "japanese": "バクオング", + "chinese": "爆音怪", + "french": "Brouhabam" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 104, + "Attack": 91, + "Defense": 63, + "Sp. Attack": 91, + "Sp. Defense": 73, + "Speed": 68 + } + }, + { + "id": 296, + "name": { + "english": "Makuhita", + "japanese": "マクノシタ", + "chinese": "幕下力士", + "french": "Makuhita" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 72, + "Attack": 60, + "Defense": 30, + "Sp. Attack": 20, + "Sp. Defense": 30, + "Speed": 25 + } + }, + { + "id": 297, + "name": { + "english": "Hariyama", + "japanese": "ハリテヤマ", + "chinese": "铁掌力士", + "french": "Hariyama" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 144, + "Attack": 120, + "Defense": 60, + "Sp. Attack": 40, + "Sp. Defense": 60, + "Speed": 50 + } + }, + { + "id": 298, + "name": { + "english": "Azurill", + "japanese": "ルリリ", + "chinese": "露力丽", + "french": "Azurill" + }, + "type": [ + "Normal", + "Fairy" + ], + "base": { + "HP": 50, + "Attack": 20, + "Defense": 40, + "Sp. Attack": 20, + "Sp. Defense": 40, + "Speed": 20 + } + }, + { + "id": 299, + "name": { + "english": "Nosepass", + "japanese": "ノズパス", + "chinese": "朝北鼻", + "french": "Tarinor" + }, + "type": [ + "Rock" + ], + "base": { + "HP": 30, + "Attack": 45, + "Defense": 135, + "Sp. Attack": 45, + "Sp. Defense": 90, + "Speed": 30 + } + }, + { + "id": 300, + "name": { + "english": "Skitty", + "japanese": "エネコ", + "chinese": "向尾喵", + "french": "Skitty" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 50, + "Attack": 45, + "Defense": 45, + "Sp. Attack": 35, + "Sp. Defense": 35, + "Speed": 50 + } + }, + { + "id": 301, + "name": { + "english": "Delcatty", + "japanese": "エネコロロ", + "chinese": "优雅猫", + "french": "Delcatty" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 70, + "Attack": 65, + "Defense": 65, + "Sp. Attack": 55, + "Sp. Defense": 55, + "Speed": 90 + } + }, + { + "id": 302, + "name": { + "english": "Sableye", + "japanese": "ヤミラミ", + "chinese": "勾魂眼", + "french": "Ténéfix" + }, + "type": [ + "Dark", + "Ghost" + ], + "base": { + "HP": 50, + "Attack": 75, + "Defense": 75, + "Sp. Attack": 65, + "Sp. Defense": 65, + "Speed": 50 + } + }, + { + "id": 303, + "name": { + "english": "Mawile", + "japanese": "クチート", + "chinese": "大嘴娃", + "french": "Mysdibule" + }, + "type": [ + "Steel", + "Fairy" + ], + "base": { + "HP": 50, + "Attack": 85, + "Defense": 85, + "Sp. Attack": 55, + "Sp. Defense": 55, + "Speed": 50 + } + }, + { + "id": 304, + "name": { + "english": "Aron", + "japanese": "ココドラ", + "chinese": "可可多拉", + "french": "Galekid" + }, + "type": [ + "Steel", + "Rock" + ], + "base": { + "HP": 50, + "Attack": 70, + "Defense": 100, + "Sp. Attack": 40, + "Sp. Defense": 40, + "Speed": 30 + } + }, + { + "id": 305, + "name": { + "english": "Lairon", + "japanese": "コドラ", + "chinese": "可多拉", + "french": "Galegon" + }, + "type": [ + "Steel", + "Rock" + ], + "base": { + "HP": 60, + "Attack": 90, + "Defense": 140, + "Sp. Attack": 50, + "Sp. Defense": 50, + "Speed": 40 + } + }, + { + "id": 306, + "name": { + "english": "Aggron", + "japanese": "ボスゴドラ", + "chinese": "波士可多拉", + "french": "Galeking" + }, + "type": [ + "Steel", + "Rock" + ], + "base": { + "HP": 70, + "Attack": 110, + "Defense": 180, + "Sp. Attack": 60, + "Sp. Defense": 60, + "Speed": 50 + } + }, + { + "id": 307, + "name": { + "english": "Meditite", + "japanese": "アサナン", + "chinese": "玛沙那", + "french": "Méditikka" + }, + "type": [ + "Fighting", + "Psychic" + ], + "base": { + "HP": 30, + "Attack": 40, + "Defense": 55, + "Sp. Attack": 40, + "Sp. Defense": 55, + "Speed": 60 + } + }, + { + "id": 308, + "name": { + "english": "Medicham", + "japanese": "チャーレム", + "chinese": "恰雷姆", + "french": "Charmina" + }, + "type": [ + "Fighting", + "Psychic" + ], + "base": { + "HP": 60, + "Attack": 60, + "Defense": 75, + "Sp. Attack": 60, + "Sp. Defense": 75, + "Speed": 80 + } + }, + { + "id": 309, + "name": { + "english": "Electrike", + "japanese": "ラクライ", + "chinese": "落雷兽", + "french": "Dynavolt" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 40, + "Attack": 45, + "Defense": 40, + "Sp. Attack": 65, + "Sp. Defense": 40, + "Speed": 65 + } + }, + { + "id": 310, + "name": { + "english": "Manectric", + "japanese": "ライボルト", + "chinese": "雷电兽", + "french": "Élecsprint" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 70, + "Attack": 75, + "Defense": 60, + "Sp. Attack": 105, + "Sp. Defense": 60, + "Speed": 105 + } + }, + { + "id": 311, + "name": { + "english": "Plusle", + "japanese": "プラスル", + "chinese": "正电拍拍", + "french": "Posipi" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 60, + "Attack": 50, + "Defense": 40, + "Sp. Attack": 85, + "Sp. Defense": 75, + "Speed": 95 + } + }, + { + "id": 312, + "name": { + "english": "Minun", + "japanese": "マイナン", + "chinese": "负电拍拍", + "french": "Négapi" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 60, + "Attack": 40, + "Defense": 50, + "Sp. Attack": 75, + "Sp. Defense": 85, + "Speed": 95 + } + }, + { + "id": 313, + "name": { + "english": "Volbeat", + "japanese": "バルビート", + "chinese": "电萤虫", + "french": "Muciole" + }, + "type": [ + "Bug" + ], + "base": { + "HP": 65, + "Attack": 73, + "Defense": 75, + "Sp. Attack": 47, + "Sp. Defense": 85, + "Speed": 85 + } + }, + { + "id": 314, + "name": { + "english": "Illumise", + "japanese": "イルミーゼ", + "chinese": "甜甜萤", + "french": "Lumivole" + }, + "type": [ + "Bug" + ], + "base": { + "HP": 65, + "Attack": 47, + "Defense": 75, + "Sp. Attack": 73, + "Sp. Defense": 85, + "Speed": 85 + } + }, + { + "id": 315, + "name": { + "english": "Roselia", + "japanese": "ロゼリア", + "chinese": "毒蔷薇", + "french": "Rosélia" + }, + "type": [ + "Grass", + "Poison" + ], + "base": { + "HP": 50, + "Attack": 60, + "Defense": 45, + "Sp. Attack": 100, + "Sp. Defense": 80, + "Speed": 65 + } + }, + { + "id": 316, + "name": { + "english": "Gulpin", + "japanese": "ゴクリン", + "chinese": "溶食兽", + "french": "Gloupti" + }, + "type": [ + "Poison" + ], + "base": { + "HP": 70, + "Attack": 43, + "Defense": 53, + "Sp. Attack": 43, + "Sp. Defense": 53, + "Speed": 40 + } + }, + { + "id": 317, + "name": { + "english": "Swalot", + "japanese": "マルノーム", + "chinese": "吞食兽", + "french": "Avaltout" + }, + "type": [ + "Poison" + ], + "base": { + "HP": 100, + "Attack": 73, + "Defense": 83, + "Sp. Attack": 73, + "Sp. Defense": 83, + "Speed": 55 + } + }, + { + "id": 318, + "name": { + "english": "Carvanha", + "japanese": "キバニア", + "chinese": "利牙鱼", + "french": "Carvanha" + }, + "type": [ + "Water", + "Dark" + ], + "base": { + "HP": 45, + "Attack": 90, + "Defense": 20, + "Sp. Attack": 65, + "Sp. Defense": 20, + "Speed": 65 + } + }, + { + "id": 319, + "name": { + "english": "Sharpedo", + "japanese": "サメハダー", + "chinese": "巨牙鲨", + "french": "Sharpedo" + }, + "type": [ + "Water", + "Dark" + ], + "base": { + "HP": 70, + "Attack": 120, + "Defense": 40, + "Sp. Attack": 95, + "Sp. Defense": 40, + "Speed": 95 + } + }, + { + "id": 320, + "name": { + "english": "Wailmer", + "japanese": "ホエルコ", + "chinese": "吼吼鲸", + "french": "Wailmer" + }, + "type": [ + "Water" + ], + "base": { + "HP": 130, + "Attack": 70, + "Defense": 35, + "Sp. Attack": 70, + "Sp. Defense": 35, + "Speed": 60 + } + }, + { + "id": 321, + "name": { + "english": "Wailord", + "japanese": "ホエルオー", + "chinese": "吼鲸王", + "french": "Wailord" + }, + "type": [ + "Water" + ], + "base": { + "HP": 170, + "Attack": 90, + "Defense": 45, + "Sp. Attack": 90, + "Sp. Defense": 45, + "Speed": 60 + } + }, + { + "id": 322, + "name": { + "english": "Numel", + "japanese": "ドンメル", + "chinese": "呆火驼", + "french": "Chamallot" + }, + "type": [ + "Fire", + "Ground" + ], + "base": { + "HP": 60, + "Attack": 60, + "Defense": 40, + "Sp. Attack": 65, + "Sp. Defense": 45, + "Speed": 35 + } + }, + { + "id": 323, + "name": { + "english": "Camerupt", + "japanese": "バクーダ", + "chinese": "喷火驼", + "french": "Camérupt" + }, + "type": [ + "Fire", + "Ground" + ], + "base": { + "HP": 70, + "Attack": 100, + "Defense": 70, + "Sp. Attack": 105, + "Sp. Defense": 75, + "Speed": 40 + } + }, + { + "id": 324, + "name": { + "english": "Torkoal", + "japanese": "コータス", + "chinese": "煤炭龟", + "french": "Chartor" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 70, + "Attack": 85, + "Defense": 140, + "Sp. Attack": 85, + "Sp. Defense": 70, + "Speed": 20 + } + }, + { + "id": 325, + "name": { + "english": "Spoink", + "japanese": "バネブー", + "chinese": "跳跳猪", + "french": "Spoink" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 60, + "Attack": 25, + "Defense": 35, + "Sp. Attack": 70, + "Sp. Defense": 80, + "Speed": 60 + } + }, + { + "id": 326, + "name": { + "english": "Grumpig", + "japanese": "ブーピッグ", + "chinese": "噗噗猪", + "french": "Groret" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 80, + "Attack": 45, + "Defense": 65, + "Sp. Attack": 90, + "Sp. Defense": 110, + "Speed": 80 + } + }, + { + "id": 327, + "name": { + "english": "Spinda", + "japanese": "パッチール", + "chinese": "晃晃斑", + "french": "Spinda" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 60, + "Attack": 60, + "Defense": 60, + "Sp. Attack": 60, + "Sp. Defense": 60, + "Speed": 60 + } + }, + { + "id": 328, + "name": { + "english": "Trapinch", + "japanese": "ナックラー", + "chinese": "大颚蚁", + "french": "Kraknoix" + }, + "type": [ + "Ground" + ], + "base": { + "HP": 45, + "Attack": 100, + "Defense": 45, + "Sp. Attack": 45, + "Sp. Defense": 45, + "Speed": 10 + } + }, + { + "id": 329, + "name": { + "english": "Vibrava", + "japanese": "ビブラーバ", + "chinese": "超音波幼虫", + "french": "Vibraninf" + }, + "type": [ + "Ground", + "Dragon" + ], + "base": { + "HP": 50, + "Attack": 70, + "Defense": 50, + "Sp. Attack": 50, + "Sp. Defense": 50, + "Speed": 70 + } + }, + { + "id": 330, + "name": { + "english": "Flygon", + "japanese": "フライゴン", + "chinese": "沙漠蜻蜓", + "french": "Libégon" + }, + "type": [ + "Ground", + "Dragon" + ], + "base": { + "HP": 80, + "Attack": 100, + "Defense": 80, + "Sp. Attack": 80, + "Sp. Defense": 80, + "Speed": 100 + } + }, + { + "id": 331, + "name": { + "english": "Cacnea", + "japanese": "サボネア", + "chinese": "刺球仙人掌", + "french": "Cacnea" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 50, + "Attack": 85, + "Defense": 40, + "Sp. Attack": 85, + "Sp. Defense": 40, + "Speed": 35 + } + }, + { + "id": 332, + "name": { + "english": "Cacturne", + "japanese": "ノクタス", + "chinese": "梦歌仙人掌", + "french": "Cacturne" + }, + "type": [ + "Grass", + "Dark" + ], + "base": { + "HP": 70, + "Attack": 115, + "Defense": 60, + "Sp. Attack": 115, + "Sp. Defense": 60, + "Speed": 55 + } + }, + { + "id": 333, + "name": { + "english": "Swablu", + "japanese": "チルット", + "chinese": "青绵鸟", + "french": "Tylton" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 45, + "Attack": 40, + "Defense": 60, + "Sp. Attack": 40, + "Sp. Defense": 75, + "Speed": 50 + } + }, + { + "id": 334, + "name": { + "english": "Altaria", + "japanese": "チルタリス", + "chinese": "七夕青鸟", + "french": "Altaria" + }, + "type": [ + "Dragon", + "Flying" + ], + "base": { + "HP": 75, + "Attack": 70, + "Defense": 90, + "Sp. Attack": 70, + "Sp. Defense": 105, + "Speed": 80 + } + }, + { + "id": 335, + "name": { + "english": "Zangoose", + "japanese": "ザングース", + "chinese": "猫鼬斩", + "french": "Mangriff" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 73, + "Attack": 115, + "Defense": 60, + "Sp. Attack": 60, + "Sp. Defense": 60, + "Speed": 90 + } + }, + { + "id": 336, + "name": { + "english": "Seviper", + "japanese": "ハブネーク", + "chinese": "饭匙蛇", + "french": "Séviper" + }, + "type": [ + "Poison" + ], + "base": { + "HP": 73, + "Attack": 100, + "Defense": 60, + "Sp. Attack": 100, + "Sp. Defense": 60, + "Speed": 65 + } + }, + { + "id": 337, + "name": { + "english": "Lunatone", + "japanese": "ルナトーン", + "chinese": "月石", + "french": "Séléroc" + }, + "type": [ + "Rock", + "Psychic" + ], + "base": { + "HP": 90, + "Attack": 55, + "Defense": 65, + "Sp. Attack": 95, + "Sp. Defense": 85, + "Speed": 70 + } + }, + { + "id": 338, + "name": { + "english": "Solrock", + "japanese": "ソルロック", + "chinese": "太阳岩", + "french": "Solaroc" + }, + "type": [ + "Rock", + "Psychic" + ], + "base": { + "HP": 90, + "Attack": 95, + "Defense": 85, + "Sp. Attack": 55, + "Sp. Defense": 65, + "Speed": 70 + } + }, + { + "id": 339, + "name": { + "english": "Barboach", + "japanese": "ドジョッチ", + "chinese": "泥泥鳅", + "french": "Barloche" + }, + "type": [ + "Water", + "Ground" + ], + "base": { + "HP": 50, + "Attack": 48, + "Defense": 43, + "Sp. Attack": 46, + "Sp. Defense": 41, + "Speed": 60 + } + }, + { + "id": 340, + "name": { + "english": "Whiscash", + "japanese": "ナマズン", + "chinese": "鲶鱼王", + "french": "Barbicha" + }, + "type": [ + "Water", + "Ground" + ], + "base": { + "HP": 110, + "Attack": 78, + "Defense": 73, + "Sp. Attack": 76, + "Sp. Defense": 71, + "Speed": 60 + } + }, + { + "id": 341, + "name": { + "english": "Corphish", + "japanese": "ヘイガニ", + "chinese": "龙虾小兵", + "french": "Écrapince" + }, + "type": [ + "Water" + ], + "base": { + "HP": 43, + "Attack": 80, + "Defense": 65, + "Sp. Attack": 50, + "Sp. Defense": 35, + "Speed": 35 + } + }, + { + "id": 342, + "name": { + "english": "Crawdaunt", + "japanese": "シザリガー", + "chinese": "铁螯龙虾", + "french": "Colhomard" + }, + "type": [ + "Water", + "Dark" + ], + "base": { + "HP": 63, + "Attack": 120, + "Defense": 85, + "Sp. Attack": 90, + "Sp. Defense": 55, + "Speed": 55 + } + }, + { + "id": 343, + "name": { + "english": "Baltoy", + "japanese": "ヤジロン", + "chinese": "天秤偶", + "french": "Balbuto" + }, + "type": [ + "Ground", + "Psychic" + ], + "base": { + "HP": 40, + "Attack": 40, + "Defense": 55, + "Sp. Attack": 40, + "Sp. Defense": 70, + "Speed": 55 + } + }, + { + "id": 344, + "name": { + "english": "Claydol", + "japanese": "ネンドール", + "chinese": "念力土偶", + "french": "Kaorine" + }, + "type": [ + "Ground", + "Psychic" + ], + "base": { + "HP": 60, + "Attack": 70, + "Defense": 105, + "Sp. Attack": 70, + "Sp. Defense": 120, + "Speed": 75 + } + }, + { + "id": 345, + "name": { + "english": "Lileep", + "japanese": "リリーラ", + "chinese": "触手百合", + "french": "Lilia" + }, + "type": [ + "Rock", + "Grass" + ], + "base": { + "HP": 66, + "Attack": 41, + "Defense": 77, + "Sp. Attack": 61, + "Sp. Defense": 87, + "Speed": 23 + } + }, + { + "id": 346, + "name": { + "english": "Cradily", + "japanese": "ユレイドル", + "chinese": "摇篮百合", + "french": "Vacilys" + }, + "type": [ + "Rock", + "Grass" + ], + "base": { + "HP": 86, + "Attack": 81, + "Defense": 97, + "Sp. Attack": 81, + "Sp. Defense": 107, + "Speed": 43 + } + }, + { + "id": 347, + "name": { + "english": "Anorith", + "japanese": "アノプス", + "chinese": "太古羽虫", + "french": "Anorith" + }, + "type": [ + "Rock", + "Bug" + ], + "base": { + "HP": 45, + "Attack": 95, + "Defense": 50, + "Sp. Attack": 40, + "Sp. Defense": 50, + "Speed": 75 + } + }, + { + "id": 348, + "name": { + "english": "Armaldo", + "japanese": "アーマルド", + "chinese": "太古盔甲", + "french": "Armaldo" + }, + "type": [ + "Rock", + "Bug" + ], + "base": { + "HP": 75, + "Attack": 125, + "Defense": 100, + "Sp. Attack": 70, + "Sp. Defense": 80, + "Speed": 45 + } + }, + { + "id": 349, + "name": { + "english": "Feebas", + "japanese": "ヒンバス", + "chinese": "丑丑鱼", + "french": "Barpau" + }, + "type": [ + "Water" + ], + "base": { + "HP": 20, + "Attack": 15, + "Defense": 20, + "Sp. Attack": 10, + "Sp. Defense": 55, + "Speed": 80 + } + }, + { + "id": 350, + "name": { + "english": "Milotic", + "japanese": "ミロカロス", + "chinese": "美纳斯", + "french": "Milobellus" + }, + "type": [ + "Water" + ], + "base": { + "HP": 95, + "Attack": 60, + "Defense": 79, + "Sp. Attack": 100, + "Sp. Defense": 125, + "Speed": 81 + } + }, + { + "id": 351, + "name": { + "english": "Castform", + "japanese": "ポワルン", + "chinese": "飘浮泡泡", + "french": "Morphéo" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 70, + "Attack": 70, + "Defense": 70, + "Sp. Attack": 70, + "Sp. Defense": 70, + "Speed": 70 + } + }, + { + "id": 352, + "name": { + "english": "Kecleon", + "japanese": "カクレオン", + "chinese": "变隐龙", + "french": "Kecleon" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 60, + "Attack": 90, + "Defense": 70, + "Sp. Attack": 60, + "Sp. Defense": 120, + "Speed": 40 + } + }, + { + "id": 353, + "name": { + "english": "Shuppet", + "japanese": "カゲボウズ", + "chinese": "怨影娃娃", + "french": "Polichombr" + }, + "type": [ + "Ghost" + ], + "base": { + "HP": 44, + "Attack": 75, + "Defense": 35, + "Sp. Attack": 63, + "Sp. Defense": 33, + "Speed": 45 + } + }, + { + "id": 354, + "name": { + "english": "Banette", + "japanese": "ジュペッタ", + "chinese": "诅咒娃娃", + "french": "Branette" + }, + "type": [ + "Ghost" + ], + "base": { + "HP": 64, + "Attack": 115, + "Defense": 65, + "Sp. Attack": 83, + "Sp. Defense": 63, + "Speed": 65 + } + }, + { + "id": 355, + "name": { + "english": "Duskull", + "japanese": "ヨマワル", + "chinese": "夜巡灵", + "french": "Skelénox" + }, + "type": [ + "Ghost" + ], + "base": { + "HP": 20, + "Attack": 40, + "Defense": 90, + "Sp. Attack": 30, + "Sp. Defense": 90, + "Speed": 25 + } + }, + { + "id": 356, + "name": { + "english": "Dusclops", + "japanese": "サマヨール", + "chinese": "彷徨夜灵", + "french": "Téraclope" + }, + "type": [ + "Ghost" + ], + "base": { + "HP": 40, + "Attack": 70, + "Defense": 130, + "Sp. Attack": 60, + "Sp. Defense": 130, + "Speed": 25 + } + }, + { + "id": 357, + "name": { + "english": "Tropius", + "japanese": "トロピウス", + "chinese": "热带龙", + "french": "Tropius" + }, + "type": [ + "Grass", + "Flying" + ], + "base": { + "HP": 99, + "Attack": 68, + "Defense": 83, + "Sp. Attack": 72, + "Sp. Defense": 87, + "Speed": 51 + } + }, + { + "id": 358, + "name": { + "english": "Chimecho", + "japanese": "チリーン", + "chinese": "风铃铃", + "french": "Éoko" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 75, + "Attack": 50, + "Defense": 80, + "Sp. Attack": 95, + "Sp. Defense": 90, + "Speed": 65 + } + }, + { + "id": 359, + "name": { + "english": "Absol", + "japanese": "アブソル", + "chinese": "阿勃梭鲁", + "french": "Absol" + }, + "type": [ + "Dark" + ], + "base": { + "HP": 65, + "Attack": 130, + "Defense": 60, + "Sp. Attack": 75, + "Sp. Defense": 60, + "Speed": 75 + } + }, + { + "id": 360, + "name": { + "english": "Wynaut", + "japanese": "ソーナノ", + "chinese": "小果然", + "french": "Okéoké" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 95, + "Attack": 23, + "Defense": 48, + "Sp. Attack": 23, + "Sp. Defense": 48, + "Speed": 23 + } + }, + { + "id": 361, + "name": { + "english": "Snorunt", + "japanese": "ユキワラシ", + "chinese": "雪童子", + "french": "Stalgamin" + }, + "type": [ + "Ice" + ], + "base": { + "HP": 50, + "Attack": 50, + "Defense": 50, + "Sp. Attack": 50, + "Sp. Defense": 50, + "Speed": 50 + } + }, + { + "id": 362, + "name": { + "english": "Glalie", + "japanese": "オニゴーリ", + "chinese": "冰鬼护", + "french": "Oniglali" + }, + "type": [ + "Ice" + ], + "base": { + "HP": 80, + "Attack": 80, + "Defense": 80, + "Sp. Attack": 80, + "Sp. Defense": 80, + "Speed": 80 + } + }, + { + "id": 363, + "name": { + "english": "Spheal", + "japanese": "タマザラシ", + "chinese": "海豹球", + "french": "Obalie" + }, + "type": [ + "Ice", + "Water" + ], + "base": { + "HP": 70, + "Attack": 40, + "Defense": 50, + "Sp. Attack": 55, + "Sp. Defense": 50, + "Speed": 25 + } + }, + { + "id": 364, + "name": { + "english": "Sealeo", + "japanese": "トドグラー", + "chinese": "海魔狮", + "french": "Phogleur" + }, + "type": [ + "Ice", + "Water" + ], + "base": { + "HP": 90, + "Attack": 60, + "Defense": 70, + "Sp. Attack": 75, + "Sp. Defense": 70, + "Speed": 45 + } + }, + { + "id": 365, + "name": { + "english": "Walrein", + "japanese": "トドゼルガ", + "chinese": "帝牙海狮", + "french": "Kaimorse" + }, + "type": [ + "Ice", + "Water" + ], + "base": { + "HP": 110, + "Attack": 80, + "Defense": 90, + "Sp. Attack": 95, + "Sp. Defense": 90, + "Speed": 65 + } + }, + { + "id": 366, + "name": { + "english": "Clamperl", + "japanese": "パールル", + "chinese": "珍珠贝", + "french": "Coquiperl" + }, + "type": [ + "Water" + ], + "base": { + "HP": 35, + "Attack": 64, + "Defense": 85, + "Sp. Attack": 74, + "Sp. Defense": 55, + "Speed": 32 + } + }, + { + "id": 367, + "name": { + "english": "Huntail", + "japanese": "ハンテール", + "chinese": "猎斑鱼", + "french": "Serpang" + }, + "type": [ + "Water" + ], + "base": { + "HP": 55, + "Attack": 104, + "Defense": 105, + "Sp. Attack": 94, + "Sp. Defense": 75, + "Speed": 52 + } + }, + { + "id": 368, + "name": { + "english": "Gorebyss", + "japanese": "サクラビス", + "chinese": "樱花鱼", + "french": "Rosabyss" + }, + "type": [ + "Water" + ], + "base": { + "HP": 55, + "Attack": 84, + "Defense": 105, + "Sp. Attack": 114, + "Sp. Defense": 75, + "Speed": 52 + } + }, + { + "id": 369, + "name": { + "english": "Relicanth", + "japanese": "ジーランス", + "chinese": "古空棘鱼", + "french": "Relicanth" + }, + "type": [ + "Water", + "Rock" + ], + "base": { + "HP": 100, + "Attack": 90, + "Defense": 130, + "Sp. Attack": 45, + "Sp. Defense": 65, + "Speed": 55 + } + }, + { + "id": 370, + "name": { + "english": "Luvdisc", + "japanese": "ラブカス", + "chinese": "爱心鱼", + "french": "Lovdisc" + }, + "type": [ + "Water" + ], + "base": { + "HP": 43, + "Attack": 30, + "Defense": 55, + "Sp. Attack": 40, + "Sp. Defense": 65, + "Speed": 97 + } + }, + { + "id": 371, + "name": { + "english": "Bagon", + "japanese": "タツベイ", + "chinese": "宝贝龙", + "french": "Draby" + }, + "type": [ + "Dragon" + ], + "base": { + "HP": 45, + "Attack": 75, + "Defense": 60, + "Sp. Attack": 40, + "Sp. Defense": 30, + "Speed": 50 + } + }, + { + "id": 372, + "name": { + "english": "Shelgon", + "japanese": "コモルー", + "chinese": "甲壳龙", + "french": "Drackhaus" + }, + "type": [ + "Dragon" + ], + "base": { + "HP": 65, + "Attack": 95, + "Defense": 100, + "Sp. Attack": 60, + "Sp. Defense": 50, + "Speed": 50 + } + }, + { + "id": 373, + "name": { + "english": "Salamence", + "japanese": "ボーマンダ", + "chinese": "暴飞龙", + "french": "Drattak" + }, + "type": [ + "Dragon", + "Flying" + ], + "base": { + "HP": 95, + "Attack": 135, + "Defense": 80, + "Sp. Attack": 110, + "Sp. Defense": 80, + "Speed": 100 + } + }, + { + "id": 374, + "name": { + "english": "Beldum", + "japanese": "ダンバル", + "chinese": "铁哑铃", + "french": "Terhal" + }, + "type": [ + "Steel", + "Psychic" + ], + "base": { + "HP": 40, + "Attack": 55, + "Defense": 80, + "Sp. Attack": 35, + "Sp. Defense": 60, + "Speed": 30 + } + }, + { + "id": 375, + "name": { + "english": "Metang", + "japanese": "メタング", + "chinese": "金属怪", + "french": "Métang" + }, + "type": [ + "Steel", + "Psychic" + ], + "base": { + "HP": 60, + "Attack": 75, + "Defense": 100, + "Sp. Attack": 55, + "Sp. Defense": 80, + "Speed": 50 + } + }, + { + "id": 376, + "name": { + "english": "Metagross", + "japanese": "メタグロス", + "chinese": "巨金怪", + "french": "Métalosse" + }, + "type": [ + "Steel", + "Psychic" + ], + "base": { + "HP": 80, + "Attack": 135, + "Defense": 130, + "Sp. Attack": 95, + "Sp. Defense": 90, + "Speed": 70 + } + }, + { + "id": 377, + "name": { + "english": "Regirock", + "japanese": "レジロック", + "chinese": "雷吉洛克", + "french": "Regirock" + }, + "type": [ + "Rock" + ], + "base": { + "HP": 80, + "Attack": 100, + "Defense": 200, + "Sp. Attack": 50, + "Sp. Defense": 100, + "Speed": 50 + } + }, + { + "id": 378, + "name": { + "english": "Regice", + "japanese": "レジアイス", + "chinese": "雷吉艾斯", + "french": "Regice" + }, + "type": [ + "Ice" + ], + "base": { + "HP": 80, + "Attack": 50, + "Defense": 100, + "Sp. Attack": 100, + "Sp. Defense": 200, + "Speed": 50 + } + }, + { + "id": 379, + "name": { + "english": "Registeel", + "japanese": "レジスチル", + "chinese": "雷吉斯奇鲁", + "french": "Registeel" + }, + "type": [ + "Steel" + ], + "base": { + "HP": 80, + "Attack": 75, + "Defense": 150, + "Sp. Attack": 75, + "Sp. Defense": 150, + "Speed": 50 + } + }, + { + "id": 380, + "name": { + "english": "Latias", + "japanese": "ラティアス", + "chinese": "拉帝亚斯", + "french": "Latias" + }, + "type": [ + "Dragon", + "Psychic" + ], + "base": { + "HP": 80, + "Attack": 80, + "Defense": 90, + "Sp. Attack": 110, + "Sp. Defense": 130, + "Speed": 110 + } + }, + { + "id": 381, + "name": { + "english": "Latios", + "japanese": "ラティオス", + "chinese": "拉帝欧斯", + "french": "Latios" + }, + "type": [ + "Dragon", + "Psychic" + ], + "base": { + "HP": 80, + "Attack": 90, + "Defense": 80, + "Sp. Attack": 130, + "Sp. Defense": 110, + "Speed": 110 + } + }, + { + "id": 382, + "name": { + "english": "Kyogre", + "japanese": "カイオーガ", + "chinese": "盖欧卡", + "french": "Kyogre" + }, + "type": [ + "Water" + ], + "base": { + "HP": 100, + "Attack": 100, + "Defense": 90, + "Sp. Attack": 150, + "Sp. Defense": 140, + "Speed": 90 + } + }, + { + "id": 383, + "name": { + "english": "Groudon", + "japanese": "グラードン", + "chinese": "固拉多", + "french": "Groudon" + }, + "type": [ + "Ground" + ], + "base": { + "HP": 100, + "Attack": 150, + "Defense": 140, + "Sp. Attack": 100, + "Sp. Defense": 90, + "Speed": 90 + } + }, + { + "id": 384, + "name": { + "english": "Rayquaza", + "japanese": "レックウザ", + "chinese": "烈空坐", + "french": "Rayquaza" + }, + "type": [ + "Dragon", + "Flying" + ], + "base": { + "HP": 105, + "Attack": 150, + "Defense": 90, + "Sp. Attack": 150, + "Sp. Defense": 90, + "Speed": 95 + } + }, + { + "id": 385, + "name": { + "english": "Jirachi", + "japanese": "ジラーチ", + "chinese": "基拉祈", + "french": "Jirachi" + }, + "type": [ + "Steel", + "Psychic" + ], + "base": { + "HP": 100, + "Attack": 100, + "Defense": 100, + "Sp. Attack": 100, + "Sp. Defense": 100, + "Speed": 100 + } + }, + { + "id": 386, + "name": { + "english": "Deoxys", + "japanese": "デオキシス", + "chinese": "代欧奇希斯", + "french": "Deoxys" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 50, + "Attack": 150, + "Defense": 50, + "Sp. Attack": 150, + "Sp. Defense": 50, + "Speed": 150 + } + }, + { + "id": 387, + "name": { + "english": "Turtwig", + "japanese": "ナエトル", + "chinese": "草苗龟", + "french": "Tortipouss" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 55, + "Attack": 68, + "Defense": 64, + "Sp. Attack": 45, + "Sp. Defense": 55, + "Speed": 31 + } + }, + { + "id": 388, + "name": { + "english": "Grotle", + "japanese": "ハヤシガメ", + "chinese": "树林龟", + "french": "Boskara" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 75, + "Attack": 89, + "Defense": 85, + "Sp. Attack": 55, + "Sp. Defense": 65, + "Speed": 36 + } + }, + { + "id": 389, + "name": { + "english": "Torterra", + "japanese": "ドダイトス", + "chinese": "土台龟", + "french": "Torterra" + }, + "type": [ + "Grass", + "Ground" + ], + "base": { + "HP": 95, + "Attack": 109, + "Defense": 105, + "Sp. Attack": 75, + "Sp. Defense": 85, + "Speed": 56 + } + }, + { + "id": 390, + "name": { + "english": "Chimchar", + "japanese": "ヒコザル", + "chinese": "小火焰猴", + "french": "Ouisticram" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 44, + "Attack": 58, + "Defense": 44, + "Sp. Attack": 58, + "Sp. Defense": 44, + "Speed": 61 + } + }, + { + "id": 391, + "name": { + "english": "Monferno", + "japanese": "モウカザル", + "chinese": "猛火猴", + "french": "Chimpenfeu" + }, + "type": [ + "Fire", + "Fighting" + ], + "base": { + "HP": 64, + "Attack": 78, + "Defense": 52, + "Sp. Attack": 78, + "Sp. Defense": 52, + "Speed": 81 + } + }, + { + "id": 392, + "name": { + "english": "Infernape", + "japanese": "ゴウカザル", + "chinese": "烈焰猴", + "french": "Simiabraz" + }, + "type": [ + "Fire", + "Fighting" + ], + "base": { + "HP": 76, + "Attack": 104, + "Defense": 71, + "Sp. Attack": 104, + "Sp. Defense": 71, + "Speed": 108 + } + }, + { + "id": 393, + "name": { + "english": "Piplup", + "japanese": "ポッチャマ", + "chinese": "波加曼", + "french": "Tiplouf" + }, + "type": [ + "Water" + ], + "base": { + "HP": 53, + "Attack": 51, + "Defense": 53, + "Sp. Attack": 61, + "Sp. Defense": 56, + "Speed": 40 + } + }, + { + "id": 394, + "name": { + "english": "Prinplup", + "japanese": "ポッタイシ", + "chinese": "波皇子", + "french": "Prinplouf" + }, + "type": [ + "Water" + ], + "base": { + "HP": 64, + "Attack": 66, + "Defense": 68, + "Sp. Attack": 81, + "Sp. Defense": 76, + "Speed": 50 + } + }, + { + "id": 395, + "name": { + "english": "Empoleon", + "japanese": "エンペルト", + "chinese": "帝王拿波", + "french": "Pingoléon" + }, + "type": [ + "Water", + "Steel" + ], + "base": { + "HP": 84, + "Attack": 86, + "Defense": 88, + "Sp. Attack": 111, + "Sp. Defense": 101, + "Speed": 60 + } + }, + { + "id": 396, + "name": { + "english": "Starly", + "japanese": "ムックル", + "chinese": "姆克儿", + "french": "Étourmi" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 40, + "Attack": 55, + "Defense": 30, + "Sp. Attack": 30, + "Sp. Defense": 30, + "Speed": 60 + } + }, + { + "id": 397, + "name": { + "english": "Staravia", + "japanese": "ムクバード", + "chinese": "姆克鸟", + "french": "Étourvol" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 55, + "Attack": 75, + "Defense": 50, + "Sp. Attack": 40, + "Sp. Defense": 40, + "Speed": 80 + } + }, + { + "id": 398, + "name": { + "english": "Staraptor", + "japanese": "ムクホーク", + "chinese": "姆克鹰", + "french": "Étouraptor" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 85, + "Attack": 120, + "Defense": 70, + "Sp. Attack": 50, + "Sp. Defense": 60, + "Speed": 100 + } + }, + { + "id": 399, + "name": { + "english": "Bidoof", + "japanese": "ビッパ", + "chinese": "大牙狸", + "french": "Keunotor" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 59, + "Attack": 45, + "Defense": 40, + "Sp. Attack": 35, + "Sp. Defense": 40, + "Speed": 31 + } + }, + { + "id": 400, + "name": { + "english": "Bibarel", + "japanese": "ビーダル", + "chinese": "大尾狸", + "french": "Castorno" + }, + "type": [ + "Normal", + "Water" + ], + "base": { + "HP": 79, + "Attack": 85, + "Defense": 60, + "Sp. Attack": 55, + "Sp. Defense": 60, + "Speed": 71 + } + }, + { + "id": 401, + "name": { + "english": "Kricketot", + "japanese": "コロボーシ", + "chinese": "圆法师", + "french": "Crikzik" + }, + "type": [ + "Bug" + ], + "base": { + "HP": 37, + "Attack": 25, + "Defense": 41, + "Sp. Attack": 25, + "Sp. Defense": 41, + "Speed": 25 + } + }, + { + "id": 402, + "name": { + "english": "Kricketune", + "japanese": "コロトック", + "chinese": "音箱蟀", + "french": "Mélokrik" + }, + "type": [ + "Bug" + ], + "base": { + "HP": 77, + "Attack": 85, + "Defense": 51, + "Sp. Attack": 55, + "Sp. Defense": 51, + "Speed": 65 + } + }, + { + "id": 403, + "name": { + "english": "Shinx", + "japanese": "コリンク", + "chinese": "小猫怪", + "french": "Lixy" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 45, + "Attack": 65, + "Defense": 34, + "Sp. Attack": 40, + "Sp. Defense": 34, + "Speed": 45 + } + }, + { + "id": 404, + "name": { + "english": "Luxio", + "japanese": "ルクシオ", + "chinese": "勒克猫", + "french": "Luxio" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 60, + "Attack": 85, + "Defense": 49, + "Sp. Attack": 60, + "Sp. Defense": 49, + "Speed": 60 + } + }, + { + "id": 405, + "name": { + "english": "Luxray", + "japanese": "レントラー", + "chinese": "伦琴猫", + "french": "Luxray" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 80, + "Attack": 120, + "Defense": 79, + "Sp. Attack": 95, + "Sp. Defense": 79, + "Speed": 70 + } + }, + { + "id": 406, + "name": { + "english": "Budew", + "japanese": "スボミー", + "chinese": "含羞苞", + "french": "Rozbouton" + }, + "type": [ + "Grass", + "Poison" + ], + "base": { + "HP": 40, + "Attack": 30, + "Defense": 35, + "Sp. Attack": 50, + "Sp. Defense": 70, + "Speed": 55 + } + }, + { + "id": 407, + "name": { + "english": "Roserade", + "japanese": "ロズレイド", + "chinese": "罗丝雷朵", + "french": "Roserade" + }, + "type": [ + "Grass", + "Poison" + ], + "base": { + "HP": 60, + "Attack": 70, + "Defense": 65, + "Sp. Attack": 125, + "Sp. Defense": 105, + "Speed": 90 + } + }, + { + "id": 408, + "name": { + "english": "Cranidos", + "japanese": "ズガイドス", + "chinese": "头盖龙", + "french": "Kranidos" + }, + "type": [ + "Rock" + ], + "base": { + "HP": 67, + "Attack": 125, + "Defense": 40, + "Sp. Attack": 30, + "Sp. Defense": 30, + "Speed": 58 + } + }, + { + "id": 409, + "name": { + "english": "Rampardos", + "japanese": "ラムパルド", + "chinese": "战槌龙", + "french": "Charkos" + }, + "type": [ + "Rock" + ], + "base": { + "HP": 97, + "Attack": 165, + "Defense": 60, + "Sp. Attack": 65, + "Sp. Defense": 50, + "Speed": 58 + } + }, + { + "id": 410, + "name": { + "english": "Shieldon", + "japanese": "タテトプス", + "chinese": "盾甲龙", + "french": "Dinoclier" + }, + "type": [ + "Rock", + "Steel" + ], + "base": { + "HP": 30, + "Attack": 42, + "Defense": 118, + "Sp. Attack": 42, + "Sp. Defense": 88, + "Speed": 30 + } + }, + { + "id": 411, + "name": { + "english": "Bastiodon", + "japanese": "トリデプス", + "chinese": "护城龙", + "french": "Bastiodon" + }, + "type": [ + "Rock", + "Steel" + ], + "base": { + "HP": 60, + "Attack": 52, + "Defense": 168, + "Sp. Attack": 47, + "Sp. Defense": 138, + "Speed": 30 + } + }, + { + "id": 412, + "name": { + "english": "Burmy", + "japanese": "ミノムッチ", + "chinese": "结草儿", + "french": "Cheniti" + }, + "type": [ + "Bug" + ], + "base": { + "HP": 40, + "Attack": 29, + "Defense": 45, + "Sp. Attack": 29, + "Sp. Defense": 45, + "Speed": 36 + } + }, + { + "id": 413, + "name": { + "english": "Wormadam", + "japanese": "ミノマダム", + "chinese": "结草贵妇", + "french": "Cheniselle" + }, + "type": [ + "Bug", + "Grass" + ], + "base": { + "HP": 60, + "Attack": 59, + "Defense": 85, + "Sp. Attack": 79, + "Sp. Defense": 105, + "Speed": 36 + } + }, + { + "id": 414, + "name": { + "english": "Mothim", + "japanese": "ガーメイル", + "chinese": "绅士蛾", + "french": "Papilord" + }, + "type": [ + "Bug", + "Flying" + ], + "base": { + "HP": 70, + "Attack": 94, + "Defense": 50, + "Sp. Attack": 94, + "Sp. Defense": 50, + "Speed": 66 + } + }, + { + "id": 415, + "name": { + "english": "Combee", + "japanese": "ミツハニー", + "chinese": "三蜜蜂", + "french": "Apitrini" + }, + "type": [ + "Bug", + "Flying" + ], + "base": { + "HP": 30, + "Attack": 30, + "Defense": 42, + "Sp. Attack": 30, + "Sp. Defense": 42, + "Speed": 70 + } + }, + { + "id": 416, + "name": { + "english": "Vespiquen", + "japanese": "ビークイン", + "chinese": "蜂女王", + "french": "Apireine" + }, + "type": [ + "Bug", + "Flying" + ], + "base": { + "HP": 70, + "Attack": 80, + "Defense": 102, + "Sp. Attack": 80, + "Sp. Defense": 102, + "Speed": 40 + } + }, + { + "id": 417, + "name": { + "english": "Pachirisu", + "japanese": "パチリス", + "chinese": "帕奇利兹", + "french": "Pachirisu" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 60, + "Attack": 45, + "Defense": 70, + "Sp. Attack": 45, + "Sp. Defense": 90, + "Speed": 95 + } + }, + { + "id": 418, + "name": { + "english": "Buizel", + "japanese": "ブイゼル", + "chinese": "泳圈鼬", + "french": "Mustébouée" + }, + "type": [ + "Water" + ], + "base": { + "HP": 55, + "Attack": 65, + "Defense": 35, + "Sp. Attack": 60, + "Sp. Defense": 30, + "Speed": 85 + } + }, + { + "id": 419, + "name": { + "english": "Floatzel", + "japanese": "フローゼル", + "chinese": "浮潜鼬", + "french": "Mustéflott" + }, + "type": [ + "Water" + ], + "base": { + "HP": 85, + "Attack": 105, + "Defense": 55, + "Sp. Attack": 85, + "Sp. Defense": 50, + "Speed": 115 + } + }, + { + "id": 420, + "name": { + "english": "Cherubi", + "japanese": "チェリンボ", + "chinese": "樱花宝", + "french": "Ceribou" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 45, + "Attack": 35, + "Defense": 45, + "Sp. Attack": 62, + "Sp. Defense": 53, + "Speed": 35 + } + }, + { + "id": 421, + "name": { + "english": "Cherrim", + "japanese": "チェリム", + "chinese": "樱花儿", + "french": "Ceriflor" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 70, + "Attack": 60, + "Defense": 70, + "Sp. Attack": 87, + "Sp. Defense": 78, + "Speed": 85 + } + }, + { + "id": 422, + "name": { + "english": "Shellos", + "japanese": "カラナクシ", + "chinese": "无壳海兔", + "french": "Sancoki" + }, + "type": [ + "Water" + ], + "base": { + "HP": 76, + "Attack": 48, + "Defense": 48, + "Sp. Attack": 57, + "Sp. Defense": 62, + "Speed": 34 + } + }, + { + "id": 423, + "name": { + "english": "Gastrodon", + "japanese": "トリトドン", + "chinese": "海兔兽", + "french": "Tritosor" + }, + "type": [ + "Water", + "Ground" + ], + "base": { + "HP": 111, + "Attack": 83, + "Defense": 68, + "Sp. Attack": 92, + "Sp. Defense": 82, + "Speed": 39 + } + }, + { + "id": 424, + "name": { + "english": "Ambipom", + "japanese": "エテボース", + "chinese": "双尾怪手", + "french": "Capidextre" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 75, + "Attack": 100, + "Defense": 66, + "Sp. Attack": 60, + "Sp. Defense": 66, + "Speed": 115 + } + }, + { + "id": 425, + "name": { + "english": "Drifloon", + "japanese": "フワンテ", + "chinese": "飘飘球", + "french": "Baudrive" + }, + "type": [ + "Ghost", + "Flying" + ], + "base": { + "HP": 90, + "Attack": 50, + "Defense": 34, + "Sp. Attack": 60, + "Sp. Defense": 44, + "Speed": 70 + } + }, + { + "id": 426, + "name": { + "english": "Drifblim", + "japanese": "フワライド", + "chinese": "随风球", + "french": "Grodrive" + }, + "type": [ + "Ghost", + "Flying" + ], + "base": { + "HP": 150, + "Attack": 80, + "Defense": 44, + "Sp. Attack": 90, + "Sp. Defense": 54, + "Speed": 80 + } + }, + { + "id": 427, + "name": { + "english": "Buneary", + "japanese": "ミミロル", + "chinese": "卷卷耳", + "french": "Laporeille" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 55, + "Attack": 66, + "Defense": 44, + "Sp. Attack": 44, + "Sp. Defense": 56, + "Speed": 85 + } + }, + { + "id": 428, + "name": { + "english": "Lopunny", + "japanese": "ミミロップ", + "chinese": "长耳兔", + "french": "Lockpin" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 65, + "Attack": 76, + "Defense": 84, + "Sp. Attack": 54, + "Sp. Defense": 96, + "Speed": 105 + } + }, + { + "id": 429, + "name": { + "english": "Mismagius", + "japanese": "ムウマージ", + "chinese": "梦妖魔", + "french": "Magirêve" + }, + "type": [ + "Ghost" + ], + "base": { + "HP": 60, + "Attack": 60, + "Defense": 60, + "Sp. Attack": 105, + "Sp. Defense": 105, + "Speed": 105 + } + }, + { + "id": 430, + "name": { + "english": "Honchkrow", + "japanese": "ドンカラス", + "chinese": "乌鸦头头", + "french": "Corboss" + }, + "type": [ + "Dark", + "Flying" + ], + "base": { + "HP": 100, + "Attack": 125, + "Defense": 52, + "Sp. Attack": 105, + "Sp. Defense": 52, + "Speed": 71 + } + }, + { + "id": 431, + "name": { + "english": "Glameow", + "japanese": "ニャルマー", + "chinese": "魅力喵", + "french": "Chaglam" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 49, + "Attack": 55, + "Defense": 42, + "Sp. Attack": 42, + "Sp. Defense": 37, + "Speed": 85 + } + }, + { + "id": 432, + "name": { + "english": "Purugly", + "japanese": "ブニャット", + "chinese": "东施喵", + "french": "Chaffreux" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 71, + "Attack": 82, + "Defense": 64, + "Sp. Attack": 64, + "Sp. Defense": 59, + "Speed": 112 + } + }, + { + "id": 433, + "name": { + "english": "Chingling", + "japanese": "リーシャン", + "chinese": "铃铛响", + "french": "Korillon" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 45, + "Attack": 30, + "Defense": 50, + "Sp. Attack": 65, + "Sp. Defense": 50, + "Speed": 45 + } + }, + { + "id": 434, + "name": { + "english": "Stunky", + "japanese": "スカンプー", + "chinese": "臭鼬噗", + "french": "Moufouette" + }, + "type": [ + "Poison", + "Dark" + ], + "base": { + "HP": 63, + "Attack": 63, + "Defense": 47, + "Sp. Attack": 41, + "Sp. Defense": 41, + "Speed": 74 + } + }, + { + "id": 435, + "name": { + "english": "Skuntank", + "japanese": "スカタンク", + "chinese": "坦克臭鼬", + "french": "Moufflair" + }, + "type": [ + "Poison", + "Dark" + ], + "base": { + "HP": 103, + "Attack": 93, + "Defense": 67, + "Sp. Attack": 71, + "Sp. Defense": 61, + "Speed": 84 + } + }, + { + "id": 436, + "name": { + "english": "Bronzor", + "japanese": "ドーミラー", + "chinese": "铜镜怪", + "french": "Archéomire" + }, + "type": [ + "Steel", + "Psychic" + ], + "base": { + "HP": 57, + "Attack": 24, + "Defense": 86, + "Sp. Attack": 24, + "Sp. Defense": 86, + "Speed": 23 + } + }, + { + "id": 437, + "name": { + "english": "Bronzong", + "japanese": "ドータクン", + "chinese": "青铜钟", + "french": "Archéodong" + }, + "type": [ + "Steel", + "Psychic" + ], + "base": { + "HP": 67, + "Attack": 89, + "Defense": 116, + "Sp. Attack": 79, + "Sp. Defense": 116, + "Speed": 33 + } + }, + { + "id": 438, + "name": { + "english": "Bonsly", + "japanese": "ウソハチ", + "chinese": "盆才怪", + "french": "Manzaï" + }, + "type": [ + "Rock" + ], + "base": { + "HP": 50, + "Attack": 80, + "Defense": 95, + "Sp. Attack": 10, + "Sp. Defense": 45, + "Speed": 10 + } + }, + { + "id": 439, + "name": { + "english": "Mime Jr.", + "japanese": "マネネ", + "chinese": "魔尼尼", + "french": "Mime Jr" + }, + "type": [ + "Psychic", + "Fairy" + ], + "base": { + "HP": 20, + "Attack": 25, + "Defense": 45, + "Sp. Attack": 70, + "Sp. Defense": 90, + "Speed": 60 + } + }, + { + "id": 440, + "name": { + "english": "Happiny", + "japanese": "ピンプク", + "chinese": "小福蛋", + "french": "Ptiravi" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 100, + "Attack": 5, + "Defense": 5, + "Sp. Attack": 15, + "Sp. Defense": 65, + "Speed": 30 + } + }, + { + "id": 441, + "name": { + "english": "Chatot", + "japanese": "ペラップ", + "chinese": "聒噪鸟", + "french": "Pijako" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 76, + "Attack": 65, + "Defense": 45, + "Sp. Attack": 92, + "Sp. Defense": 42, + "Speed": 91 + } + }, + { + "id": 442, + "name": { + "english": "Spiritomb", + "japanese": "ミカルゲ", + "chinese": "花岩怪", + "french": "Spiritomb" + }, + "type": [ + "Ghost", + "Dark" + ], + "base": { + "HP": 50, + "Attack": 92, + "Defense": 108, + "Sp. Attack": 92, + "Sp. Defense": 108, + "Speed": 35 + } + }, + { + "id": 443, + "name": { + "english": "Gible", + "japanese": "フカマル", + "chinese": "圆陆鲨", + "french": "Griknot" + }, + "type": [ + "Dragon", + "Ground" + ], + "base": { + "HP": 58, + "Attack": 70, + "Defense": 45, + "Sp. Attack": 40, + "Sp. Defense": 45, + "Speed": 42 + } + }, + { + "id": 444, + "name": { + "english": "Gabite", + "japanese": "ガバイト", + "chinese": "尖牙陆鲨", + "french": "Carmache" + }, + "type": [ + "Dragon", + "Ground" + ], + "base": { + "HP": 68, + "Attack": 90, + "Defense": 65, + "Sp. Attack": 50, + "Sp. Defense": 55, + "Speed": 82 + } + }, + { + "id": 445, + "name": { + "english": "Garchomp", + "japanese": "ガブリアス", + "chinese": "烈咬陆鲨", + "french": "Carchacrok" + }, + "type": [ + "Dragon", + "Ground" + ], + "base": { + "HP": 108, + "Attack": 130, + "Defense": 95, + "Sp. Attack": 80, + "Sp. Defense": 85, + "Speed": 102 + } + }, + { + "id": 446, + "name": { + "english": "Munchlax", + "japanese": "ゴンベ", + "chinese": "小卡比兽", + "french": "Goinfrex" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 135, + "Attack": 85, + "Defense": 40, + "Sp. Attack": 40, + "Sp. Defense": 85, + "Speed": 5 + } + }, + { + "id": 447, + "name": { + "english": "Riolu", + "japanese": "リオル", + "chinese": "利欧路", + "french": "Riolu" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 40, + "Attack": 70, + "Defense": 40, + "Sp. Attack": 35, + "Sp. Defense": 40, + "Speed": 60 + } + }, + { + "id": 448, + "name": { + "english": "Lucario", + "japanese": "ルカリオ", + "chinese": "路卡利欧", + "french": "Lucario" + }, + "type": [ + "Fighting", + "Steel" + ], + "base": { + "HP": 70, + "Attack": 110, + "Defense": 70, + "Sp. Attack": 115, + "Sp. Defense": 70, + "Speed": 90 + } + }, + { + "id": 449, + "name": { + "english": "Hippopotas", + "japanese": "ヒポポタス", + "chinese": "沙河马", + "french": "Hippopotas" + }, + "type": [ + "Ground" + ], + "base": { + "HP": 68, + "Attack": 72, + "Defense": 78, + "Sp. Attack": 38, + "Sp. Defense": 42, + "Speed": 32 + } + }, + { + "id": 450, + "name": { + "english": "Hippowdon", + "japanese": "カバルドン", + "chinese": "河马兽", + "french": "Hippodocus" + }, + "type": [ + "Ground" + ], + "base": { + "HP": 108, + "Attack": 112, + "Defense": 118, + "Sp. Attack": 68, + "Sp. Defense": 72, + "Speed": 47 + } + }, + { + "id": 451, + "name": { + "english": "Skorupi", + "japanese": "スコルピ", + "chinese": "钳尾蝎", + "french": "Rapion" + }, + "type": [ + "Poison", + "Bug" + ], + "base": { + "HP": 40, + "Attack": 50, + "Defense": 90, + "Sp. Attack": 30, + "Sp. Defense": 55, + "Speed": 65 + } + }, + { + "id": 452, + "name": { + "english": "Drapion", + "japanese": "ドラピオン", + "chinese": "龙王蝎", + "french": "Drascore" + }, + "type": [ + "Poison", + "Dark" + ], + "base": { + "HP": 70, + "Attack": 90, + "Defense": 110, + "Sp. Attack": 60, + "Sp. Defense": 75, + "Speed": 95 + } + }, + { + "id": 453, + "name": { + "english": "Croagunk", + "japanese": "グレッグル", + "chinese": "不良蛙", + "french": "Cradopaud" + }, + "type": [ + "Poison", + "Fighting" + ], + "base": { + "HP": 48, + "Attack": 61, + "Defense": 40, + "Sp. Attack": 61, + "Sp. Defense": 40, + "Speed": 50 + } + }, + { + "id": 454, + "name": { + "english": "Toxicroak", + "japanese": "ドクロッグ", + "chinese": "毒骷蛙", + "french": "Coatox" + }, + "type": [ + "Poison", + "Fighting" + ], + "base": { + "HP": 83, + "Attack": 106, + "Defense": 65, + "Sp. Attack": 86, + "Sp. Defense": 65, + "Speed": 85 + } + }, + { + "id": 455, + "name": { + "english": "Carnivine", + "japanese": "マスキッパ", + "chinese": "尖牙笼", + "french": "Vortente" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 74, + "Attack": 100, + "Defense": 72, + "Sp. Attack": 90, + "Sp. Defense": 72, + "Speed": 46 + } + }, + { + "id": 456, + "name": { + "english": "Finneon", + "japanese": "ケイコウオ", + "chinese": "荧光鱼", + "french": "Écayon" + }, + "type": [ + "Water" + ], + "base": { + "HP": 49, + "Attack": 49, + "Defense": 56, + "Sp. Attack": 49, + "Sp. Defense": 61, + "Speed": 66 + } + }, + { + "id": 457, + "name": { + "english": "Lumineon", + "japanese": "ネオラント", + "chinese": "霓虹鱼", + "french": "Luminéon" + }, + "type": [ + "Water" + ], + "base": { + "HP": 69, + "Attack": 69, + "Defense": 76, + "Sp. Attack": 69, + "Sp. Defense": 86, + "Speed": 91 + } + }, + { + "id": 458, + "name": { + "english": "Mantyke", + "japanese": "タマンタ", + "chinese": "小球飞鱼", + "french": "Babimanta" + }, + "type": [ + "Water", + "Flying" + ], + "base": { + "HP": 45, + "Attack": 20, + "Defense": 50, + "Sp. Attack": 60, + "Sp. Defense": 120, + "Speed": 50 + } + }, + { + "id": 459, + "name": { + "english": "Snover", + "japanese": "ユキカブリ", + "chinese": "雪笠怪", + "french": "Blizzi" + }, + "type": [ + "Grass", + "Ice" + ], + "base": { + "HP": 60, + "Attack": 62, + "Defense": 50, + "Sp. Attack": 62, + "Sp. Defense": 60, + "Speed": 40 + } + }, + { + "id": 460, + "name": { + "english": "Abomasnow", + "japanese": "ユキノオー", + "chinese": "暴雪王", + "french": "Blizzaroi" + }, + "type": [ + "Grass", + "Ice" + ], + "base": { + "HP": 90, + "Attack": 92, + "Defense": 75, + "Sp. Attack": 92, + "Sp. Defense": 85, + "Speed": 60 + } + }, + { + "id": 461, + "name": { + "english": "Weavile", + "japanese": "マニューラ", + "chinese": "玛狃拉", + "french": "Dimoret" + }, + "type": [ + "Dark", + "Ice" + ], + "base": { + "HP": 70, + "Attack": 120, + "Defense": 65, + "Sp. Attack": 45, + "Sp. Defense": 85, + "Speed": 125 + } + }, + { + "id": 462, + "name": { + "english": "Magnezone", + "japanese": "ジバコイル", + "chinese": "自爆磁怪", + "french": "Magnézone" + }, + "type": [ + "Electric", + "Steel" + ], + "base": { + "HP": 70, + "Attack": 70, + "Defense": 115, + "Sp. Attack": 130, + "Sp. Defense": 90, + "Speed": 60 + } + }, + { + "id": 463, + "name": { + "english": "Lickilicky", + "japanese": "ベロベルト", + "chinese": "大舌舔", + "french": "Coudlangue" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 110, + "Attack": 85, + "Defense": 95, + "Sp. Attack": 80, + "Sp. Defense": 95, + "Speed": 50 + } + }, + { + "id": 464, + "name": { + "english": "Rhyperior", + "japanese": "ドサイドン", + "chinese": "超甲狂犀", + "french": "Rhinastoc" + }, + "type": [ + "Ground", + "Rock" + ], + "base": { + "HP": 115, + "Attack": 140, + "Defense": 130, + "Sp. Attack": 55, + "Sp. Defense": 55, + "Speed": 40 + } + }, + { + "id": 465, + "name": { + "english": "Tangrowth", + "japanese": "モジャンボ", + "chinese": "巨蔓藤", + "french": "Bouldeneu" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 100, + "Attack": 100, + "Defense": 125, + "Sp. Attack": 110, + "Sp. Defense": 50, + "Speed": 50 + } + }, + { + "id": 466, + "name": { + "english": "Electivire", + "japanese": "エレキブル", + "chinese": "电击魔兽", + "french": "Élekable" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 75, + "Attack": 123, + "Defense": 67, + "Sp. Attack": 95, + "Sp. Defense": 85, + "Speed": 95 + } + }, + { + "id": 467, + "name": { + "english": "Magmortar", + "japanese": "ブーバーン", + "chinese": "鸭嘴炎兽", + "french": "Maganon" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 75, + "Attack": 95, + "Defense": 67, + "Sp. Attack": 125, + "Sp. Defense": 95, + "Speed": 83 + } + }, + { + "id": 468, + "name": { + "english": "Togekiss", + "japanese": "トゲキッス", + "chinese": "波克基斯", + "french": "Togekiss" + }, + "type": [ + "Fairy", + "Flying" + ], + "base": { + "HP": 85, + "Attack": 50, + "Defense": 95, + "Sp. Attack": 120, + "Sp. Defense": 115, + "Speed": 80 + } + }, + { + "id": 469, + "name": { + "english": "Yanmega", + "japanese": "メガヤンマ", + "chinese": "远古巨蜓", + "french": "Yanmega" + }, + "type": [ + "Bug", + "Flying" + ], + "base": { + "HP": 86, + "Attack": 76, + "Defense": 86, + "Sp. Attack": 116, + "Sp. Defense": 56, + "Speed": 95 + } + }, + { + "id": 470, + "name": { + "english": "Leafeon", + "japanese": "リーフィア", + "chinese": "叶伊布", + "french": "Phyllali" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 65, + "Attack": 110, + "Defense": 130, + "Sp. Attack": 60, + "Sp. Defense": 65, + "Speed": 95 + } + }, + { + "id": 471, + "name": { + "english": "Glaceon", + "japanese": "グレイシア", + "chinese": "冰伊布", + "french": "Givrali" + }, + "type": [ + "Ice" + ], + "base": { + "HP": 65, + "Attack": 60, + "Defense": 110, + "Sp. Attack": 130, + "Sp. Defense": 95, + "Speed": 65 + } + }, + { + "id": 472, + "name": { + "english": "Gliscor", + "japanese": "グライオン", + "chinese": "天蝎王", + "french": "Scorvol" + }, + "type": [ + "Ground", + "Flying" + ], + "base": { + "HP": 75, + "Attack": 95, + "Defense": 125, + "Sp. Attack": 45, + "Sp. Defense": 75, + "Speed": 95 + } + }, + { + "id": 473, + "name": { + "english": "Mamoswine", + "japanese": "マンムー", + "chinese": "象牙猪", + "french": "Mammochon" + }, + "type": [ + "Ice", + "Ground" + ], + "base": { + "HP": 110, + "Attack": 130, + "Defense": 80, + "Sp. Attack": 70, + "Sp. Defense": 60, + "Speed": 80 + } + }, + { + "id": 474, + "name": { + "english": "Porygon-Z", + "japanese": "ポリゴンZ", + "chinese": "多边兽Z", + "french": "Porygon-Z" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 85, + "Attack": 80, + "Defense": 70, + "Sp. Attack": 135, + "Sp. Defense": 75, + "Speed": 90 + } + }, + { + "id": 475, + "name": { + "english": "Gallade", + "japanese": "エルレイド", + "chinese": "艾路雷朵", + "french": "Gallame" + }, + "type": [ + "Psychic", + "Fighting" + ], + "base": { + "HP": 68, + "Attack": 125, + "Defense": 65, + "Sp. Attack": 65, + "Sp. Defense": 115, + "Speed": 80 + } + }, + { + "id": 476, + "name": { + "english": "Probopass", + "japanese": "ダイノーズ", + "chinese": "大朝北鼻", + "french": "Tarinorme" + }, + "type": [ + "Rock", + "Steel" + ], + "base": { + "HP": 60, + "Attack": 55, + "Defense": 145, + "Sp. Attack": 75, + "Sp. Defense": 150, + "Speed": 40 + } + }, + { + "id": 477, + "name": { + "english": "Dusknoir", + "japanese": "ヨノワール", + "chinese": "黑夜魔灵", + "french": "Noctunoir" + }, + "type": [ + "Ghost" + ], + "base": { + "HP": 45, + "Attack": 100, + "Defense": 135, + "Sp. Attack": 65, + "Sp. Defense": 135, + "Speed": 45 + } + }, + { + "id": 478, + "name": { + "english": "Froslass", + "japanese": "ユキメノコ", + "chinese": "雪妖女", + "french": "Momartik" + }, + "type": [ + "Ice", + "Ghost" + ], + "base": { + "HP": 70, + "Attack": 80, + "Defense": 70, + "Sp. Attack": 80, + "Sp. Defense": 70, + "Speed": 110 + } + }, + { + "id": 479, + "name": { + "english": "Rotom", + "japanese": "ロトム", + "chinese": "洛托姆", + "french": "Motisma" + }, + "type": [ + "Electric", + "Ghost" + ], + "base": { + "HP": 50, + "Attack": 50, + "Defense": 77, + "Sp. Attack": 95, + "Sp. Defense": 77, + "Speed": 91 + } + }, + { + "id": 480, + "name": { + "english": "Uxie", + "japanese": "ユクシー", + "chinese": "由克希", + "french": "Créhelf" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 75, + "Attack": 75, + "Defense": 130, + "Sp. Attack": 75, + "Sp. Defense": 130, + "Speed": 95 + } + }, + { + "id": 481, + "name": { + "english": "Mesprit", + "japanese": "エムリット", + "chinese": "艾姆利多", + "french": "Créfollet" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 80, + "Attack": 105, + "Defense": 105, + "Sp. Attack": 105, + "Sp. Defense": 105, + "Speed": 80 + } + }, + { + "id": 482, + "name": { + "english": "Azelf", + "japanese": "アグノム", + "chinese": "亚克诺姆", + "french": "Créfadet" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 75, + "Attack": 125, + "Defense": 70, + "Sp. Attack": 125, + "Sp. Defense": 70, + "Speed": 115 + } + }, + { + "id": 483, + "name": { + "english": "Dialga", + "japanese": "ディアルガ", + "chinese": "帝牙卢卡", + "french": "Dialga" + }, + "type": [ + "Steel", + "Dragon" + ], + "base": { + "HP": 100, + "Attack": 120, + "Defense": 120, + "Sp. Attack": 150, + "Sp. Defense": 100, + "Speed": 90 + } + }, + { + "id": 484, + "name": { + "english": "Palkia", + "japanese": "パルキア", + "chinese": "帕路奇亚", + "french": "Palkia" + }, + "type": [ + "Water", + "Dragon" + ], + "base": { + "HP": 90, + "Attack": 120, + "Defense": 100, + "Sp. Attack": 150, + "Sp. Defense": 120, + "Speed": 100 + } + }, + { + "id": 485, + "name": { + "english": "Heatran", + "japanese": "ヒードラン", + "chinese": "席多蓝恩", + "french": "Heatran" + }, + "type": [ + "Fire", + "Steel" + ], + "base": { + "HP": 91, + "Attack": 90, + "Defense": 106, + "Sp. Attack": 130, + "Sp. Defense": 106, + "Speed": 77 + } + }, + { + "id": 486, + "name": { + "english": "Regigigas", + "japanese": "レジギガス", + "chinese": "雷吉奇卡斯", + "french": "Regigigas" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 110, + "Attack": 160, + "Defense": 110, + "Sp. Attack": 80, + "Sp. Defense": 110, + "Speed": 100 + } + }, + { + "id": 487, + "name": { + "english": "Giratina", + "japanese": "ギラティナ", + "chinese": "骑拉帝纳", + "french": "Giratina" + }, + "type": [ + "Ghost", + "Dragon" + ], + "base": { + "HP": 150, + "Attack": 100, + "Defense": 120, + "Sp. Attack": 100, + "Sp. Defense": 120, + "Speed": 90 + } + }, + { + "id": 488, + "name": { + "english": "Cresselia", + "japanese": "クレセリア", + "chinese": "克雷色利亚", + "french": "Cresselia" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 120, + "Attack": 70, + "Defense": 120, + "Sp. Attack": 75, + "Sp. Defense": 130, + "Speed": 85 + } + }, + { + "id": 489, + "name": { + "english": "Phione", + "japanese": "フィオネ", + "chinese": "霏欧纳", + "french": "Phione" + }, + "type": [ + "Water" + ], + "base": { + "HP": 80, + "Attack": 80, + "Defense": 80, + "Sp. Attack": 80, + "Sp. Defense": 80, + "Speed": 80 + } + }, + { + "id": 490, + "name": { + "english": "Manaphy", + "japanese": "マナフィ", + "chinese": "玛纳霏", + "french": "Manaphy" + }, + "type": [ + "Water" + ], + "base": { + "HP": 100, + "Attack": 100, + "Defense": 100, + "Sp. Attack": 100, + "Sp. Defense": 100, + "Speed": 100 + } + }, + { + "id": 491, + "name": { + "english": "Darkrai", + "japanese": "ダークライ", + "chinese": "达克莱伊", + "french": "Darkrai" + }, + "type": [ + "Dark" + ], + "base": { + "HP": 70, + "Attack": 90, + "Defense": 90, + "Sp. Attack": 135, + "Sp. Defense": 90, + "Speed": 125 + } + }, + { + "id": 492, + "name": { + "english": "Shaymin", + "japanese": "シェイミ", + "chinese": "谢米", + "french": "Shaymin" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 100, + "Attack": 100, + "Defense": 100, + "Sp. Attack": 100, + "Sp. Defense": 100, + "Speed": 100 + } + }, + { + "id": 493, + "name": { + "english": "Arceus", + "japanese": "アルセウス", + "chinese": "阿尔宙斯", + "french": "Arceus" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 120, + "Attack": 120, + "Defense": 120, + "Sp. Attack": 120, + "Sp. Defense": 120, + "Speed": 120 + } + }, + { + "id": 494, + "name": { + "english": "Victini", + "japanese": "ビクティニ", + "chinese": "比克提尼", + "french": "Victini" + }, + "type": [ + "Psychic", + "Fire" + ], + "base": { + "HP": 100, + "Attack": 100, + "Defense": 100, + "Sp. Attack": 100, + "Sp. Defense": 100, + "Speed": 100 + } + }, + { + "id": 495, + "name": { + "english": "Snivy", + "japanese": "ツタージャ", + "chinese": "藤藤蛇", + "french": "Vipélierre" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 45, + "Attack": 45, + "Defense": 55, + "Sp. Attack": 45, + "Sp. Defense": 55, + "Speed": 63 + } + }, + { + "id": 496, + "name": { + "english": "Servine", + "japanese": "ジャノビー", + "chinese": "青藤蛇", + "french": "Lianaja" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 60, + "Attack": 60, + "Defense": 75, + "Sp. Attack": 60, + "Sp. Defense": 75, + "Speed": 83 + } + }, + { + "id": 497, + "name": { + "english": "Serperior", + "japanese": "ジャローダ", + "chinese": "君主蛇", + "french": "Majaspic" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 75, + "Attack": 75, + "Defense": 95, + "Sp. Attack": 75, + "Sp. Defense": 95, + "Speed": 113 + } + }, + { + "id": 498, + "name": { + "english": "Tepig", + "japanese": "ポカブ", + "chinese": "暖暖猪", + "french": "Gruikui" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 65, + "Attack": 63, + "Defense": 45, + "Sp. Attack": 45, + "Sp. Defense": 45, + "Speed": 45 + } + }, + { + "id": 499, + "name": { + "english": "Pignite", + "japanese": "チャオブー", + "chinese": "炒炒猪", + "french": "Grotichon" + }, + "type": [ + "Fire", + "Fighting" + ], + "base": { + "HP": 90, + "Attack": 93, + "Defense": 55, + "Sp. Attack": 70, + "Sp. Defense": 55, + "Speed": 55 + } + }, + { + "id": 500, + "name": { + "english": "Emboar", + "japanese": "エンブオー", + "chinese": "炎武王", + "french": "Roitiflam" + }, + "type": [ + "Fire", + "Fighting" + ], + "base": { + "HP": 110, + "Attack": 123, + "Defense": 65, + "Sp. Attack": 100, + "Sp. Defense": 65, + "Speed": 65 + } + }, + { + "id": 501, + "name": { + "english": "Oshawott", + "japanese": "ミジュマル", + "chinese": "水水獭", + "french": "Moustillon" + }, + "type": [ + "Water" + ], + "base": { + "HP": 55, + "Attack": 55, + "Defense": 45, + "Sp. Attack": 63, + "Sp. Defense": 45, + "Speed": 45 + } + }, + { + "id": 502, + "name": { + "english": "Dewott", + "japanese": "フタチマル", + "chinese": "双刃丸", + "french": "Mateloutre" + }, + "type": [ + "Water" + ], + "base": { + "HP": 75, + "Attack": 75, + "Defense": 60, + "Sp. Attack": 83, + "Sp. Defense": 60, + "Speed": 60 + } + }, + { + "id": 503, + "name": { + "english": "Samurott", + "japanese": "ダイケンキ", + "chinese": "大剑鬼", + "french": "Clamiral" + }, + "type": [ + "Water" + ], + "base": { + "HP": 95, + "Attack": 100, + "Defense": 85, + "Sp. Attack": 108, + "Sp. Defense": 70, + "Speed": 70 + } + }, + { + "id": 504, + "name": { + "english": "Patrat", + "japanese": "ミネズミ", + "chinese": "探探鼠", + "french": "Ratentif" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 45, + "Attack": 55, + "Defense": 39, + "Sp. Attack": 35, + "Sp. Defense": 39, + "Speed": 42 + } + }, + { + "id": 505, + "name": { + "english": "Watchog", + "japanese": "ミルホッグ", + "chinese": "步哨鼠", + "french": "Miradar" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 60, + "Attack": 85, + "Defense": 69, + "Sp. Attack": 60, + "Sp. Defense": 69, + "Speed": 77 + } + }, + { + "id": 506, + "name": { + "english": "Lillipup", + "japanese": "ヨーテリー", + "chinese": "小约克", + "french": "Ponchiot" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 45, + "Attack": 60, + "Defense": 45, + "Sp. Attack": 25, + "Sp. Defense": 45, + "Speed": 55 + } + }, + { + "id": 507, + "name": { + "english": "Herdier", + "japanese": "ハーデリア", + "chinese": "哈约克", + "french": "Ponchien" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 65, + "Attack": 80, + "Defense": 65, + "Sp. Attack": 35, + "Sp. Defense": 65, + "Speed": 60 + } + }, + { + "id": 508, + "name": { + "english": "Stoutland", + "japanese": "ムーランド", + "chinese": "长毛狗", + "french": "Mastouffe" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 85, + "Attack": 110, + "Defense": 90, + "Sp. Attack": 45, + "Sp. Defense": 90, + "Speed": 80 + } + }, + { + "id": 509, + "name": { + "english": "Purrloin", + "japanese": "チョロネコ", + "chinese": "扒手猫", + "french": "Chacripan" + }, + "type": [ + "Dark" + ], + "base": { + "HP": 41, + "Attack": 50, + "Defense": 37, + "Sp. Attack": 50, + "Sp. Defense": 37, + "Speed": 66 + } + }, + { + "id": 510, + "name": { + "english": "Liepard", + "japanese": "レパルダス", + "chinese": "酷豹", + "french": "Léopardus" + }, + "type": [ + "Dark" + ], + "base": { + "HP": 64, + "Attack": 88, + "Defense": 50, + "Sp. Attack": 88, + "Sp. Defense": 50, + "Speed": 106 + } + }, + { + "id": 511, + "name": { + "english": "Pansage", + "japanese": "ヤナップ", + "chinese": "花椰猴", + "french": "Feuillajou" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 50, + "Attack": 53, + "Defense": 48, + "Sp. Attack": 53, + "Sp. Defense": 48, + "Speed": 64 + } + }, + { + "id": 512, + "name": { + "english": "Simisage", + "japanese": "ヤナッキー", + "chinese": "花椰猿", + "french": "Feuiloutan" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 75, + "Attack": 98, + "Defense": 63, + "Sp. Attack": 98, + "Sp. Defense": 63, + "Speed": 101 + } + }, + { + "id": 513, + "name": { + "english": "Pansear", + "japanese": "バオップ", + "chinese": "爆香猴", + "french": "Flamajou" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 50, + "Attack": 53, + "Defense": 48, + "Sp. Attack": 53, + "Sp. Defense": 48, + "Speed": 64 + } + }, + { + "id": 514, + "name": { + "english": "Simisear", + "japanese": "バオッキー", + "chinese": "爆香猿", + "french": "Flamoutan" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 75, + "Attack": 98, + "Defense": 63, + "Sp. Attack": 98, + "Sp. Defense": 63, + "Speed": 101 + } + }, + { + "id": 515, + "name": { + "english": "Panpour", + "japanese": "ヒヤップ", + "chinese": "冷水猴", + "french": "Flotajou" + }, + "type": [ + "Water" + ], + "base": { + "HP": 50, + "Attack": 53, + "Defense": 48, + "Sp. Attack": 53, + "Sp. Defense": 48, + "Speed": 64 + } + }, + { + "id": 516, + "name": { + "english": "Simipour", + "japanese": "ヒヤッキー", + "chinese": "冷水猿", + "french": "Flotoutan" + }, + "type": [ + "Water" + ], + "base": { + "HP": 75, + "Attack": 98, + "Defense": 63, + "Sp. Attack": 98, + "Sp. Defense": 63, + "Speed": 101 + } + }, + { + "id": 517, + "name": { + "english": "Munna", + "japanese": "ムンナ", + "chinese": "食梦梦", + "french": "Munna" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 76, + "Attack": 25, + "Defense": 45, + "Sp. Attack": 67, + "Sp. Defense": 55, + "Speed": 24 + } + }, + { + "id": 518, + "name": { + "english": "Musharna", + "japanese": "ムシャーナ", + "chinese": "梦梦蚀", + "french": "Mushana" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 116, + "Attack": 55, + "Defense": 85, + "Sp. Attack": 107, + "Sp. Defense": 95, + "Speed": 29 + } + }, + { + "id": 519, + "name": { + "english": "Pidove", + "japanese": "マメパト", + "chinese": "豆豆鸽", + "french": "Poichigeon" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 50, + "Attack": 55, + "Defense": 50, + "Sp. Attack": 36, + "Sp. Defense": 30, + "Speed": 43 + } + }, + { + "id": 520, + "name": { + "english": "Tranquill", + "japanese": "ハトーボー", + "chinese": "咕咕鸽", + "french": "Colombeau" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 62, + "Attack": 77, + "Defense": 62, + "Sp. Attack": 50, + "Sp. Defense": 42, + "Speed": 65 + } + }, + { + "id": 521, + "name": { + "english": "Unfezant", + "japanese": "ケンホロウ", + "chinese": "高傲雉鸡", + "french": "Déflaisan" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 80, + "Attack": 115, + "Defense": 80, + "Sp. Attack": 65, + "Sp. Defense": 55, + "Speed": 93 + } + }, + { + "id": 522, + "name": { + "english": "Blitzle", + "japanese": "シママ", + "chinese": "斑斑马", + "french": "Zébibron" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 45, + "Attack": 60, + "Defense": 32, + "Sp. Attack": 50, + "Sp. Defense": 32, + "Speed": 76 + } + }, + { + "id": 523, + "name": { + "english": "Zebstrika", + "japanese": "ゼブライカ", + "chinese": "雷电斑马", + "french": "Zéblitz" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 75, + "Attack": 100, + "Defense": 63, + "Sp. Attack": 80, + "Sp. Defense": 63, + "Speed": 116 + } + }, + { + "id": 524, + "name": { + "english": "Roggenrola", + "japanese": "ダンゴロ", + "chinese": "石丸子", + "french": "Nodulithe" + }, + "type": [ + "Rock" + ], + "base": { + "HP": 55, + "Attack": 75, + "Defense": 85, + "Sp. Attack": 25, + "Sp. Defense": 25, + "Speed": 15 + } + }, + { + "id": 525, + "name": { + "english": "Boldore", + "japanese": "ガントル", + "chinese": "地幔岩", + "french": "Géolithe" + }, + "type": [ + "Rock" + ], + "base": { + "HP": 70, + "Attack": 105, + "Defense": 105, + "Sp. Attack": 50, + "Sp. Defense": 40, + "Speed": 20 + } + }, + { + "id": 526, + "name": { + "english": "Gigalith", + "japanese": "ギガイアス", + "chinese": "庞岩怪", + "french": "Gigalithe" + }, + "type": [ + "Rock" + ], + "base": { + "HP": 85, + "Attack": 135, + "Defense": 130, + "Sp. Attack": 60, + "Sp. Defense": 80, + "Speed": 25 + } + }, + { + "id": 527, + "name": { + "english": "Woobat", + "japanese": "コロモリ", + "chinese": "滚滚蝙蝠", + "french": "Chovsourir" + }, + "type": [ + "Psychic", + "Flying" + ], + "base": { + "HP": 65, + "Attack": 45, + "Defense": 43, + "Sp. Attack": 55, + "Sp. Defense": 43, + "Speed": 72 + } + }, + { + "id": 528, + "name": { + "english": "Swoobat", + "japanese": "ココロモリ", + "chinese": "心蝙蝠", + "french": "Rhinolove" + }, + "type": [ + "Psychic", + "Flying" + ], + "base": { + "HP": 67, + "Attack": 57, + "Defense": 55, + "Sp. Attack": 77, + "Sp. Defense": 55, + "Speed": 114 + } + }, + { + "id": 529, + "name": { + "english": "Drilbur", + "japanese": "モグリュー", + "chinese": "螺钉地鼠", + "french": "Rototaupe" + }, + "type": [ + "Ground" + ], + "base": { + "HP": 60, + "Attack": 85, + "Defense": 40, + "Sp. Attack": 30, + "Sp. Defense": 45, + "Speed": 68 + } + }, + { + "id": 530, + "name": { + "english": "Excadrill", + "japanese": "ドリュウズ", + "chinese": "龙头地鼠", + "french": "Minotaupe" + }, + "type": [ + "Ground", + "Steel" + ], + "base": { + "HP": 110, + "Attack": 135, + "Defense": 60, + "Sp. Attack": 50, + "Sp. Defense": 65, + "Speed": 88 + } + }, + { + "id": 531, + "name": { + "english": "Audino", + "japanese": "タブンネ", + "chinese": "差不多娃娃", + "french": "Nanméouïe" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 103, + "Attack": 60, + "Defense": 86, + "Sp. Attack": 60, + "Sp. Defense": 86, + "Speed": 50 + } + }, + { + "id": 532, + "name": { + "english": "Timburr", + "japanese": "ドッコラー", + "chinese": "搬运小匠", + "french": "Charpenti" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 75, + "Attack": 80, + "Defense": 55, + "Sp. Attack": 25, + "Sp. Defense": 35, + "Speed": 35 + } + }, + { + "id": 533, + "name": { + "english": "Gurdurr", + "japanese": "ドテッコツ", + "chinese": "铁骨土人", + "french": "Ouvrifier" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 85, + "Attack": 105, + "Defense": 85, + "Sp. Attack": 40, + "Sp. Defense": 50, + "Speed": 40 + } + }, + { + "id": 534, + "name": { + "english": "Conkeldurr", + "japanese": "ローブシン", + "chinese": "修建老匠", + "french": "Bétochef" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 105, + "Attack": 140, + "Defense": 95, + "Sp. Attack": 55, + "Sp. Defense": 65, + "Speed": 45 + } + }, + { + "id": 535, + "name": { + "english": "Tympole", + "japanese": "オタマロ", + "chinese": "圆蝌蚪", + "french": "Tritonde" + }, + "type": [ + "Water" + ], + "base": { + "HP": 50, + "Attack": 50, + "Defense": 40, + "Sp. Attack": 50, + "Sp. Defense": 40, + "Speed": 64 + } + }, + { + "id": 536, + "name": { + "english": "Palpitoad", + "japanese": "ガマガル", + "chinese": "蓝蟾蜍", + "french": "Batracné" + }, + "type": [ + "Water", + "Ground" + ], + "base": { + "HP": 75, + "Attack": 65, + "Defense": 55, + "Sp. Attack": 65, + "Sp. Defense": 55, + "Speed": 69 + } + }, + { + "id": 537, + "name": { + "english": "Seismitoad", + "japanese": "ガマゲロゲ", + "chinese": "蟾蜍王", + "french": "Crapustule" + }, + "type": [ + "Water", + "Ground" + ], + "base": { + "HP": 105, + "Attack": 95, + "Defense": 75, + "Sp. Attack": 85, + "Sp. Defense": 75, + "Speed": 74 + } + }, + { + "id": 538, + "name": { + "english": "Throh", + "japanese": "ナゲキ", + "chinese": "投摔鬼", + "french": "Judokrak" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 120, + "Attack": 100, + "Defense": 85, + "Sp. Attack": 30, + "Sp. Defense": 85, + "Speed": 45 + } + }, + { + "id": 539, + "name": { + "english": "Sawk", + "japanese": "ダゲキ", + "chinese": "打击鬼", + "french": "Karaclée" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 75, + "Attack": 125, + "Defense": 75, + "Sp. Attack": 30, + "Sp. Defense": 75, + "Speed": 85 + } + }, + { + "id": 540, + "name": { + "english": "Sewaddle", + "japanese": "クルミル", + "chinese": "虫宝包", + "french": "Larveyette" + }, + "type": [ + "Bug", + "Grass" + ], + "base": { + "HP": 45, + "Attack": 53, + "Defense": 70, + "Sp. Attack": 40, + "Sp. Defense": 60, + "Speed": 42 + } + }, + { + "id": 541, + "name": { + "english": "Swadloon", + "japanese": "クルマユ", + "chinese": "宝包茧", + "french": "Couverdure" + }, + "type": [ + "Bug", + "Grass" + ], + "base": { + "HP": 55, + "Attack": 63, + "Defense": 90, + "Sp. Attack": 50, + "Sp. Defense": 80, + "Speed": 42 + } + }, + { + "id": 542, + "name": { + "english": "Leavanny", + "japanese": "ハハコモリ", + "chinese": "保姆虫", + "french": "Manternel" + }, + "type": [ + "Bug", + "Grass" + ], + "base": { + "HP": 75, + "Attack": 103, + "Defense": 80, + "Sp. Attack": 70, + "Sp. Defense": 80, + "Speed": 92 + } + }, + { + "id": 543, + "name": { + "english": "Venipede", + "japanese": "フシデ", + "chinese": "百足蜈蚣", + "french": "Venipatte" + }, + "type": [ + "Bug", + "Poison" + ], + "base": { + "HP": 30, + "Attack": 45, + "Defense": 59, + "Sp. Attack": 30, + "Sp. Defense": 39, + "Speed": 57 + } + }, + { + "id": 544, + "name": { + "english": "Whirlipede", + "japanese": "ホイーガ", + "chinese": "车轮球", + "french": "Scobolide" + }, + "type": [ + "Bug", + "Poison" + ], + "base": { + "HP": 40, + "Attack": 55, + "Defense": 99, + "Sp. Attack": 40, + "Sp. Defense": 79, + "Speed": 47 + } + }, + { + "id": 545, + "name": { + "english": "Scolipede", + "japanese": "ペンドラー", + "chinese": "蜈蚣王", + "french": "Brutapode" + }, + "type": [ + "Bug", + "Poison" + ], + "base": { + "HP": 60, + "Attack": 100, + "Defense": 89, + "Sp. Attack": 55, + "Sp. Defense": 69, + "Speed": 112 + } + }, + { + "id": 546, + "name": { + "english": "Cottonee", + "japanese": "モンメン", + "chinese": "木棉球", + "french": "Doudouvet" + }, + "type": [ + "Grass", + "Fairy" + ], + "base": { + "HP": 40, + "Attack": 27, + "Defense": 60, + "Sp. Attack": 37, + "Sp. Defense": 50, + "Speed": 66 + } + }, + { + "id": 547, + "name": { + "english": "Whimsicott", + "japanese": "エルフーン", + "chinese": "风妖精", + "french": "Farfaduvet" + }, + "type": [ + "Grass", + "Fairy" + ], + "base": { + "HP": 60, + "Attack": 67, + "Defense": 85, + "Sp. Attack": 77, + "Sp. Defense": 75, + "Speed": 116 + } + }, + { + "id": 548, + "name": { + "english": "Petilil", + "japanese": "チュリネ", + "chinese": "百合根娃娃", + "french": "Chlorobule" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 45, + "Attack": 35, + "Defense": 50, + "Sp. Attack": 70, + "Sp. Defense": 50, + "Speed": 30 + } + }, + { + "id": 549, + "name": { + "english": "Lilligant", + "japanese": "ドレディア", + "chinese": "裙儿小姐", + "french": "Fragilady" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 70, + "Attack": 60, + "Defense": 75, + "Sp. Attack": 110, + "Sp. Defense": 75, + "Speed": 90 + } + }, + { + "id": 550, + "name": { + "english": "Basculin", + "japanese": "バスラオ", + "chinese": "野蛮鲈鱼", + "french": "Bargantua" + }, + "type": [ + "Water" + ], + "base": { + "HP": 70, + "Attack": 92, + "Defense": 65, + "Sp. Attack": 80, + "Sp. Defense": 55, + "Speed": 98 + } + }, + { + "id": 551, + "name": { + "english": "Sandile", + "japanese": "メグロコ", + "chinese": "黑眼鳄", + "french": "Mascaïman" + }, + "type": [ + "Ground", + "Dark" + ], + "base": { + "HP": 50, + "Attack": 72, + "Defense": 35, + "Sp. Attack": 35, + "Sp. Defense": 35, + "Speed": 65 + } + }, + { + "id": 552, + "name": { + "english": "Krokorok", + "japanese": "ワルビル", + "chinese": "混混鳄", + "french": "Escroco" + }, + "type": [ + "Ground", + "Dark" + ], + "base": { + "HP": 60, + "Attack": 82, + "Defense": 45, + "Sp. Attack": 45, + "Sp. Defense": 45, + "Speed": 74 + } + }, + { + "id": 553, + "name": { + "english": "Krookodile", + "japanese": "ワルビアル", + "chinese": "流氓鳄", + "french": "Crocorible" + }, + "type": [ + "Ground", + "Dark" + ], + "base": { + "HP": 95, + "Attack": 117, + "Defense": 80, + "Sp. Attack": 65, + "Sp. Defense": 70, + "Speed": 92 + } + }, + { + "id": 554, + "name": { + "english": "Darumaka", + "japanese": "ダルマッカ", + "chinese": "火红不倒翁", + "french": "Darumarond" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 70, + "Attack": 90, + "Defense": 45, + "Sp. Attack": 15, + "Sp. Defense": 45, + "Speed": 50 + } + }, + { + "id": 555, + "name": { + "english": "Darmanitan", + "japanese": "ヒヒダルマ", + "chinese": "达摩狒狒", + "french": "Darumacho" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 105, + "Attack": 140, + "Defense": 55, + "Sp. Attack": 30, + "Sp. Defense": 55, + "Speed": 95 + } + }, + { + "id": 556, + "name": { + "english": "Maractus", + "japanese": "マラカッチ", + "chinese": "沙铃仙人掌", + "french": "Maracachi" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 75, + "Attack": 86, + "Defense": 67, + "Sp. Attack": 106, + "Sp. Defense": 67, + "Speed": 60 + } + }, + { + "id": 557, + "name": { + "english": "Dwebble", + "japanese": "イシズマイ", + "chinese": "石居蟹", + "french": "Crabicoque" + }, + "type": [ + "Bug", + "Rock" + ], + "base": { + "HP": 50, + "Attack": 65, + "Defense": 85, + "Sp. Attack": 35, + "Sp. Defense": 35, + "Speed": 55 + } + }, + { + "id": 558, + "name": { + "english": "Crustle", + "japanese": "イワパレス", + "chinese": "岩殿居蟹", + "french": "Crabaraque" + }, + "type": [ + "Bug", + "Rock" + ], + "base": { + "HP": 70, + "Attack": 105, + "Defense": 125, + "Sp. Attack": 65, + "Sp. Defense": 75, + "Speed": 45 + } + }, + { + "id": 559, + "name": { + "english": "Scraggy", + "japanese": "ズルッグ", + "chinese": "滑滑小子", + "french": "Baggiguane" + }, + "type": [ + "Dark", + "Fighting" + ], + "base": { + "HP": 50, + "Attack": 75, + "Defense": 70, + "Sp. Attack": 35, + "Sp. Defense": 70, + "Speed": 48 + } + }, + { + "id": 560, + "name": { + "english": "Scrafty", + "japanese": "ズルズキン", + "chinese": "头巾混混", + "french": "Baggaïd" + }, + "type": [ + "Dark", + "Fighting" + ], + "base": { + "HP": 65, + "Attack": 90, + "Defense": 115, + "Sp. Attack": 45, + "Sp. Defense": 115, + "Speed": 58 + } + }, + { + "id": 561, + "name": { + "english": "Sigilyph", + "japanese": "シンボラー", + "chinese": "象征鸟", + "french": "Cryptéro" + }, + "type": [ + "Psychic", + "Flying" + ], + "base": { + "HP": 72, + "Attack": 58, + "Defense": 80, + "Sp. Attack": 103, + "Sp. Defense": 80, + "Speed": 97 + } + }, + { + "id": 562, + "name": { + "english": "Yamask", + "japanese": "デスマス", + "chinese": "哭哭面具", + "french": "Tutafeh" + }, + "type": [ + "Ghost" + ], + "base": { + "HP": 38, + "Attack": 30, + "Defense": 85, + "Sp. Attack": 55, + "Sp. Defense": 65, + "Speed": 30 + } + }, + { + "id": 563, + "name": { + "english": "Cofagrigus", + "japanese": "デスカーン", + "chinese": "死神棺", + "french": "Tutankafer" + }, + "type": [ + "Ghost" + ], + "base": { + "HP": 58, + "Attack": 50, + "Defense": 145, + "Sp. Attack": 95, + "Sp. Defense": 105, + "Speed": 30 + } + }, + { + "id": 564, + "name": { + "english": "Tirtouga", + "japanese": "プロトーガ", + "chinese": "原盖海龟", + "french": "Carapagos" + }, + "type": [ + "Water", + "Rock" + ], + "base": { + "HP": 54, + "Attack": 78, + "Defense": 103, + "Sp. Attack": 53, + "Sp. Defense": 45, + "Speed": 22 + } + }, + { + "id": 565, + "name": { + "english": "Carracosta", + "japanese": "アバゴーラ", + "chinese": "肋骨海龟", + "french": "Mégapagos" + }, + "type": [ + "Water", + "Rock" + ], + "base": { + "HP": 74, + "Attack": 108, + "Defense": 133, + "Sp. Attack": 83, + "Sp. Defense": 65, + "Speed": 32 + } + }, + { + "id": 566, + "name": { + "english": "Archen", + "japanese": "アーケン", + "chinese": "始祖小鸟", + "french": "Arkéapti" + }, + "type": [ + "Rock", + "Flying" + ], + "base": { + "HP": 55, + "Attack": 112, + "Defense": 45, + "Sp. Attack": 74, + "Sp. Defense": 45, + "Speed": 70 + } + }, + { + "id": 567, + "name": { + "english": "Archeops", + "japanese": "アーケオス", + "chinese": "始祖大鸟", + "french": "Aéroptéryx" + }, + "type": [ + "Rock", + "Flying" + ], + "base": { + "HP": 75, + "Attack": 140, + "Defense": 65, + "Sp. Attack": 112, + "Sp. Defense": 65, + "Speed": 110 + } + }, + { + "id": 568, + "name": { + "english": "Trubbish", + "japanese": "ヤブクロン", + "chinese": "破破袋", + "french": "Miamiasme" + }, + "type": [ + "Poison" + ], + "base": { + "HP": 50, + "Attack": 50, + "Defense": 62, + "Sp. Attack": 40, + "Sp. Defense": 62, + "Speed": 65 + } + }, + { + "id": 569, + "name": { + "english": "Garbodor", + "japanese": "ダストダス", + "chinese": "灰尘山", + "french": "Miasmax" + }, + "type": [ + "Poison" + ], + "base": { + "HP": 80, + "Attack": 95, + "Defense": 82, + "Sp. Attack": 60, + "Sp. Defense": 82, + "Speed": 75 + } + }, + { + "id": 570, + "name": { + "english": "Zorua", + "japanese": "ゾロア", + "chinese": "索罗亚", + "french": "Zorua" + }, + "type": [ + "Dark" + ], + "base": { + "HP": 40, + "Attack": 65, + "Defense": 40, + "Sp. Attack": 80, + "Sp. Defense": 40, + "Speed": 65 + } + }, + { + "id": 571, + "name": { + "english": "Zoroark", + "japanese": "ゾロアーク", + "chinese": "索罗亚克", + "french": "Zoroark" + }, + "type": [ + "Dark" + ], + "base": { + "HP": 60, + "Attack": 105, + "Defense": 60, + "Sp. Attack": 120, + "Sp. Defense": 60, + "Speed": 105 + } + }, + { + "id": 572, + "name": { + "english": "Minccino", + "japanese": "チラーミィ", + "chinese": "泡沫栗鼠", + "french": "Chinchidou" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 55, + "Attack": 50, + "Defense": 40, + "Sp. Attack": 40, + "Sp. Defense": 40, + "Speed": 75 + } + }, + { + "id": 573, + "name": { + "english": "Cinccino", + "japanese": "チラチーノ", + "chinese": "奇诺栗鼠", + "french": "Pashmilla" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 75, + "Attack": 95, + "Defense": 60, + "Sp. Attack": 65, + "Sp. Defense": 60, + "Speed": 115 + } + }, + { + "id": 574, + "name": { + "english": "Gothita", + "japanese": "ゴチム", + "chinese": "哥德宝宝", + "french": "Scrutella" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 45, + "Attack": 30, + "Defense": 50, + "Sp. Attack": 55, + "Sp. Defense": 65, + "Speed": 45 + } + }, + { + "id": 575, + "name": { + "english": "Gothorita", + "japanese": "ゴチミル", + "chinese": "哥德小童", + "french": "Mesmérella" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 60, + "Attack": 45, + "Defense": 70, + "Sp. Attack": 75, + "Sp. Defense": 85, + "Speed": 55 + } + }, + { + "id": 576, + "name": { + "english": "Gothitelle", + "japanese": "ゴチルゼル", + "chinese": "哥德小姐", + "french": "Sidérella" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 70, + "Attack": 55, + "Defense": 95, + "Sp. Attack": 95, + "Sp. Defense": 110, + "Speed": 65 + } + }, + { + "id": 577, + "name": { + "english": "Solosis", + "japanese": "ユニラン", + "chinese": "单卵细胞球", + "french": "Nucléos" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 45, + "Attack": 30, + "Defense": 40, + "Sp. Attack": 105, + "Sp. Defense": 50, + "Speed": 20 + } + }, + { + "id": 578, + "name": { + "english": "Duosion", + "japanese": "ダブラン", + "chinese": "双卵细胞球", + "french": "Méios" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 65, + "Attack": 40, + "Defense": 50, + "Sp. Attack": 125, + "Sp. Defense": 60, + "Speed": 30 + } + }, + { + "id": 579, + "name": { + "english": "Reuniclus", + "japanese": "ランクルス", + "chinese": "人造细胞卵", + "french": "Symbios" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 110, + "Attack": 65, + "Defense": 75, + "Sp. Attack": 125, + "Sp. Defense": 85, + "Speed": 30 + } + }, + { + "id": 580, + "name": { + "english": "Ducklett", + "japanese": "コアルヒー", + "chinese": "鸭宝宝", + "french": "Couaneton" + }, + "type": [ + "Water", + "Flying" + ], + "base": { + "HP": 62, + "Attack": 44, + "Defense": 50, + "Sp. Attack": 44, + "Sp. Defense": 50, + "Speed": 55 + } + }, + { + "id": 581, + "name": { + "english": "Swanna", + "japanese": "スワンナ", + "chinese": "舞天鹅", + "french": "Lakmécygne" + }, + "type": [ + "Water", + "Flying" + ], + "base": { + "HP": 75, + "Attack": 87, + "Defense": 63, + "Sp. Attack": 87, + "Sp. Defense": 63, + "Speed": 98 + } + }, + { + "id": 582, + "name": { + "english": "Vanillite", + "japanese": "バニプッチ", + "chinese": "迷你冰", + "french": "Sorbébé" + }, + "type": [ + "Ice" + ], + "base": { + "HP": 36, + "Attack": 50, + "Defense": 50, + "Sp. Attack": 65, + "Sp. Defense": 60, + "Speed": 44 + } + }, + { + "id": 583, + "name": { + "english": "Vanillish", + "japanese": "バニリッチ", + "chinese": "多多冰", + "french": "Sorboul" + }, + "type": [ + "Ice" + ], + "base": { + "HP": 51, + "Attack": 65, + "Defense": 65, + "Sp. Attack": 80, + "Sp. Defense": 75, + "Speed": 59 + } + }, + { + "id": 584, + "name": { + "english": "Vanilluxe", + "japanese": "バイバニラ", + "chinese": "双倍多多冰", + "french": "Sorbouboul" + }, + "type": [ + "Ice" + ], + "base": { + "HP": 71, + "Attack": 95, + "Defense": 85, + "Sp. Attack": 110, + "Sp. Defense": 95, + "Speed": 79 + } + }, + { + "id": 585, + "name": { + "english": "Deerling", + "japanese": "シキジカ", + "chinese": "四季鹿", + "french": "Vivaldaim" + }, + "type": [ + "Normal", + "Grass" + ], + "base": { + "HP": 60, + "Attack": 60, + "Defense": 50, + "Sp. Attack": 40, + "Sp. Defense": 50, + "Speed": 75 + } + }, + { + "id": 586, + "name": { + "english": "Sawsbuck", + "japanese": "メブキジカ", + "chinese": "萌芽鹿", + "french": "Haydaim" + }, + "type": [ + "Normal", + "Grass" + ], + "base": { + "HP": 80, + "Attack": 100, + "Defense": 70, + "Sp. Attack": 60, + "Sp. Defense": 70, + "Speed": 95 + } + }, + { + "id": 587, + "name": { + "english": "Emolga", + "japanese": "エモンガ", + "chinese": "电飞鼠", + "french": "Emolga" + }, + "type": [ + "Electric", + "Flying" + ], + "base": { + "HP": 55, + "Attack": 75, + "Defense": 60, + "Sp. Attack": 75, + "Sp. Defense": 60, + "Speed": 103 + } + }, + { + "id": 588, + "name": { + "english": "Karrablast", + "japanese": "カブルモ", + "chinese": "盖盖虫", + "french": "Carabing" + }, + "type": [ + "Bug" + ], + "base": { + "HP": 50, + "Attack": 75, + "Defense": 45, + "Sp. Attack": 40, + "Sp. Defense": 45, + "Speed": 60 + } + }, + { + "id": 589, + "name": { + "english": "Escavalier", + "japanese": "シュバルゴ", + "chinese": "骑士蜗牛", + "french": "Lançargot" + }, + "type": [ + "Bug", + "Steel" + ], + "base": { + "HP": 70, + "Attack": 135, + "Defense": 105, + "Sp. Attack": 60, + "Sp. Defense": 105, + "Speed": 20 + } + }, + { + "id": 590, + "name": { + "english": "Foongus", + "japanese": "タマゲタケ", + "chinese": "哎呀球菇", + "french": "Trompignon" + }, + "type": [ + "Grass", + "Poison" + ], + "base": { + "HP": 69, + "Attack": 55, + "Defense": 45, + "Sp. Attack": 55, + "Sp. Defense": 55, + "Speed": 15 + } + }, + { + "id": 591, + "name": { + "english": "Amoonguss", + "japanese": "モロバレル", + "chinese": "败露球菇", + "french": "Gaulet" + }, + "type": [ + "Grass", + "Poison" + ], + "base": { + "HP": 114, + "Attack": 85, + "Defense": 70, + "Sp. Attack": 85, + "Sp. Defense": 80, + "Speed": 30 + } + }, + { + "id": 592, + "name": { + "english": "Frillish", + "japanese": "プルリル", + "chinese": "轻飘飘", + "french": "Viskuse" + }, + "type": [ + "Water", + "Ghost" + ], + "base": { + "HP": 55, + "Attack": 40, + "Defense": 50, + "Sp. Attack": 65, + "Sp. Defense": 85, + "Speed": 40 + } + }, + { + "id": 593, + "name": { + "english": "Jellicent", + "japanese": "ブルンゲル", + "chinese": "胖嘟嘟", + "french": "Moyade" + }, + "type": [ + "Water", + "Ghost" + ], + "base": { + "HP": 100, + "Attack": 60, + "Defense": 70, + "Sp. Attack": 85, + "Sp. Defense": 105, + "Speed": 60 + } + }, + { + "id": 594, + "name": { + "english": "Alomomola", + "japanese": "ママンボウ", + "chinese": "保姆曼波", + "french": "Mamanbo" + }, + "type": [ + "Water" + ], + "base": { + "HP": 165, + "Attack": 75, + "Defense": 80, + "Sp. Attack": 40, + "Sp. Defense": 45, + "Speed": 65 + } + }, + { + "id": 595, + "name": { + "english": "Joltik", + "japanese": "バチュル", + "chinese": "电电虫", + "french": "Statitik" + }, + "type": [ + "Bug", + "Electric" + ], + "base": { + "HP": 50, + "Attack": 47, + "Defense": 50, + "Sp. Attack": 57, + "Sp. Defense": 50, + "Speed": 65 + } + }, + { + "id": 596, + "name": { + "english": "Galvantula", + "japanese": "デンチュラ", + "chinese": "电蜘蛛", + "french": "Mygavolt" + }, + "type": [ + "Bug", + "Electric" + ], + "base": { + "HP": 70, + "Attack": 77, + "Defense": 60, + "Sp. Attack": 97, + "Sp. Defense": 60, + "Speed": 108 + } + }, + { + "id": 597, + "name": { + "english": "Ferroseed", + "japanese": "テッシード", + "chinese": "种子铁球", + "french": "Grindur" + }, + "type": [ + "Grass", + "Steel" + ], + "base": { + "HP": 44, + "Attack": 50, + "Defense": 91, + "Sp. Attack": 24, + "Sp. Defense": 86, + "Speed": 10 + } + }, + { + "id": 598, + "name": { + "english": "Ferrothorn", + "japanese": "ナットレイ", + "chinese": "坚果哑铃", + "french": "Noacier" + }, + "type": [ + "Grass", + "Steel" + ], + "base": { + "HP": 74, + "Attack": 94, + "Defense": 131, + "Sp. Attack": 54, + "Sp. Defense": 116, + "Speed": 20 + } + }, + { + "id": 599, + "name": { + "english": "Klink", + "japanese": "ギアル", + "chinese": "齿轮儿", + "french": "Tic" + }, + "type": [ + "Steel" + ], + "base": { + "HP": 40, + "Attack": 55, + "Defense": 70, + "Sp. Attack": 45, + "Sp. Defense": 60, + "Speed": 30 + } + }, + { + "id": 600, + "name": { + "english": "Klang", + "japanese": "ギギアル", + "chinese": "齿轮组", + "french": "Clic" + }, + "type": [ + "Steel" + ], + "base": { + "HP": 60, + "Attack": 80, + "Defense": 95, + "Sp. Attack": 70, + "Sp. Defense": 85, + "Speed": 50 + } + }, + { + "id": 601, + "name": { + "english": "Klinklang", + "japanese": "ギギギアル", + "chinese": "齿轮怪", + "french": "Cliticlic" + }, + "type": [ + "Steel" + ], + "base": { + "HP": 60, + "Attack": 100, + "Defense": 115, + "Sp. Attack": 70, + "Sp. Defense": 85, + "Speed": 90 + } + }, + { + "id": 602, + "name": { + "english": "Tynamo", + "japanese": "シビシラス", + "chinese": "麻麻小鱼", + "french": "Anchwatt" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 35, + "Attack": 55, + "Defense": 40, + "Sp. Attack": 45, + "Sp. Defense": 40, + "Speed": 60 + } + }, + { + "id": 603, + "name": { + "english": "Eelektrik", + "japanese": "シビビール", + "chinese": "麻麻鳗", + "french": "Lampéroie" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 65, + "Attack": 85, + "Defense": 70, + "Sp. Attack": 75, + "Sp. Defense": 70, + "Speed": 40 + } + }, + { + "id": 604, + "name": { + "english": "Eelektross", + "japanese": "シビルドン", + "chinese": "麻麻鳗鱼王", + "french": "Ohmassacre" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 85, + "Attack": 115, + "Defense": 80, + "Sp. Attack": 105, + "Sp. Defense": 80, + "Speed": 50 + } + }, + { + "id": 605, + "name": { + "english": "Elgyem", + "japanese": "リグレー", + "chinese": "小灰怪", + "french": "Lewsor" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 55, + "Attack": 55, + "Defense": 55, + "Sp. Attack": 85, + "Sp. Defense": 55, + "Speed": 30 + } + }, + { + "id": 606, + "name": { + "english": "Beheeyem", + "japanese": "オーベム", + "chinese": "大宇怪", + "french": "Neitram" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 75, + "Attack": 75, + "Defense": 75, + "Sp. Attack": 125, + "Sp. Defense": 95, + "Speed": 40 + } + }, + { + "id": 607, + "name": { + "english": "Litwick", + "japanese": "ヒトモシ", + "chinese": "烛光灵", + "french": "Funécire" + }, + "type": [ + "Ghost", + "Fire" + ], + "base": { + "HP": 50, + "Attack": 30, + "Defense": 55, + "Sp. Attack": 65, + "Sp. Defense": 55, + "Speed": 20 + } + }, + { + "id": 608, + "name": { + "english": "Lampent", + "japanese": "ランプラー", + "chinese": "灯火幽灵", + "french": "Mélancolux" + }, + "type": [ + "Ghost", + "Fire" + ], + "base": { + "HP": 60, + "Attack": 40, + "Defense": 60, + "Sp. Attack": 95, + "Sp. Defense": 60, + "Speed": 55 + } + }, + { + "id": 609, + "name": { + "english": "Chandelure", + "japanese": "シャンデラ", + "chinese": "水晶灯火灵", + "french": "Lugulabre" + }, + "type": [ + "Ghost", + "Fire" + ], + "base": { + "HP": 60, + "Attack": 55, + "Defense": 90, + "Sp. Attack": 145, + "Sp. Defense": 90, + "Speed": 80 + } + }, + { + "id": 610, + "name": { + "english": "Axew", + "japanese": "キバゴ", + "chinese": "牙牙", + "french": "Coupenotte" + }, + "type": [ + "Dragon" + ], + "base": { + "HP": 46, + "Attack": 87, + "Defense": 60, + "Sp. Attack": 30, + "Sp. Defense": 40, + "Speed": 57 + } + }, + { + "id": 611, + "name": { + "english": "Fraxure", + "japanese": "オノンド", + "chinese": "斧牙龙", + "french": "Incisache" + }, + "type": [ + "Dragon" + ], + "base": { + "HP": 66, + "Attack": 117, + "Defense": 70, + "Sp. Attack": 40, + "Sp. Defense": 50, + "Speed": 67 + } + }, + { + "id": 612, + "name": { + "english": "Haxorus", + "japanese": "オノノクス", + "chinese": "双斧战龙", + "french": "Tranchodon" + }, + "type": [ + "Dragon" + ], + "base": { + "HP": 76, + "Attack": 147, + "Defense": 90, + "Sp. Attack": 60, + "Sp. Defense": 70, + "Speed": 97 + } + }, + { + "id": 613, + "name": { + "english": "Cubchoo", + "japanese": "クマシュン", + "chinese": "喷嚏熊", + "french": "Polarhume" + }, + "type": [ + "Ice" + ], + "base": { + "HP": 55, + "Attack": 70, + "Defense": 40, + "Sp. Attack": 60, + "Sp. Defense": 40, + "Speed": 40 + } + }, + { + "id": 614, + "name": { + "english": "Beartic", + "japanese": "ツンベアー", + "chinese": "冻原熊", + "french": "Polagriffe" + }, + "type": [ + "Ice" + ], + "base": { + "HP": 95, + "Attack": 130, + "Defense": 80, + "Sp. Attack": 70, + "Sp. Defense": 80, + "Speed": 50 + } + }, + { + "id": 615, + "name": { + "english": "Cryogonal", + "japanese": "フリージオ", + "chinese": "几何雪花", + "french": "Hexagel" + }, + "type": [ + "Ice" + ], + "base": { + "HP": 80, + "Attack": 50, + "Defense": 50, + "Sp. Attack": 95, + "Sp. Defense": 135, + "Speed": 105 + } + }, + { + "id": 616, + "name": { + "english": "Shelmet", + "japanese": "チョボマキ", + "chinese": "小嘴蜗", + "french": "Escargaume" + }, + "type": [ + "Bug" + ], + "base": { + "HP": 50, + "Attack": 40, + "Defense": 85, + "Sp. Attack": 40, + "Sp. Defense": 65, + "Speed": 25 + } + }, + { + "id": 617, + "name": { + "english": "Accelgor", + "japanese": "アギルダー", + "chinese": "敏捷虫", + "french": "Limaspeed" + }, + "type": [ + "Bug" + ], + "base": { + "HP": 80, + "Attack": 70, + "Defense": 40, + "Sp. Attack": 100, + "Sp. Defense": 60, + "Speed": 145 + } + }, + { + "id": 618, + "name": { + "english": "Stunfisk", + "japanese": "マッギョ", + "chinese": "泥巴鱼", + "french": "Limonde" + }, + "type": [ + "Ground", + "Electric" + ], + "base": { + "HP": 109, + "Attack": 66, + "Defense": 84, + "Sp. Attack": 81, + "Sp. Defense": 99, + "Speed": 32 + } + }, + { + "id": 619, + "name": { + "english": "Mienfoo", + "japanese": "コジョフー", + "chinese": "功夫鼬", + "french": "Kungfouine" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 45, + "Attack": 85, + "Defense": 50, + "Sp. Attack": 55, + "Sp. Defense": 50, + "Speed": 65 + } + }, + { + "id": 620, + "name": { + "english": "Mienshao", + "japanese": "コジョンド", + "chinese": "师父鼬", + "french": "Shaofouine" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 65, + "Attack": 125, + "Defense": 60, + "Sp. Attack": 95, + "Sp. Defense": 60, + "Speed": 105 + } + }, + { + "id": 621, + "name": { + "english": "Druddigon", + "japanese": "クリムガン", + "chinese": "赤面龙", + "french": "Drakkarmin" + }, + "type": [ + "Dragon" + ], + "base": { + "HP": 77, + "Attack": 120, + "Defense": 90, + "Sp. Attack": 60, + "Sp. Defense": 90, + "Speed": 48 + } + }, + { + "id": 622, + "name": { + "english": "Golett", + "japanese": "ゴビット", + "chinese": "泥偶小人", + "french": "Gringolem" + }, + "type": [ + "Ground", + "Ghost" + ], + "base": { + "HP": 59, + "Attack": 74, + "Defense": 50, + "Sp. Attack": 35, + "Sp. Defense": 50, + "Speed": 35 + } + }, + { + "id": 623, + "name": { + "english": "Golurk", + "japanese": "ゴルーグ", + "chinese": "泥偶巨人", + "french": "Golemastoc" + }, + "type": [ + "Ground", + "Ghost" + ], + "base": { + "HP": 89, + "Attack": 124, + "Defense": 80, + "Sp. Attack": 55, + "Sp. Defense": 80, + "Speed": 55 + } + }, + { + "id": 624, + "name": { + "english": "Pawniard", + "japanese": "コマタナ", + "chinese": "驹刀小兵", + "french": "Scalpion" + }, + "type": [ + "Dark", + "Steel" + ], + "base": { + "HP": 45, + "Attack": 85, + "Defense": 70, + "Sp. Attack": 40, + "Sp. Defense": 40, + "Speed": 60 + } + }, + { + "id": 625, + "name": { + "english": "Bisharp", + "japanese": "キリキザン", + "chinese": "劈斩司令", + "french": "Scalproie" + }, + "type": [ + "Dark", + "Steel" + ], + "base": { + "HP": 65, + "Attack": 125, + "Defense": 100, + "Sp. Attack": 60, + "Sp. Defense": 70, + "Speed": 70 + } + }, + { + "id": 626, + "name": { + "english": "Bouffalant", + "japanese": "バッフロン", + "chinese": "爆炸头水牛", + "french": "Frison" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 95, + "Attack": 110, + "Defense": 95, + "Sp. Attack": 40, + "Sp. Defense": 95, + "Speed": 55 + } + }, + { + "id": 627, + "name": { + "english": "Rufflet", + "japanese": "ワシボン", + "chinese": "毛头小鹰", + "french": "Furaiglon" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 70, + "Attack": 83, + "Defense": 50, + "Sp. Attack": 37, + "Sp. Defense": 50, + "Speed": 60 + } + }, + { + "id": 628, + "name": { + "english": "Braviary", + "japanese": "ウォーグル", + "chinese": "勇士雄鹰", + "french": "Gueriaigle" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 100, + "Attack": 123, + "Defense": 75, + "Sp. Attack": 57, + "Sp. Defense": 75, + "Speed": 80 + } + }, + { + "id": 629, + "name": { + "english": "Vullaby", + "japanese": "バルチャイ", + "chinese": "秃鹰丫头", + "french": "Vostourno" + }, + "type": [ + "Dark", + "Flying" + ], + "base": { + "HP": 70, + "Attack": 55, + "Defense": 75, + "Sp. Attack": 45, + "Sp. Defense": 65, + "Speed": 60 + } + }, + { + "id": 630, + "name": { + "english": "Mandibuzz", + "japanese": "バルジーナ", + "chinese": "秃鹰娜", + "french": "Vaututrice" + }, + "type": [ + "Dark", + "Flying" + ], + "base": { + "HP": 110, + "Attack": 65, + "Defense": 105, + "Sp. Attack": 55, + "Sp. Defense": 95, + "Speed": 80 + } + }, + { + "id": 631, + "name": { + "english": "Heatmor", + "japanese": "クイタラン", + "chinese": "熔蚁兽", + "french": "Aflamanoir" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 85, + "Attack": 97, + "Defense": 66, + "Sp. Attack": 105, + "Sp. Defense": 66, + "Speed": 65 + } + }, + { + "id": 632, + "name": { + "english": "Durant", + "japanese": "アイアント", + "chinese": "铁蚁", + "french": "Fermite" + }, + "type": [ + "Bug", + "Steel" + ], + "base": { + "HP": 58, + "Attack": 109, + "Defense": 112, + "Sp. Attack": 48, + "Sp. Defense": 48, + "Speed": 109 + } + }, + { + "id": 633, + "name": { + "english": "Deino", + "japanese": "モノズ", + "chinese": "单首龙", + "french": "Solochi" + }, + "type": [ + "Dark", + "Dragon" + ], + "base": { + "HP": 52, + "Attack": 65, + "Defense": 50, + "Sp. Attack": 45, + "Sp. Defense": 50, + "Speed": 38 + } + }, + { + "id": 634, + "name": { + "english": "Zweilous", + "japanese": "ジヘッド", + "chinese": "双首暴龙", + "french": "Diamat" + }, + "type": [ + "Dark", + "Dragon" + ], + "base": { + "HP": 72, + "Attack": 85, + "Defense": 70, + "Sp. Attack": 65, + "Sp. Defense": 70, + "Speed": 58 + } + }, + { + "id": 635, + "name": { + "english": "Hydreigon", + "japanese": "サザンドラ", + "chinese": "三首恶龙", + "french": "Trioxhydre" + }, + "type": [ + "Dark", + "Dragon" + ], + "base": { + "HP": 92, + "Attack": 105, + "Defense": 90, + "Sp. Attack": 125, + "Sp. Defense": 90, + "Speed": 98 + } + }, + { + "id": 636, + "name": { + "english": "Larvesta", + "japanese": "メラルバ", + "chinese": "燃烧虫", + "french": "Pyronille" + }, + "type": [ + "Bug", + "Fire" + ], + "base": { + "HP": 55, + "Attack": 85, + "Defense": 55, + "Sp. Attack": 50, + "Sp. Defense": 55, + "Speed": 60 + } + }, + { + "id": 637, + "name": { + "english": "Volcarona", + "japanese": "ウルガモス", + "chinese": "火神蛾", + "french": "Pyrax" + }, + "type": [ + "Bug", + "Fire" + ], + "base": { + "HP": 85, + "Attack": 60, + "Defense": 65, + "Sp. Attack": 135, + "Sp. Defense": 105, + "Speed": 100 + } + }, + { + "id": 638, + "name": { + "english": "Cobalion", + "japanese": "コバルオン", + "chinese": "勾帕路翁", + "french": "Cobaltium" + }, + "type": [ + "Steel", + "Fighting" + ], + "base": { + "HP": 91, + "Attack": 90, + "Defense": 129, + "Sp. Attack": 90, + "Sp. Defense": 72, + "Speed": 108 + } + }, + { + "id": 639, + "name": { + "english": "Terrakion", + "japanese": "テラキオン", + "chinese": "代拉基翁", + "french": "Terrakium" + }, + "type": [ + "Rock", + "Fighting" + ], + "base": { + "HP": 91, + "Attack": 129, + "Defense": 90, + "Sp. Attack": 72, + "Sp. Defense": 90, + "Speed": 108 + } + }, + { + "id": 640, + "name": { + "english": "Virizion", + "japanese": "ビリジオン", + "chinese": "毕力吉翁", + "french": "Viridium" + }, + "type": [ + "Grass", + "Fighting" + ], + "base": { + "HP": 91, + "Attack": 90, + "Defense": 72, + "Sp. Attack": 90, + "Sp. Defense": 129, + "Speed": 108 + } + }, + { + "id": 641, + "name": { + "english": "Tornadus", + "japanese": "トルネロス", + "chinese": "龙卷云", + "french": "Boréas" + }, + "type": [ + "Flying" + ], + "base": { + "HP": 79, + "Attack": 115, + "Defense": 70, + "Sp. Attack": 125, + "Sp. Defense": 80, + "Speed": 111 + } + }, + { + "id": 642, + "name": { + "english": "Thundurus", + "japanese": "ボルトロス", + "chinese": "雷电云", + "french": "Fulguris" + }, + "type": [ + "Electric", + "Flying" + ], + "base": { + "HP": 79, + "Attack": 115, + "Defense": 70, + "Sp. Attack": 125, + "Sp. Defense": 80, + "Speed": 111 + } + }, + { + "id": 643, + "name": { + "english": "Reshiram", + "japanese": "レシラム", + "chinese": "莱希拉姆", + "french": "Reshiram" + }, + "type": [ + "Dragon", + "Fire" + ], + "base": { + "HP": 100, + "Attack": 120, + "Defense": 100, + "Sp. Attack": 150, + "Sp. Defense": 120, + "Speed": 90 + } + }, + { + "id": 644, + "name": { + "english": "Zekrom", + "japanese": "ゼクロム", + "chinese": "捷克罗姆", + "french": "Zekrom" + }, + "type": [ + "Dragon", + "Electric" + ], + "base": { + "HP": 100, + "Attack": 150, + "Defense": 120, + "Sp. Attack": 120, + "Sp. Defense": 100, + "Speed": 90 + } + }, + { + "id": 645, + "name": { + "english": "Landorus", + "japanese": "ランドロス", + "chinese": "土地云", + "french": "Démétéros" + }, + "type": [ + "Ground", + "Flying" + ], + "base": { + "HP": 89, + "Attack": 125, + "Defense": 90, + "Sp. Attack": 115, + "Sp. Defense": 80, + "Speed": 101 + } + }, + { + "id": 646, + "name": { + "english": "Kyurem", + "japanese": "キュレム", + "chinese": "酋雷姆", + "french": "Kyurem" + }, + "type": [ + "Dragon", + "Ice" + ], + "base": { + "HP": 125, + "Attack": 130, + "Defense": 90, + "Sp. Attack": 130, + "Sp. Defense": 90, + "Speed": 95 + } + }, + { + "id": 647, + "name": { + "english": "Keldeo", + "japanese": "ケルディオ", + "chinese": "凯路迪欧", + "french": "Keldeo" + }, + "type": [ + "Water", + "Fighting" + ], + "base": { + "HP": 91, + "Attack": 72, + "Defense": 90, + "Sp. Attack": 129, + "Sp. Defense": 90, + "Speed": 108 + } + }, + { + "id": 648, + "name": { + "english": "Meloetta", + "japanese": "メロエッタ", + "chinese": "美洛耶塔", + "french": "Meloetta" + }, + "type": [ + "Normal", + "Psychic" + ], + "base": { + "HP": 100, + "Attack": 77, + "Defense": 77, + "Sp. Attack": 128, + "Sp. Defense": 128, + "Speed": 90 + } + }, + { + "id": 649, + "name": { + "english": "Genesect", + "japanese": "ゲノセクト", + "chinese": "盖诺赛克特", + "french": "Genesect" + }, + "type": [ + "Bug", + "Steel" + ], + "base": { + "HP": 71, + "Attack": 120, + "Defense": 95, + "Sp. Attack": 120, + "Sp. Defense": 95, + "Speed": 99 + } + }, + { + "id": 650, + "name": { + "english": "Chespin", + "japanese": "ハリマロン", + "chinese": "哈力栗", + "french": "Marisson" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 56, + "Attack": 61, + "Defense": 65, + "Sp. Attack": 48, + "Sp. Defense": 45, + "Speed": 38 + } + }, + { + "id": 651, + "name": { + "english": "Quilladin", + "japanese": "ハリボーグ", + "chinese": "胖胖哈力", + "french": "Boguérisse" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 61, + "Attack": 78, + "Defense": 95, + "Sp. Attack": 56, + "Sp. Defense": 58, + "Speed": 57 + } + }, + { + "id": 652, + "name": { + "english": "Chesnaught", + "japanese": "ブリガロン", + "chinese": "布里卡隆", + "french": "Blindépique" + }, + "type": [ + "Grass", + "Fighting" + ], + "base": { + "HP": 88, + "Attack": 107, + "Defense": 122, + "Sp. Attack": 74, + "Sp. Defense": 75, + "Speed": 64 + } + }, + { + "id": 653, + "name": { + "english": "Fennekin", + "japanese": "フォッコ", + "chinese": "火狐狸", + "french": "Feunnec" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 40, + "Attack": 45, + "Defense": 40, + "Sp. Attack": 62, + "Sp. Defense": 60, + "Speed": 60 + } + }, + { + "id": 654, + "name": { + "english": "Braixen", + "japanese": "テールナー", + "chinese": "长尾火狐", + "french": "Roussil" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 59, + "Attack": 59, + "Defense": 58, + "Sp. Attack": 90, + "Sp. Defense": 70, + "Speed": 73 + } + }, + { + "id": 655, + "name": { + "english": "Delphox", + "japanese": "マフォクシー", + "chinese": "妖火红狐", + "french": "Goupelin" + }, + "type": [ + "Fire", + "Psychic" + ], + "base": { + "HP": 75, + "Attack": 69, + "Defense": 72, + "Sp. Attack": 114, + "Sp. Defense": 100, + "Speed": 104 + } + }, + { + "id": 656, + "name": { + "english": "Froakie", + "japanese": "ケロマツ", + "chinese": "呱呱泡蛙", + "french": "Grenousse" + }, + "type": [ + "Water" + ], + "base": { + "HP": 41, + "Attack": 56, + "Defense": 40, + "Sp. Attack": 62, + "Sp. Defense": 44, + "Speed": 71 + } + }, + { + "id": 657, + "name": { + "english": "Frogadier", + "japanese": "ゲコガシラ", + "chinese": "呱头蛙", + "french": "Croâporal" + }, + "type": [ + "Water" + ], + "base": { + "HP": 54, + "Attack": 63, + "Defense": 52, + "Sp. Attack": 83, + "Sp. Defense": 56, + "Speed": 97 + } + }, + { + "id": 658, + "name": { + "english": "Greninja", + "japanese": "ゲッコウガ", + "chinese": "甲贺忍蛙", + "french": "Amphinobi" + }, + "type": [ + "Water", + "Dark" + ], + "base": { + "HP": 72, + "Attack": 95, + "Defense": 67, + "Sp. Attack": 103, + "Sp. Defense": 71, + "Speed": 122 + } + }, + { + "id": 659, + "name": { + "english": "Bunnelby", + "japanese": "ホルビー", + "chinese": "掘掘兔", + "french": "Sapereau" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 38, + "Attack": 36, + "Defense": 38, + "Sp. Attack": 32, + "Sp. Defense": 36, + "Speed": 57 + } + }, + { + "id": 660, + "name": { + "english": "Diggersby", + "japanese": "ホルード", + "chinese": "掘地兔", + "french": "Excavarenne" + }, + "type": [ + "Normal", + "Ground" + ], + "base": { + "HP": 85, + "Attack": 56, + "Defense": 77, + "Sp. Attack": 50, + "Sp. Defense": 77, + "Speed": 78 + } + }, + { + "id": 661, + "name": { + "english": "Fletchling", + "japanese": "ヤヤコマ", + "chinese": "小箭雀", + "french": "Passerouge" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 45, + "Attack": 50, + "Defense": 43, + "Sp. Attack": 40, + "Sp. Defense": 38, + "Speed": 62 + } + }, + { + "id": 662, + "name": { + "english": "Fletchinder", + "japanese": "ヒノヤコマ", + "chinese": "火箭雀", + "french": "Braisillon" + }, + "type": [ + "Fire", + "Flying" + ], + "base": { + "HP": 62, + "Attack": 73, + "Defense": 55, + "Sp. Attack": 56, + "Sp. Defense": 52, + "Speed": 84 + } + }, + { + "id": 663, + "name": { + "english": "Talonflame", + "japanese": "ファイアロー", + "chinese": "烈箭鹰", + "french": "Flambusard" + }, + "type": [ + "Fire", + "Flying" + ], + "base": { + "HP": 78, + "Attack": 81, + "Defense": 71, + "Sp. Attack": 74, + "Sp. Defense": 69, + "Speed": 126 + } + }, + { + "id": 664, + "name": { + "english": "Scatterbug", + "japanese": "コフキムシ", + "chinese": "粉蝶虫", + "french": "Lépidonille" + }, + "type": [ + "Bug" + ], + "base": { + "HP": 38, + "Attack": 35, + "Defense": 40, + "Sp. Attack": 27, + "Sp. Defense": 25, + "Speed": 35 + } + }, + { + "id": 665, + "name": { + "english": "Spewpa", + "japanese": "コフーライ", + "chinese": "粉蝶蛹", + "french": "Pérégrain" + }, + "type": [ + "Bug" + ], + "base": { + "HP": 45, + "Attack": 22, + "Defense": 60, + "Sp. Attack": 27, + "Sp. Defense": 30, + "Speed": 29 + } + }, + { + "id": 666, + "name": { + "english": "Vivillon", + "japanese": "ビビヨン", + "chinese": "彩粉蝶", + "french": "Prismillon" + }, + "type": [ + "Bug", + "Flying" + ], + "base": { + "HP": 80, + "Attack": 52, + "Defense": 50, + "Sp. Attack": 90, + "Sp. Defense": 50, + "Speed": 89 + } + }, + { + "id": 667, + "name": { + "english": "Litleo", + "japanese": "シシコ", + "chinese": "小狮狮", + "french": "Hélionceau" + }, + "type": [ + "Fire", + "Normal" + ], + "base": { + "HP": 62, + "Attack": 50, + "Defense": 58, + "Sp. Attack": 73, + "Sp. Defense": 54, + "Speed": 72 + } + }, + { + "id": 668, + "name": { + "english": "Pyroar", + "japanese": "カエンジシ", + "chinese": "火炎狮", + "french": "Némélios" + }, + "type": [ + "Fire", + "Normal" + ], + "base": { + "HP": 86, + "Attack": 68, + "Defense": 72, + "Sp. Attack": 109, + "Sp. Defense": 66, + "Speed": 106 + } + }, + { + "id": 669, + "name": { + "english": "Flabébé", + "japanese": "フラベベ", + "chinese": "花蓓蓓", + "french": "Flabébé" + }, + "type": [ + "Fairy" + ], + "base": { + "HP": 44, + "Attack": 38, + "Defense": 39, + "Sp. Attack": 61, + "Sp. Defense": 79, + "Speed": 42 + } + }, + { + "id": 670, + "name": { + "english": "Floette", + "japanese": "フラエッテ", + "chinese": "花叶蒂", + "french": "FLOETTE" + }, + "type": [ + "Fairy" + ], + "base": { + "HP": 54, + "Attack": 45, + "Defense": 47, + "Sp. Attack": 75, + "Sp. Defense": 98, + "Speed": 52 + } + }, + { + "id": 671, + "name": { + "english": "Florges", + "japanese": "フラージェス", + "chinese": "花洁夫人", + "french": "Florges" + }, + "type": [ + "Fairy" + ], + "base": { + "HP": 78, + "Attack": 65, + "Defense": 68, + "Sp. Attack": 112, + "Sp. Defense": 154, + "Speed": 75 + } + }, + { + "id": 672, + "name": { + "english": "Skiddo", + "japanese": "メェークル", + "chinese": "坐骑小羊", + "french": "Cabriolaine" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 66, + "Attack": 65, + "Defense": 48, + "Sp. Attack": 62, + "Sp. Defense": 57, + "Speed": 52 + } + }, + { + "id": 673, + "name": { + "english": "Gogoat", + "japanese": "ゴーゴート", + "chinese": "坐骑山羊", + "french": "Chevroum" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 123, + "Attack": 100, + "Defense": 62, + "Sp. Attack": 97, + "Sp. Defense": 81, + "Speed": 68 + } + }, + { + "id": 674, + "name": { + "english": "Pancham", + "japanese": "ヤンチャム", + "chinese": "顽皮熊猫", + "french": "Pandespiègle" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 67, + "Attack": 82, + "Defense": 62, + "Sp. Attack": 46, + "Sp. Defense": 48, + "Speed": 43 + } + }, + { + "id": 675, + "name": { + "english": "Pangoro", + "japanese": "ゴロンダ", + "chinese": "流氓熊猫", + "french": "Pandarbare" + }, + "type": [ + "Fighting", + "Dark" + ], + "base": { + "HP": 95, + "Attack": 124, + "Defense": 78, + "Sp. Attack": 69, + "Sp. Defense": 71, + "Speed": 58 + } + }, + { + "id": 676, + "name": { + "english": "Furfrou", + "japanese": "トリミアン", + "chinese": "多丽米亚", + "french": "Couafarel" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 75, + "Attack": 80, + "Defense": 60, + "Sp. Attack": 65, + "Sp. Defense": 90, + "Speed": 102 + } + }, + { + "id": 677, + "name": { + "english": "Espurr", + "japanese": "ニャスパー", + "chinese": "妙喵", + "french": "Psystigri" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 62, + "Attack": 48, + "Defense": 54, + "Sp. Attack": 63, + "Sp. Defense": 60, + "Speed": 68 + } + }, + { + "id": 678, + "name": { + "english": "Meowstic", + "japanese": "ニャオニクス", + "chinese": "超能妙喵", + "french": "Mistigrix" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 74, + "Attack": 48, + "Defense": 76, + "Sp. Attack": 83, + "Sp. Defense": 81, + "Speed": 104 + } + }, + { + "id": 679, + "name": { + "english": "Honedge", + "japanese": "ヒトツキ", + "chinese": "独剑鞘", + "french": "Monorpale" + }, + "type": [ + "Steel", + "Ghost" + ], + "base": { + "HP": 45, + "Attack": 80, + "Defense": 100, + "Sp. Attack": 35, + "Sp. Defense": 37, + "Speed": 28 + } + }, + { + "id": 680, + "name": { + "english": "Doublade", + "japanese": "ニダンギル", + "chinese": "双剑鞘", + "french": "Dimoclès" + }, + "type": [ + "Steel", + "Ghost" + ], + "base": { + "HP": 59, + "Attack": 110, + "Defense": 150, + "Sp. Attack": 45, + "Sp. Defense": 49, + "Speed": 35 + } + }, + { + "id": 681, + "name": { + "english": "Aegislash", + "japanese": "ギルガルド", + "chinese": "坚盾剑怪", + "french": "Exagide" + }, + "type": [ + "Steel", + "Ghost" + ], + "base": { + "HP": 60, + "Attack": 50, + "Defense": 150, + "Sp. Attack": 50, + "Sp. Defense": 150, + "Speed": 60 + } + }, + { + "id": 682, + "name": { + "english": "Spritzee", + "japanese": "シュシュプ", + "chinese": "粉香香", + "french": "Fluvetin" + }, + "type": [ + "Fairy" + ], + "base": { + "HP": 78, + "Attack": 52, + "Defense": 60, + "Sp. Attack": 63, + "Sp. Defense": 65, + "Speed": 23 + } + }, + { + "id": 683, + "name": { + "english": "Aromatisse", + "japanese": "フレフワン", + "chinese": "芳香精", + "french": "Cocotine" + }, + "type": [ + "Fairy" + ], + "base": { + "HP": 101, + "Attack": 72, + "Defense": 72, + "Sp. Attack": 99, + "Sp. Defense": 89, + "Speed": 29 + } + }, + { + "id": 684, + "name": { + "english": "Swirlix", + "japanese": "ペロッパフ", + "chinese": "绵绵泡芙", + "french": "Sucroquin" + }, + "type": [ + "Fairy" + ], + "base": { + "HP": 62, + "Attack": 48, + "Defense": 66, + "Sp. Attack": 59, + "Sp. Defense": 57, + "Speed": 49 + } + }, + { + "id": 685, + "name": { + "english": "Slurpuff", + "japanese": "ペロリーム", + "chinese": "胖甜妮", + "french": "Cupcanaille" + }, + "type": [ + "Fairy" + ], + "base": { + "HP": 82, + "Attack": 80, + "Defense": 86, + "Sp. Attack": 85, + "Sp. Defense": 75, + "Speed": 72 + } + }, + { + "id": 686, + "name": { + "english": "Inkay", + "japanese": "マーイーカ", + "chinese": "好啦鱿", + "french": "Sepiatop" + }, + "type": [ + "Dark", + "Psychic" + ], + "base": { + "HP": 53, + "Attack": 54, + "Defense": 53, + "Sp. Attack": 37, + "Sp. Defense": 46, + "Speed": 45 + } + }, + { + "id": 687, + "name": { + "english": "Malamar", + "japanese": "カラマネロ", + "chinese": "乌贼王", + "french": "Sepiatroce" + }, + "type": [ + "Dark", + "Psychic" + ], + "base": { + "HP": 86, + "Attack": 92, + "Defense": 88, + "Sp. Attack": 68, + "Sp. Defense": 75, + "Speed": 73 + } + }, + { + "id": 688, + "name": { + "english": "Binacle", + "japanese": "カメテテ", + "chinese": "龟脚脚", + "french": "Opermine" + }, + "type": [ + "Rock", + "Water" + ], + "base": { + "HP": 42, + "Attack": 52, + "Defense": 67, + "Sp. Attack": 39, + "Sp. Defense": 56, + "Speed": 50 + } + }, + { + "id": 689, + "name": { + "english": "Barbaracle", + "japanese": "ガメノデス", + "chinese": "龟足巨铠", + "french": "Golgopathe" + }, + "type": [ + "Rock", + "Water" + ], + "base": { + "HP": 72, + "Attack": 105, + "Defense": 115, + "Sp. Attack": 54, + "Sp. Defense": 86, + "Speed": 68 + } + }, + { + "id": 690, + "name": { + "english": "Skrelp", + "japanese": "クズモー", + "chinese": "垃垃藻", + "french": "Venalgue" + }, + "type": [ + "Poison", + "Water" + ], + "base": { + "HP": 50, + "Attack": 60, + "Defense": 60, + "Sp. Attack": 60, + "Sp. Defense": 60, + "Speed": 30 + } + }, + { + "id": 691, + "name": { + "english": "Dragalge", + "japanese": "ドラミドロ", + "chinese": "毒藻龙", + "french": "Kravarech" + }, + "type": [ + "Poison", + "Dragon" + ], + "base": { + "HP": 65, + "Attack": 75, + "Defense": 90, + "Sp. Attack": 97, + "Sp. Defense": 123, + "Speed": 44 + } + }, + { + "id": 692, + "name": { + "english": "Clauncher", + "japanese": "ウデッポウ", + "chinese": "铁臂枪虾", + "french": "Flingouste" + }, + "type": [ + "Water" + ], + "base": { + "HP": 50, + "Attack": 53, + "Defense": 62, + "Sp. Attack": 58, + "Sp. Defense": 63, + "Speed": 44 + } + }, + { + "id": 693, + "name": { + "english": "Clawitzer", + "japanese": "ブロスター", + "chinese": "钢炮臂虾", + "french": "Gamblast" + }, + "type": [ + "Water" + ], + "base": { + "HP": 71, + "Attack": 73, + "Defense": 88, + "Sp. Attack": 120, + "Sp. Defense": 89, + "Speed": 59 + } + }, + { + "id": 694, + "name": { + "english": "Helioptile", + "japanese": "エリキテル", + "chinese": "伞电蜥", + "french": "Galvaran" + }, + "type": [ + "Electric", + "Normal" + ], + "base": { + "HP": 44, + "Attack": 38, + "Defense": 33, + "Sp. Attack": 61, + "Sp. Defense": 43, + "Speed": 70 + } + }, + { + "id": 695, + "name": { + "english": "Heliolisk", + "japanese": "エレザード", + "chinese": "光电伞蜥", + "french": "Iguolta" + }, + "type": [ + "Electric", + "Normal" + ], + "base": { + "HP": 62, + "Attack": 55, + "Defense": 52, + "Sp. Attack": 109, + "Sp. Defense": 94, + "Speed": 109 + } + }, + { + "id": 696, + "name": { + "english": "Tyrunt", + "japanese": "チゴラス", + "chinese": "宝宝暴龙", + "french": "Ptyranidur" + }, + "type": [ + "Rock", + "Dragon" + ], + "base": { + "HP": 58, + "Attack": 89, + "Defense": 77, + "Sp. Attack": 45, + "Sp. Defense": 45, + "Speed": 48 + } + }, + { + "id": 697, + "name": { + "english": "Tyrantrum", + "japanese": "ガチゴラス", + "chinese": "怪颚龙", + "french": "Rexillius" + }, + "type": [ + "Rock", + "Dragon" + ], + "base": { + "HP": 82, + "Attack": 121, + "Defense": 119, + "Sp. Attack": 69, + "Sp. Defense": 59, + "Speed": 71 + } + }, + { + "id": 698, + "name": { + "english": "Amaura", + "japanese": "アマルス", + "chinese": "冰雪龙", + "french": "Amagara" + }, + "type": [ + "Rock", + "Ice" + ], + "base": { + "HP": 77, + "Attack": 59, + "Defense": 50, + "Sp. Attack": 67, + "Sp. Defense": 63, + "Speed": 46 + } + }, + { + "id": 699, + "name": { + "english": "Aurorus", + "japanese": "アマルルガ", + "chinese": "冰雪巨龙", + "french": "Dragmara" + }, + "type": [ + "Rock", + "Ice" + ], + "base": { + "HP": 123, + "Attack": 77, + "Defense": 72, + "Sp. Attack": 99, + "Sp. Defense": 92, + "Speed": 58 + } + }, + { + "id": 700, + "name": { + "english": "Sylveon", + "japanese": "ニンフィア", + "chinese": "仙子伊布", + "french": "Nymphali" + }, + "type": [ + "Fairy" + ], + "base": { + "HP": 95, + "Attack": 65, + "Defense": 65, + "Sp. Attack": 110, + "Sp. Defense": 130, + "Speed": 60 + } + }, + { + "id": 701, + "name": { + "english": "Hawlucha", + "japanese": "ルチャブル", + "chinese": "摔角鹰人", + "french": "Brutalibré" + }, + "type": [ + "Fighting", + "Flying" + ], + "base": { + "HP": 78, + "Attack": 92, + "Defense": 75, + "Sp. Attack": 74, + "Sp. Defense": 63, + "Speed": 118 + } + }, + { + "id": 702, + "name": { + "english": "Dedenne", + "japanese": "デデンネ", + "chinese": "咚咚鼠", + "french": "DEDENNE" + }, + "type": [ + "Electric", + "Fairy" + ], + "base": { + "HP": 67, + "Attack": 58, + "Defense": 57, + "Sp. Attack": 81, + "Sp. Defense": 67, + "Speed": 101 + } + }, + { + "id": 703, + "name": { + "english": "Carbink", + "japanese": "メレシー", + "chinese": "小碎钻", + "french": "Strassie" + }, + "type": [ + "Rock", + "Fairy" + ], + "base": { + "HP": 50, + "Attack": 50, + "Defense": 150, + "Sp. Attack": 50, + "Sp. Defense": 150, + "Speed": 50 + } + }, + { + "id": 704, + "name": { + "english": "Goomy", + "japanese": "ヌメラ", + "chinese": "黏黏宝", + "french": "Mucuscule" + }, + "type": [ + "Dragon" + ], + "base": { + "HP": 45, + "Attack": 50, + "Defense": 35, + "Sp. Attack": 55, + "Sp. Defense": 75, + "Speed": 40 + } + }, + { + "id": 705, + "name": { + "english": "Sliggoo", + "japanese": "ヌメイル", + "chinese": "黏美儿", + "french": "Colimucus" + }, + "type": [ + "Dragon" + ], + "base": { + "HP": 68, + "Attack": 75, + "Defense": 53, + "Sp. Attack": 83, + "Sp. Defense": 113, + "Speed": 60 + } + }, + { + "id": 706, + "name": { + "english": "Goodra", + "japanese": "ヌメルゴン", + "chinese": "黏美龙", + "french": "Muplodocus" + }, + "type": [ + "Dragon" + ], + "base": { + "HP": 90, + "Attack": 100, + "Defense": 70, + "Sp. Attack": 110, + "Sp. Defense": 150, + "Speed": 80 + } + }, + { + "id": 707, + "name": { + "english": "Klefki", + "japanese": "クレッフィ", + "chinese": "钥圈儿", + "french": "Trousselin" + }, + "type": [ + "Steel", + "Fairy" + ], + "base": { + "HP": 57, + "Attack": 80, + "Defense": 91, + "Sp. Attack": 80, + "Sp. Defense": 87, + "Speed": 75 + } + }, + { + "id": 708, + "name": { + "english": "Phantump", + "japanese": "ボクレー", + "chinese": "小木灵", + "french": "Brocélôme" + }, + "type": [ + "Ghost", + "Grass" + ], + "base": { + "HP": 43, + "Attack": 70, + "Defense": 48, + "Sp. Attack": 50, + "Sp. Defense": 60, + "Speed": 38 + } + }, + { + "id": 709, + "name": { + "english": "Trevenant", + "japanese": "オーロット", + "chinese": "朽木妖", + "french": "Desséliande" + }, + "type": [ + "Ghost", + "Grass" + ], + "base": { + "HP": 85, + "Attack": 110, + "Defense": 76, + "Sp. Attack": 65, + "Sp. Defense": 82, + "Speed": 56 + } + }, + { + "id": 710, + "name": { + "english": "Pumpkaboo", + "japanese": "バケッチャ", + "chinese": "南瓜精", + "french": "Pitrouille" + }, + "type": [ + "Ghost", + "Grass" + ], + "base": { + "HP": 59, + "Attack": 66, + "Defense": 70, + "Sp. Attack": 44, + "Sp. Defense": 55, + "Speed": 41 + } + }, + { + "id": 711, + "name": { + "english": "Gourgeist", + "japanese": "パンプジン", + "chinese": "南瓜怪人", + "french": "Banshitrouye" + }, + "type": [ + "Ghost", + "Grass" + ], + "base": { + "HP": 85, + "Attack": 100, + "Defense": 122, + "Sp. Attack": 58, + "Sp. Defense": 75, + "Speed": 54 + } + }, + { + "id": 712, + "name": { + "english": "Bergmite", + "japanese": "カチコール", + "chinese": "冰宝", + "french": "Grelaçon" + }, + "type": [ + "Ice" + ], + "base": { + "HP": 55, + "Attack": 69, + "Defense": 85, + "Sp. Attack": 32, + "Sp. Defense": 35, + "Speed": 28 + } + }, + { + "id": 713, + "name": { + "english": "Avalugg", + "japanese": "クレベース", + "chinese": "冰岩怪", + "french": "Séracrawl" + }, + "type": [ + "Ice" + ], + "base": { + "HP": 95, + "Attack": 117, + "Defense": 184, + "Sp. Attack": 44, + "Sp. Defense": 46, + "Speed": 28 + } + }, + { + "id": 714, + "name": { + "english": "Noibat", + "japanese": "オンバット", + "chinese": "嗡蝠", + "french": "Sonistrelle" + }, + "type": [ + "Flying", + "Dragon" + ], + "base": { + "HP": 40, + "Attack": 30, + "Defense": 35, + "Sp. Attack": 45, + "Sp. Defense": 40, + "Speed": 55 + } + }, + { + "id": 715, + "name": { + "english": "Noivern", + "japanese": "オンバーン", + "chinese": "音波龙", + "french": "Bruyverne" + }, + "type": [ + "Flying", + "Dragon" + ], + "base": { + "HP": 85, + "Attack": 70, + "Defense": 80, + "Sp. Attack": 97, + "Sp. Defense": 80, + "Speed": 123 + } + }, + { + "id": 716, + "name": { + "english": "Xerneas", + "japanese": "ゼルネアス", + "chinese": "哲尔尼亚斯", + "french": "Xerneas" + }, + "type": [ + "Fairy" + ], + "base": { + "HP": 126, + "Attack": 131, + "Defense": 95, + "Sp. Attack": 131, + "Sp. Defense": 98, + "Speed": 99 + } + }, + { + "id": 717, + "name": { + "english": "Yveltal", + "japanese": "イベルタル", + "chinese": "伊裴尔塔尔", + "french": "Yveltal" + }, + "type": [ + "Dark", + "Flying" + ], + "base": { + "HP": 126, + "Attack": 131, + "Defense": 95, + "Sp. Attack": 131, + "Sp. Defense": 98, + "Speed": 99 + } + }, + { + "id": 718, + "name": { + "english": "Zygarde", + "japanese": "ジガルデ", + "chinese": "基格尔德", + "french": "Zygarde" + }, + "type": [ + "Dragon", + "Ground" + ], + "base": { + "HP": 108, + "Attack": 100, + "Defense": 121, + "Sp. Attack": 81, + "Sp. Defense": 95, + "Speed": 95 + } + }, + { + "id": 719, + "name": { + "english": "Diancie", + "japanese": "ディアンシー", + "chinese": "蒂安希", + "french": "Diancie" + }, + "type": [ + "Rock", + "Fairy" + ], + "base": { + "HP": 50, + "Attack": 100, + "Defense": 150, + "Sp. Attack": 100, + "Sp. Defense": 150, + "Speed": 50 + } + }, + { + "id": 720, + "name": { + "english": "Hoopa", + "japanese": "フーパ", + "chinese": "胡帕", + "french": "Hoopa" + }, + "type": [ + "Psychic", + "Ghost" + ], + "base": { + "HP": 80, + "Attack": 110, + "Defense": 60, + "Sp. Attack": 150, + "Sp. Defense": 130, + "Speed": 70 + } + }, + { + "id": 721, + "name": { + "english": "Volcanion", + "japanese": "ボルケニオン", + "chinese": "波尔凯尼恩", + "french": "Volcanion" + }, + "type": [ + "Fire", + "Water" + ], + "base": { + "HP": 80, + "Attack": 110, + "Defense": 120, + "Sp. Attack": 130, + "Sp. Defense": 90, + "Speed": 70 + } + }, + { + "id": 722, + "name": { + "english": "Rowlet", + "japanese": "モクロー", + "chinese": "木木枭", + "french": "Brindibou" + }, + "type": [ + "Grass", + "Flying" + ], + "base": { + "HP": 68, + "Attack": 55, + "Defense": 55, + "Sp. Attack": 50, + "Sp. Defense": 50, + "Speed": 42 + } + }, + { + "id": 723, + "name": { + "english": "Dartrix", + "japanese": "フクスロー", + "chinese": "投羽枭", + "french": "Efflèche" + }, + "type": [ + "Grass", + "Flying" + ], + "base": { + "HP": 78, + "Attack": 75, + "Defense": 75, + "Sp. Attack": 70, + "Sp. Defense": 70, + "Speed": 52 + } + }, + { + "id": 724, + "name": { + "english": "Decidueye", + "japanese": "ジュナイパー", + "chinese": "狙射树枭", + "french": "Archéduc" + }, + "type": [ + "Grass", + "Ghost" + ], + "base": { + "HP": 78, + "Attack": 107, + "Defense": 75, + "Sp. Attack": 100, + "Sp. Defense": 100, + "Speed": 70 + } + }, + { + "id": 725, + "name": { + "english": "Litten", + "japanese": "ニャビー", + "chinese": "火斑喵", + "french": "Flamiaou" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 45, + "Attack": 65, + "Defense": 40, + "Sp. Attack": 60, + "Sp. Defense": 40, + "Speed": 70 + } + }, + { + "id": 726, + "name": { + "english": "Torracat", + "japanese": "ニャヒート", + "chinese": "炎热喵", + "french": "Matoufeu" + }, + "type": [ + "Fire" + ], + "base": { + "HP": 65, + "Attack": 85, + "Defense": 50, + "Sp. Attack": 80, + "Sp. Defense": 50, + "Speed": 90 + } + }, + { + "id": 727, + "name": { + "english": "Incineroar", + "japanese": "ガオガエン", + "chinese": "炽焰咆哮虎", + "french": "Félinferno" + }, + "type": [ + "Fire", + "Dark" + ], + "base": { + "HP": 95, + "Attack": 115, + "Defense": 90, + "Sp. Attack": 80, + "Sp. Defense": 90, + "Speed": 60 + } + }, + { + "id": 728, + "name": { + "english": "Popplio", + "japanese": "アシマリ", + "chinese": "球球海狮", + "french": "Otaquin" + }, + "type": [ + "Water" + ], + "base": { + "HP": 50, + "Attack": 54, + "Defense": 54, + "Sp. Attack": 66, + "Sp. Defense": 56, + "Speed": 40 + } + }, + { + "id": 729, + "name": { + "english": "Brionne", + "japanese": "オシャマリ", + "chinese": "花漾海狮", + "french": "Otarlette" + }, + "type": [ + "Water" + ], + "base": { + "HP": 60, + "Attack": 69, + "Defense": 69, + "Sp. Attack": 91, + "Sp. Defense": 81, + "Speed": 50 + } + }, + { + "id": 730, + "name": { + "english": "Primarina", + "japanese": "アシレーヌ", + "chinese": "西狮海壬", + "french": "Oratoria" + }, + "type": [ + "Water", + "Fairy" + ], + "base": { + "HP": 80, + "Attack": 74, + "Defense": 74, + "Sp. Attack": 126, + "Sp. Defense": 116, + "Speed": 60 + } + }, + { + "id": 731, + "name": { + "english": "Pikipek", + "japanese": "ツツケラ", + "chinese": "小笃儿", + "french": "Picassaut" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 35, + "Attack": 75, + "Defense": 30, + "Sp. Attack": 30, + "Sp. Defense": 30, + "Speed": 65 + } + }, + { + "id": 732, + "name": { + "english": "Trumbeak", + "japanese": "ケララッパ", + "chinese": "喇叭啄鸟", + "french": "Piclairon" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 55, + "Attack": 85, + "Defense": 50, + "Sp. Attack": 40, + "Sp. Defense": 50, + "Speed": 75 + } + }, + { + "id": 733, + "name": { + "english": "Toucannon", + "japanese": "ドデカバシ", + "chinese": "铳嘴大鸟", + "french": "Bazoucan" + }, + "type": [ + "Normal", + "Flying" + ], + "base": { + "HP": 80, + "Attack": 120, + "Defense": 75, + "Sp. Attack": 75, + "Sp. Defense": 75, + "Speed": 60 + } + }, + { + "id": 734, + "name": { + "english": "Yungoos", + "japanese": "ヤングース", + "chinese": "猫鼬少", + "french": "Manglouton" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 48, + "Attack": 70, + "Defense": 30, + "Sp. Attack": 30, + "Sp. Defense": 30, + "Speed": 45 + } + }, + { + "id": 735, + "name": { + "english": "Gumshoos", + "japanese": "デカグース", + "chinese": "猫鼬探长", + "french": "Argouste" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 88, + "Attack": 110, + "Defense": 60, + "Sp. Attack": 55, + "Sp. Defense": 60, + "Speed": 45 + } + }, + { + "id": 736, + "name": { + "english": "Grubbin", + "japanese": "アゴジムシ", + "chinese": "强颚鸡母虫", + "french": "Larvibule" + }, + "type": [ + "Bug" + ], + "base": { + "HP": 47, + "Attack": 62, + "Defense": 45, + "Sp. Attack": 55, + "Sp. Defense": 45, + "Speed": 46 + } + }, + { + "id": 737, + "name": { + "english": "Charjabug", + "japanese": "デンヂムシ", + "chinese": "虫电宝", + "french": "Chrysapile" + }, + "type": [ + "Bug", + "Electric" + ], + "base": { + "HP": 57, + "Attack": 82, + "Defense": 95, + "Sp. Attack": 55, + "Sp. Defense": 75, + "Speed": 36 + } + }, + { + "id": 738, + "name": { + "english": "Vikavolt", + "japanese": "クワガノン", + "chinese": "锹农炮虫", + "french": "Lucanon" + }, + "type": [ + "Bug", + "Electric" + ], + "base": { + "HP": 77, + "Attack": 70, + "Defense": 90, + "Sp. Attack": 145, + "Sp. Defense": 75, + "Speed": 43 + } + }, + { + "id": 739, + "name": { + "english": "Crabrawler", + "japanese": "マケンカニ", + "chinese": "好胜蟹", + "french": "Crabagarre" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 47, + "Attack": 82, + "Defense": 57, + "Sp. Attack": 42, + "Sp. Defense": 47, + "Speed": 63 + } + }, + { + "id": 740, + "name": { + "english": "Crabominable", + "japanese": "ケケンカニ", + "chinese": "好胜毛蟹", + "french": "Crabominable" + }, + "type": [ + "Fighting", + "Ice" + ], + "base": { + "HP": 97, + "Attack": 132, + "Defense": 77, + "Sp. Attack": 62, + "Sp. Defense": 67, + "Speed": 43 + } + }, + { + "id": 741, + "name": { + "english": "Oricorio", + "japanese": "オドリドリ", + "chinese": "花舞鸟", + "french": "Plumeline" + }, + "type": [ + "Fire", + "Flying" + ], + "base": { + "HP": 75, + "Attack": 70, + "Defense": 70, + "Sp. Attack": 98, + "Sp. Defense": 70, + "Speed": 93 + } + }, + { + "id": 742, + "name": { + "english": "Cutiefly", + "japanese": "アブリー", + "chinese": "萌虻", + "french": "Bombydou" + }, + "type": [ + "Bug", + "Fairy" + ], + "base": { + "HP": 40, + "Attack": 45, + "Defense": 40, + "Sp. Attack": 55, + "Sp. Defense": 40, + "Speed": 84 + } + }, + { + "id": 743, + "name": { + "english": "Ribombee", + "japanese": "アブリボン", + "chinese": "蝶结萌虻", + "french": "Rubombelle" + }, + "type": [ + "Bug", + "Fairy" + ], + "base": { + "HP": 60, + "Attack": 55, + "Defense": 60, + "Sp. Attack": 95, + "Sp. Defense": 70, + "Speed": 124 + } + }, + { + "id": 744, + "name": { + "english": "Rockruff", + "japanese": "イワンコ", + "chinese": "岩狗狗", + "french": "Rocabot" + }, + "type": [ + "Rock" + ], + "base": { + "HP": 45, + "Attack": 65, + "Defense": 40, + "Sp. Attack": 30, + "Sp. Defense": 40, + "Speed": 60 + } + }, + { + "id": 745, + "name": { + "english": "Lycanroc", + "japanese": "ルガルガン", + "chinese": "鬃岩狼人", + "french": "Lougaroc" + }, + "type": [ + "Rock" + ], + "base": { + "HP": 75, + "Attack": 115, + "Defense": 65, + "Sp. Attack": 55, + "Sp. Defense": 65, + "Speed": 112 + } + }, + { + "id": 746, + "name": { + "english": "Wishiwashi", + "japanese": "ヨワシ", + "chinese": "弱丁鱼", + "french": "Froussardine" + }, + "type": [ + "Water" + ], + "base": { + "HP": 45, + "Attack": 20, + "Defense": 20, + "Sp. Attack": 25, + "Sp. Defense": 25, + "Speed": 40 + } + }, + { + "id": 747, + "name": { + "english": "Mareanie", + "japanese": "ヒドイデ", + "chinese": "好坏星", + "french": "Vorastérie" + }, + "type": [ + "Poison", + "Water" + ], + "base": { + "HP": 50, + "Attack": 53, + "Defense": 62, + "Sp. Attack": 43, + "Sp. Defense": 52, + "Speed": 45 + } + }, + { + "id": 748, + "name": { + "english": "Toxapex", + "japanese": "ドヒドイデ", + "chinese": "超坏星", + "french": "Prédastérie" + }, + "type": [ + "Poison", + "Water" + ], + "base": { + "HP": 50, + "Attack": 63, + "Defense": 152, + "Sp. Attack": 53, + "Sp. Defense": 142, + "Speed": 35 + } + }, + { + "id": 749, + "name": { + "english": "Mudbray", + "japanese": "ドロバンコ", + "chinese": "泥驴仔", + "french": "Tiboudet" + }, + "type": [ + "Ground" + ], + "base": { + "HP": 70, + "Attack": 100, + "Defense": 70, + "Sp. Attack": 45, + "Sp. Defense": 55, + "Speed": 45 + } + }, + { + "id": 750, + "name": { + "english": "Mudsdale", + "japanese": "バンバドロ", + "chinese": "重泥挽马", + "french": "Bourrinos" + }, + "type": [ + "Ground" + ], + "base": { + "HP": 100, + "Attack": 125, + "Defense": 100, + "Sp. Attack": 55, + "Sp. Defense": 85, + "Speed": 35 + } + }, + { + "id": 751, + "name": { + "english": "Dewpider", + "japanese": "シズクモ", + "chinese": "滴蛛", + "french": "Araqua" + }, + "type": [ + "Water", + "Bug" + ], + "base": { + "HP": 38, + "Attack": 40, + "Defense": 52, + "Sp. Attack": 40, + "Sp. Defense": 72, + "Speed": 27 + } + }, + { + "id": 752, + "name": { + "english": "Araquanid", + "japanese": "オニシズクモ", + "chinese": "滴蛛霸", + "french": "Tarenbulle" + }, + "type": [ + "Water", + "Bug" + ], + "base": { + "HP": 68, + "Attack": 70, + "Defense": 92, + "Sp. Attack": 50, + "Sp. Defense": 132, + "Speed": 42 + } + }, + { + "id": 753, + "name": { + "english": "Fomantis", + "japanese": "カリキリ", + "chinese": "伪螳草", + "french": "Mimantis" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 40, + "Attack": 55, + "Defense": 35, + "Sp. Attack": 50, + "Sp. Defense": 35, + "Speed": 35 + } + }, + { + "id": 754, + "name": { + "english": "Lurantis", + "japanese": "ラランテス", + "chinese": "兰螳花", + "french": "Floramantis" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 70, + "Attack": 105, + "Defense": 90, + "Sp. Attack": 80, + "Sp. Defense": 90, + "Speed": 45 + } + }, + { + "id": 755, + "name": { + "english": "Morelull", + "japanese": "ネマシュ", + "chinese": "睡睡菇", + "french": "Spododo" + }, + "type": [ + "Grass", + "Fairy" + ], + "base": { + "HP": 40, + "Attack": 35, + "Defense": 55, + "Sp. Attack": 65, + "Sp. Defense": 75, + "Speed": 15 + } + }, + { + "id": 756, + "name": { + "english": "Shiinotic", + "japanese": "マシェード", + "chinese": "灯罩夜菇", + "french": "Lampignon" + }, + "type": [ + "Grass", + "Fairy" + ], + "base": { + "HP": 60, + "Attack": 45, + "Defense": 80, + "Sp. Attack": 90, + "Sp. Defense": 100, + "Speed": 30 + } + }, + { + "id": 757, + "name": { + "english": "Salandit", + "japanese": "ヤトウモリ", + "chinese": "夜盗火蜥", + "french": "Tritox" + }, + "type": [ + "Poison", + "Fire" + ], + "base": { + "HP": 48, + "Attack": 44, + "Defense": 40, + "Sp. Attack": 71, + "Sp. Defense": 40, + "Speed": 77 + } + }, + { + "id": 758, + "name": { + "english": "Salazzle", + "japanese": "エンニュート", + "chinese": "焰后蜥", + "french": "Malamandre" + }, + "type": [ + "Poison", + "Fire" + ], + "base": { + "HP": 68, + "Attack": 64, + "Defense": 60, + "Sp. Attack": 111, + "Sp. Defense": 60, + "Speed": 117 + } + }, + { + "id": 759, + "name": { + "english": "Stufful", + "japanese": "ヌイコグマ", + "chinese": "童偶熊", + "french": "Nounourson" + }, + "type": [ + "Normal", + "Fighting" + ], + "base": { + "HP": 70, + "Attack": 75, + "Defense": 50, + "Sp. Attack": 45, + "Sp. Defense": 50, + "Speed": 50 + } + }, + { + "id": 760, + "name": { + "english": "Bewear", + "japanese": "キテルグマ", + "chinese": "穿着熊", + "french": "Chelours" + }, + "type": [ + "Normal", + "Fighting" + ], + "base": { + "HP": 120, + "Attack": 125, + "Defense": 80, + "Sp. Attack": 55, + "Sp. Defense": 60, + "Speed": 60 + } + }, + { + "id": 761, + "name": { + "english": "Bounsweet", + "japanese": "アマカジ", + "chinese": "甜竹竹", + "french": "Croquine" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 42, + "Attack": 30, + "Defense": 38, + "Sp. Attack": 30, + "Sp. Defense": 38, + "Speed": 32 + } + }, + { + "id": 762, + "name": { + "english": "Steenee", + "japanese": "アママイコ", + "chinese": "甜舞妮", + "french": "Candine" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 52, + "Attack": 40, + "Defense": 48, + "Sp. Attack": 40, + "Sp. Defense": 48, + "Speed": 62 + } + }, + { + "id": 763, + "name": { + "english": "Tsareena", + "japanese": "アマージョ", + "chinese": "甜冷美后", + "french": "Sucreine" + }, + "type": [ + "Grass" + ], + "base": { + "HP": 72, + "Attack": 120, + "Defense": 98, + "Sp. Attack": 50, + "Sp. Defense": 98, + "Speed": 72 + } + }, + { + "id": 764, + "name": { + "english": "Comfey", + "japanese": "キュワワー", + "chinese": "花疗环环", + "french": "Guérilande" + }, + "type": [ + "Fairy" + ], + "base": { + "HP": 51, + "Attack": 52, + "Defense": 90, + "Sp. Attack": 82, + "Sp. Defense": 110, + "Speed": 100 + } + }, + { + "id": 765, + "name": { + "english": "Oranguru", + "japanese": "ヤレユータン", + "chinese": "智挥猩", + "french": "Gouroutan" + }, + "type": [ + "Normal", + "Psychic" + ], + "base": { + "HP": 90, + "Attack": 60, + "Defense": 80, + "Sp. Attack": 90, + "Sp. Defense": 110, + "Speed": 60 + } + }, + { + "id": 766, + "name": { + "english": "Passimian", + "japanese": "ナゲツケサル", + "chinese": "投掷猴", + "french": "Quartermac" + }, + "type": [ + "Fighting" + ], + "base": { + "HP": 100, + "Attack": 120, + "Defense": 90, + "Sp. Attack": 40, + "Sp. Defense": 60, + "Speed": 80 + } + }, + { + "id": 767, + "name": { + "english": "Wimpod", + "japanese": "コソクムシ", + "chinese": "胆小虫", + "french": "Sovkipou" + }, + "type": [ + "Bug", + "Water" + ], + "base": { + "HP": 25, + "Attack": 35, + "Defense": 40, + "Sp. Attack": 20, + "Sp. Defense": 30, + "Speed": 80 + } + }, + { + "id": 768, + "name": { + "english": "Golisopod", + "japanese": "グソクムシャ", + "chinese": "具甲武者", + "french": "Sarmuraï" + }, + "type": [ + "Bug", + "Water" + ], + "base": { + "HP": 75, + "Attack": 125, + "Defense": 140, + "Sp. Attack": 60, + "Sp. Defense": 90, + "Speed": 40 + } + }, + { + "id": 769, + "name": { + "english": "Sandygast", + "japanese": "スナバァ", + "chinese": "沙丘娃", + "french": "Bacabouh" + }, + "type": [ + "Ghost", + "Ground" + ], + "base": { + "HP": 55, + "Attack": 55, + "Defense": 80, + "Sp. Attack": 70, + "Sp. Defense": 45, + "Speed": 15 + } + }, + { + "id": 770, + "name": { + "english": "Palossand", + "japanese": "シロデスナ", + "chinese": "噬沙堡爷", + "french": "Trépassable" + }, + "type": [ + "Ghost", + "Ground" + ], + "base": { + "HP": 85, + "Attack": 75, + "Defense": 110, + "Sp. Attack": 100, + "Sp. Defense": 75, + "Speed": 35 + } + }, + { + "id": 771, + "name": { + "english": "Pyukumuku", + "japanese": "ナマコブシ", + "chinese": "拳海参", + "french": "Concombaffe" + }, + "type": [ + "Water" + ], + "base": { + "HP": 55, + "Attack": 60, + "Defense": 130, + "Sp. Attack": 30, + "Sp. Defense": 130, + "Speed": 5 + } + }, + { + "id": 772, + "name": { + "english": "Type: Null", + "japanese": "タイプ:ヌル", + "chinese": "属性:空", + "french": "Silvallié" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 95, + "Attack": 95, + "Defense": 95, + "Sp. Attack": 95, + "Sp. Defense": 95, + "Speed": 59 + } + }, + { + "id": 773, + "name": { + "english": "Silvally", + "japanese": "シルヴァディ", + "chinese": "银伴战兽", + "french": "Météno" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 95, + "Attack": 95, + "Defense": 95, + "Sp. Attack": 95, + "Sp. Defense": 95, + "Speed": 95 + } + }, + { + "id": 774, + "name": { + "english": "Minior", + "japanese": "メテノ", + "chinese": "小陨星", + "french": "Dodoala" + }, + "type": [ + "Rock", + "Flying" + ], + "base": { + "HP": 60, + "Attack": 60, + "Defense": 100, + "Sp. Attack": 60, + "Sp. Defense": 100, + "Speed": 60 + } + }, + { + "id": 775, + "name": { + "english": "Komala", + "japanese": "ネッコアラ", + "chinese": "树枕尾熊", + "french": "Boumata" + }, + "type": [ + "Normal" + ], + "base": { + "HP": 65, + "Attack": 115, + "Defense": 65, + "Sp. Attack": 75, + "Sp. Defense": 95, + "Speed": 65 + } + }, + { + "id": 776, + "name": { + "english": "Turtonator", + "japanese": "バクガメス", + "chinese": "爆焰龟兽", + "french": "Togedemaru" + }, + "type": [ + "Fire", + "Dragon" + ], + "base": { + "HP": 60, + "Attack": 78, + "Defense": 135, + "Sp. Attack": 91, + "Sp. Defense": 85, + "Speed": 36 + } + }, + { + "id": 777, + "name": { + "english": "Togedemaru", + "japanese": "トゲデマル", + "chinese": "托戈德玛尔", + "french": "Mimiqui" + }, + "type": [ + "Electric", + "Steel" + ], + "base": { + "HP": 65, + "Attack": 98, + "Defense": 63, + "Sp. Attack": 40, + "Sp. Defense": 73, + "Speed": 96 + } + }, + { + "id": 778, + "name": { + "english": "Mimikyu", + "japanese": "ミミッキュ", + "chinese": "谜拟Q", + "french": "Denticrisse" + }, + "type": [ + "Ghost", + "Fairy" + ], + "base": { + "HP": 55, + "Attack": 90, + "Defense": 80, + "Sp. Attack": 50, + "Sp. Defense": 105, + "Speed": 96 + } + }, + { + "id": 779, + "name": { + "english": "Bruxish", + "japanese": "ハギギシリ", + "chinese": "磨牙彩皮鱼", + "french": "Draïeul" + }, + "type": [ + "Water", + "Psychic" + ], + "base": { + "HP": 68, + "Attack": 105, + "Defense": 70, + "Sp. Attack": 70, + "Sp. Defense": 70, + "Speed": 92 + } + }, + { + "id": 780, + "name": { + "english": "Drampa", + "japanese": "ジジーロン", + "chinese": "老翁龙", + "french": "Sinistrail" + }, + "type": [ + "Normal", + "Dragon" + ], + "base": { + "HP": 78, + "Attack": 60, + "Defense": 85, + "Sp. Attack": 135, + "Sp. Defense": 91, + "Speed": 36 + } + }, + { + "id": 781, + "name": { + "english": "Dhelmise", + "japanese": "ダダリン", + "chinese": "破破舵轮", + "french": "Bébécaille" + }, + "type": [ + "Ghost", + "Grass" + ], + "base": { + "HP": 70, + "Attack": 131, + "Defense": 100, + "Sp. Attack": 86, + "Sp. Defense": 90, + "Speed": 40 + } + }, + { + "id": 782, + "name": { + "english": "Jangmo-o", + "japanese": "ジャラコ", + "chinese": "心鳞宝", + "french": "Écaïd" + }, + "type": [ + "Dragon" + ], + "base": { + "HP": 45, + "Attack": 55, + "Defense": 65, + "Sp. Attack": 45, + "Sp. Defense": 45, + "Speed": 45 + } + }, + { + "id": 783, + "name": { + "english": "Hakamo-o", + "japanese": "ジャランゴ", + "chinese": "鳞甲龙", + "french": "Ékaïser" + }, + "type": [ + "Dragon", + "Fighting" + ], + "base": { + "HP": 55, + "Attack": 75, + "Defense": 90, + "Sp. Attack": 65, + "Sp. Defense": 70, + "Speed": 65 + } + }, + { + "id": 784, + "name": { + "english": "Kommo-o", + "japanese": "ジャラランガ", + "chinese": "杖尾鳞甲龙", + "french": "Tokorico" + }, + "type": [ + "Dragon", + "Fighting" + ], + "base": { + "HP": 75, + "Attack": 110, + "Defense": 125, + "Sp. Attack": 100, + "Sp. Defense": 105, + "Speed": 85 + } + }, + { + "id": 785, + "name": { + "english": "Tapu Koko", + "japanese": "カプ・コケコ", + "chinese": "卡璞・鸣鸣", + "french": "Tokopiyon" + }, + "type": [ + "Electric", + "Fairy" + ], + "base": { + "HP": 70, + "Attack": 115, + "Defense": 85, + "Sp. Attack": 95, + "Sp. Defense": 75, + "Speed": 130 + } + }, + { + "id": 786, + "name": { + "english": "Tapu Lele", + "japanese": "カプ・テテフ", + "chinese": "卡璞・蝶蝶", + "french": "Tokotoro" + }, + "type": [ + "Psychic", + "Fairy" + ], + "base": { + "HP": 70, + "Attack": 85, + "Defense": 75, + "Sp. Attack": 130, + "Sp. Defense": 115, + "Speed": 95 + } + }, + { + "id": 787, + "name": { + "english": "Tapu Bulu", + "japanese": "カプ・ブルル", + "chinese": "卡璞・哞哞", + "french": "Tokopisco" + }, + "type": [ + "Grass", + "Fairy" + ], + "base": { + "HP": 70, + "Attack": 130, + "Defense": 115, + "Sp. Attack": 85, + "Sp. Defense": 95, + "Speed": 75 + } + }, + { + "id": 788, + "name": { + "english": "Tapu Fini", + "japanese": "カプ・レヒレ", + "chinese": "卡璞・鳍鳍", + "french": "Cosmog" + }, + "type": [ + "Water", + "Fairy" + ], + "base": { + "HP": 70, + "Attack": 75, + "Defense": 115, + "Sp. Attack": 95, + "Sp. Defense": 130, + "Speed": 85 + } + }, + { + "id": 789, + "name": { + "english": "Cosmog", + "japanese": "コスモッグ", + "chinese": "科斯莫古", + "french": "Cosmovum" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 43, + "Attack": 29, + "Defense": 31, + "Sp. Attack": 29, + "Sp. Defense": 31, + "Speed": 37 + } + }, + { + "id": 790, + "name": { + "english": "Cosmoem", + "japanese": "コスモウム", + "chinese": "科斯莫姆", + "french": "Solgaleo" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 43, + "Attack": 29, + "Defense": 131, + "Sp. Attack": 29, + "Sp. Defense": 131, + "Speed": 37 + } + }, + { + "id": 791, + "name": { + "english": "Solgaleo", + "japanese": "ソルガレオ", + "chinese": "索尔迦雷欧", + "french": "Lunala" + }, + "type": [ + "Psychic", + "Steel" + ], + "base": { + "HP": 137, + "Attack": 137, + "Defense": 107, + "Sp. Attack": 113, + "Sp. Defense": 89, + "Speed": 97 + } + }, + { + "id": 792, + "name": { + "english": "Lunala", + "japanese": "ルナアーラ", + "chinese": "露奈雅拉", + "french": "Zéroïd" + }, + "type": [ + "Psychic", + "Ghost" + ], + "base": { + "HP": 137, + "Attack": 113, + "Defense": 89, + "Sp. Attack": 137, + "Sp. Defense": 107, + "Speed": 97 + } + }, + { + "id": 793, + "name": { + "english": "Nihilego", + "japanese": "ウツロイド", + "chinese": "虚吾伊德", + "french": "Mouscoto" + }, + "type": [ + "Rock", + "Poison" + ], + "base": { + "HP": 109, + "Attack": 53, + "Defense": 47, + "Sp. Attack": 127, + "Sp. Defense": 131, + "Speed": 103 + } + }, + { + "id": 794, + "name": { + "english": "Buzzwole", + "japanese": "マッシブーン", + "chinese": "爆肌蚊", + "french": "Cancrelove" + }, + "type": [ + "Bug", + "Fighting" + ], + "base": { + "HP": 107, + "Attack": 139, + "Defense": 139, + "Sp. Attack": 53, + "Sp. Defense": 53, + "Speed": 79 + } + }, + { + "id": 795, + "name": { + "english": "Pheromosa", + "japanese": "フェローチェ", + "chinese": "费洛美螂", + "french": "Câblifère" + }, + "type": [ + "Bug", + "Fighting" + ], + "base": { + "HP": 71, + "Attack": 137, + "Defense": 37, + "Sp. Attack": 137, + "Sp. Defense": 37, + "Speed": 151 + } + }, + { + "id": 796, + "name": { + "english": "Xurkitree", + "japanese": "デンジュモク", + "chinese": "电束木", + "french": "Bamboiselle" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 83, + "Attack": 89, + "Defense": 71, + "Sp. Attack": 173, + "Sp. Defense": 71, + "Speed": 83 + } + }, + { + "id": 797, + "name": { + "english": "Celesteela", + "japanese": "テッカグヤ", + "chinese": "铁火辉夜", + "french": "Katagami" + }, + "type": [ + "Steel", + "Flying" + ], + "base": { + "HP": 97, + "Attack": 101, + "Defense": 103, + "Sp. Attack": 107, + "Sp. Defense": 101, + "Speed": 61 + } + }, + { + "id": 798, + "name": { + "english": "Kartana", + "japanese": "カミツルギ", + "chinese": "纸御剑", + "french": "Engloutyran" + }, + "type": [ + "Grass", + "Steel" + ], + "base": { + "HP": 59, + "Attack": 181, + "Defense": 131, + "Sp. Attack": 59, + "Sp. Defense": 31, + "Speed": 109 + } + }, + { + "id": 799, + "name": { + "english": "Guzzlord", + "japanese": "アクジキング", + "chinese": "恶食大王", + "french": "Necrozma" + }, + "type": [ + "Dark", + "Dragon" + ], + "base": { + "HP": 223, + "Attack": 101, + "Defense": 53, + "Sp. Attack": 97, + "Sp. Defense": 53, + "Speed": 43 + } + }, + { + "id": 800, + "name": { + "english": "Necrozma", + "japanese": "ネクロズマ", + "chinese": "奈克洛兹玛", + "french": "Magearna" + }, + "type": [ + "Psychic" + ], + "base": { + "HP": 97, + "Attack": 107, + "Defense": 101, + "Sp. Attack": 127, + "Sp. Defense": 89, + "Speed": 79 + } + }, + { + "id": 801, + "name": { + "english": "Magearna", + "japanese": "マギアナ", + "chinese": "玛机雅娜", + "french": "Marshadow" + }, + "type": [ + "Steel", + "Fairy" + ], + "base": { + "HP": 80, + "Attack": 95, + "Defense": 115, + "Sp. Attack": 130, + "Sp. Defense": 115, + "Speed": 65 + } + }, + { + "id": 802, + "name": { + "english": "Marshadow", + "japanese": "マーシャドー", + "chinese": "玛夏多", + "french": "Vémini" + }, + "type": [ + "Fighting", + "Ghost" + ], + "base": { + "HP": 90, + "Attack": 125, + "Defense": 80, + "Sp. Attack": 90, + "Sp. Defense": 90, + "Speed": 125 + } + }, + { + "id": 803, + "name": { + "english": "Poipole", + "japanese": "ベベノム", + "chinese": "毒贝比", + "french": "Mandrillon" + }, + "type": [ + "Poison" + ], + "base": { + "HP": 67, + "Attack": 73, + "Defense": 67, + "Sp. Attack": 73, + "Sp. Defense": 67, + "Speed": 73 + } + }, + { + "id": 804, + "name": { + "english": "Naganadel", + "japanese": "アーゴヨン", + "chinese": "四颚针龙", + "french": "Ama-Ama" + }, + "type": [ + "Poison", + "Dragon" + ], + "base": { + "HP": 73, + "Attack": 73, + "Defense": 73, + "Sp. Attack": 127, + "Sp. Defense": 73, + "Speed": 121 + } + }, + { + "id": 805, + "name": { + "english": "Stakataka", + "japanese": "ツンデツンデ", + "chinese": "垒磊石", + "french": "Pierroteknik" + }, + "type": [ + "Rock", + "Steel" + ], + "base": { + "HP": 61, + "Attack": 131, + "Defense": 211, + "Sp. Attack": 53, + "Sp. Defense": 101, + "Speed": 13 + } + }, + { + "id": 806, + "name": { + "english": "Blacephalon", + "japanese": "ズガドーン", + "chinese": "砰头小丑", + "french": "Zeraora" + }, + "type": [ + "Fire", + "Ghost" + ], + "base": { + "HP": 53, + "Attack": 127, + "Defense": 53, + "Sp. Attack": 151, + "Sp. Defense": 79, + "Speed": 107 + } + }, + { + "id": 807, + "name": { + "english": "Zeraora", + "japanese": "ゼラオラ", + "chinese": "捷拉奥拉", + "french": "Meltan" + }, + "type": [ + "Electric" + ], + "base": { + "HP": 88, + "Attack": 112, + "Defense": 75, + "Sp. Attack": 102, + "Sp. Defense": 80, + "Speed": 143 + } + }, + { + "id": 808, + "name": { + "english": "Meltan", + "japanese": "メルタン", + "chinese": "美录坦", + "french": "Melmetal" + }, + "type": [ + "Steel" + ], + "base": { + "HP": 46, + "Attack": 65, + "Defense": 65, + "Sp. Attack": 55, + "Sp. Defense": 35, + "Speed": 34 + } + }, + { + "id": 809, + "name": { + "english": "Melmetal", + "japanese": "メルメタル", + "chinese": "美录梅塔", + "french": "" + }, + "type": [ + "Steel" + ], + "base": { + "HP": 135, + "Attack": 143, + "Defense": 143, + "Sp. Attack": 80, + "Sp. Defense": 65, + "Speed": 34 + } + } +] \ No newline at end of file diff --git a/server/egglocke/pokepoll/templates/pokepoll/detail.html b/server/egglocke/pokepoll/templates/pokepoll/detail.html index 5e66fd1..8a355fe 100644 --- a/server/egglocke/pokepoll/templates/pokepoll/detail.html +++ b/server/egglocke/pokepoll/templates/pokepoll/detail.html @@ -1,6 +1,6 @@ {% load static %} - +

diff --git a/server/egglocke/pokepoll/templates/pokepoll/master_submit.html b/server/egglocke/pokepoll/templates/pokepoll/master_submit.html index dbe9281..43ae0df 100644 --- a/server/egglocke/pokepoll/templates/pokepoll/master_submit.html +++ b/server/egglocke/pokepoll/templates/pokepoll/master_submit.html @@ -1,8 +1,76 @@ {% load static %}

Hewwo

+ +
{% csrf_token %} + +
+ +
{{ pokemon_form.as_p }} @@ -143,4 +211,138 @@
Existing user not found, enter your name below and we will create a record a }); + + + + \ No newline at end of file diff --git a/server/egglocke/pokepoll/views.py b/server/egglocke/pokepoll/views.py index 082d640..10907dd 100644 --- a/server/egglocke/pokepoll/views.py +++ b/server/egglocke/pokepoll/views.py @@ -6,6 +6,10 @@ from django.utils import timezone from django import forms from django.forms import TextInput, EmailInput +import json +# import variables in settings.py +from django.conf import settings +from .cachedconstants import MAX_POKEDEX_DICT # Create your views here. from django.urls import reverse @@ -77,7 +81,8 @@ def get(self, request, *args, **kwargs): song_form = PokemonForm() return render(request, self.template_name, { 'submitter_form': submitter_form, - 'pokemon_form': song_form + 'pokemon_form': song_form, + 'max_pokedex_entry': MAX_POKEDEX_DICT[settings.POKEMON_GENERATION], }) def post(self, request, *args, **kwargs): From c1e36e5d00ba4382ac1c5d467122bf293e18c673 Mon Sep 17 00:00:00 2001 From: Evin Jaff Date: Mon, 27 May 2024 17:41:50 -0700 Subject: [PATCH 3/5] homepage looks nice and pokemon submissions work now --- server/egglocke/pokepoll/cachedconstants.py | 12 +- .../static/pokepoll/homepage-style.css | 135 ++++++++++++++++++ .../static/pokepoll/pokemon_name_to_id.json | 1 + .../pokepoll/templates/pokepoll/home.html | 74 +++++++++- .../templates/pokepoll/master_submit.html | 39 ++++- .../templates/pokepoll/submissions.html | 22 ++- server/egglocke/pokepoll/views.py | 15 +- 7 files changed, 284 insertions(+), 14 deletions(-) create mode 100644 server/egglocke/pokepoll/static/pokepoll/homepage-style.css create mode 100644 server/egglocke/pokepoll/static/pokepoll/pokemon_name_to_id.json diff --git a/server/egglocke/pokepoll/cachedconstants.py b/server/egglocke/pokepoll/cachedconstants.py index 7c75668..414549d 100644 --- a/server/egglocke/pokepoll/cachedconstants.py +++ b/server/egglocke/pokepoll/cachedconstants.py @@ -1,4 +1,3 @@ -import pypokedex import json # Constants @@ -17,6 +16,9 @@ 8: 898, } +POKEMON_NAME_TO_ID = { +} + def import_json(filepath): with open(filepath, 'r') as f: data = json.load(f) @@ -33,6 +35,14 @@ def main(): for pokemon in pokedex: all_pokemon_names.append(pokemon['name']["english"]) + # file 2: pokemon_name_to_id.json + pokemon_name_to_id = {} + for pokemon in pokedex: + pokemon_name_to_id[pokemon['name']["english"]] = pokemon['id'] + + with open('static/pokepoll/pokemon_name_to_id.json', 'w') as f: + json.dump(pokemon_name_to_id, f) + with open('static/pokepoll/all_pokemon_names.json', 'w') as f: json.dump(all_pokemon_names, f) diff --git a/server/egglocke/pokepoll/static/pokepoll/homepage-style.css b/server/egglocke/pokepoll/static/pokepoll/homepage-style.css new file mode 100644 index 0000000..ae4e755 --- /dev/null +++ b/server/egglocke/pokepoll/static/pokepoll/homepage-style.css @@ -0,0 +1,135 @@ +/* + * Globals + */ + +/* Links */ +a, +a:focus, +a:hover { + color: #fff; +} + +/* Custom default button */ +.btn-default, +.btn-default:hover, +.btn-default:focus { + color: #333; + text-shadow: none; /* Prevent inheritence from `body` */ + background-color: #fff; + border: 1px solid #fff; +} + + +/* + * Base structure + */ + +html, +body { + height: 100%; + background-color: #fff; +} +body { + color: #fff; + text-align: center; + text-shadow: 0 1px 3px rgba(0,0,0,.5); +} + +/* Extra markup and styles for table-esque vertical and horizontal centering */ +.site-wrapper { + display: table; + width: 100%; + height: 100%; + background-color: #333; + /*height: 100%; */ + /*min-height: 100%;*/ +} +.site-wrapper-inner { + display: table-cell; + vertical-align: top; +} +.cover-container { + margin-right: auto; + margin-left: auto; +} + +/* Padding for spacing */ +.inner { + padding: 30px; +} + + +/* + * Header + */ +.masthead-brand { + margin-top: 10px; + margin-bottom: 10px; +} + +.masthead-nav > li { + display: inline-block; +} +.masthead-nav > li + li { + margin-left: 20px; +} +.masthead-nav > li > a { + padding-right: 0; + padding-left: 0; + font-size: 16px; + font-weight: bold; + color: #fff; /* IE8 proofing */ + color: rgba(255,255,255,.75); + border-bottom: 2px solid transparent; +} +.masthead-nav > li > a:hover, +.masthead-nav > li > a:focus { + background-color: transparent; + border-bottom-color: #a9a9a9; + border-bottom-color: rgba(255,255,255,.25); +} +.masthead-nav > .active > a, +.masthead-nav > .active > a:hover, +.masthead-nav > .active > a:focus { + color: #fff; + border-bottom-color: #fff; +} + +@media (min-width: 768px) { + .masthead-brand { + float: left; + } + .masthead-nav { + float: right; + } +} + + +/* + * Cover + */ + +.cover { + padding: 0 20px; +} +.cover .btn-lg { + padding: 10px 20px; + font-weight: bold; +} + +/* + * Affix and center + */ + +@media (min-width: 768px) { + /* Pull out the header and footer */ + .masthead { + position: fixed; + top: 0; + } + /* Start the vertical centering */ + .site-wrapper-inner { + vertical-align: middle; + } + +} \ No newline at end of file diff --git a/server/egglocke/pokepoll/static/pokepoll/pokemon_name_to_id.json b/server/egglocke/pokepoll/static/pokepoll/pokemon_name_to_id.json new file mode 100644 index 0000000..142ceeb --- /dev/null +++ b/server/egglocke/pokepoll/static/pokepoll/pokemon_name_to_id.json @@ -0,0 +1 @@ +{"Bulbasaur": 1, "Ivysaur": 2, "Venusaur": 3, "Charmander": 4, "Charmeleon": 5, "Charizard": 6, "Squirtle": 7, "Wartortle": 8, "Blastoise": 9, "Caterpie": 10, "Metapod": 11, "Butterfree": 12, "Weedle": 13, "Kakuna": 14, "Beedrill": 15, "Pidgey": 16, "Pidgeotto": 17, "Pidgeot": 18, "Rattata": 19, "Raticate": 20, "Spearow": 21, "Fearow": 22, "Ekans": 23, "Arbok": 24, "Pikachu": 25, "Raichu": 26, "Sandshrew": 27, "Sandslash": 28, "Nidoran\u2640": 29, "Nidorina": 30, "Nidoqueen": 31, "Nidoran\u2642": 32, "Nidorino": 33, "Nidoking": 34, "Clefairy": 35, "Clefable": 36, "Vulpix": 37, "Ninetales": 38, "Jigglypuff": 39, "Wigglytuff": 40, "Zubat": 41, "Golbat": 42, "Oddish": 43, "Gloom": 44, "Vileplume": 45, "Paras": 46, "Parasect": 47, "Venonat": 48, "Venomoth": 49, "Diglett": 50, "Dugtrio": 51, "Meowth": 52, "Persian": 53, "Psyduck": 54, "Golduck": 55, "Mankey": 56, "Primeape": 57, "Growlithe": 58, "Arcanine": 59, "Poliwag": 60, "Poliwhirl": 61, "Poliwrath": 62, "Abra": 63, "Kadabra": 64, "Alakazam": 65, "Machop": 66, "Machoke": 67, "Machamp": 68, "Bellsprout": 69, "Weepinbell": 70, "Victreebel": 71, "Tentacool": 72, "Tentacruel": 73, "Geodude": 74, "Graveler": 75, "Golem": 76, "Ponyta": 77, "Rapidash": 78, "Slowpoke": 79, "Slowbro": 80, "Magnemite": 81, "Magneton": 82, "Farfetch'd": 83, "Doduo": 84, "Dodrio": 85, "Seel": 86, "Dewgong": 87, "Grimer": 88, "Muk": 89, "Shellder": 90, "Cloyster": 91, "Gastly": 92, "Haunter": 93, "Gengar": 94, "Onix": 95, "Drowzee": 96, "Hypno": 97, "Krabby": 98, "Kingler": 99, "Voltorb": 100, "Electrode": 101, "Exeggcute": 102, "Exeggutor": 103, "Cubone": 104, "Marowak": 105, "Hitmonlee": 106, "Hitmonchan": 107, "Lickitung": 108, "Koffing": 109, "Weezing": 110, "Rhyhorn": 111, "Rhydon": 112, "Chansey": 113, "Tangela": 114, "Kangaskhan": 115, "Horsea": 116, "Seadra": 117, "Goldeen": 118, "Seaking": 119, "Staryu": 120, "Starmie": 121, "Mr. Mime": 122, "Scyther": 123, "Jynx": 124, "Electabuzz": 125, "Magmar": 126, "Pinsir": 127, "Tauros": 128, "Magikarp": 129, "Gyarados": 130, "Lapras": 131, "Ditto": 132, "Eevee": 133, "Vaporeon": 134, "Jolteon": 135, "Flareon": 136, "Porygon": 137, "Omanyte": 138, "Omastar": 139, "Kabuto": 140, "Kabutops": 141, "Aerodactyl": 142, "Snorlax": 143, "Articuno": 144, "Zapdos": 145, "Moltres": 146, "Dratini": 147, "Dragonair": 148, "Dragonite": 149, "Mewtwo": 150, "Mew": 151, "Chikorita": 152, "Bayleef": 153, "Meganium": 154, "Cyndaquil": 155, "Quilava": 156, "Typhlosion": 157, "Totodile": 158, "Croconaw": 159, "Feraligatr": 160, "Sentret": 161, "Furret": 162, "Hoothoot": 163, "Noctowl": 164, "Ledyba": 165, "Ledian": 166, "Spinarak": 167, "Ariados": 168, "Crobat": 169, "Chinchou": 170, "Lanturn": 171, "Pichu": 172, "Cleffa": 173, "Igglybuff": 174, "Togepi": 175, "Togetic": 176, "Natu": 177, "Xatu": 178, "Mareep": 179, "Flaaffy": 180, "Ampharos": 181, "Bellossom": 182, "Marill": 183, "Azumarill": 184, "Sudowoodo": 185, "Politoed": 186, "Hoppip": 187, "Skiploom": 188, "Jumpluff": 189, "Aipom": 190, "Sunkern": 191, "Sunflora": 192, "Yanma": 193, "Wooper": 194, "Quagsire": 195, "Espeon": 196, "Umbreon": 197, "Murkrow": 198, "Slowking": 199, "Misdreavus": 200, "Unown": 201, "Wobbuffet": 202, "Girafarig": 203, "Pineco": 204, "Forretress": 205, "Dunsparce": 206, "Gligar": 207, "Steelix": 208, "Snubbull": 209, "Granbull": 210, "Qwilfish": 211, "Scizor": 212, "Shuckle": 213, "Heracross": 214, "Sneasel": 215, "Teddiursa": 216, "Ursaring": 217, "Slugma": 218, "Magcargo": 219, "Swinub": 220, "Piloswine": 221, "Corsola": 222, "Remoraid": 223, "Octillery": 224, "Delibird": 225, "Mantine": 226, "Skarmory": 227, "Houndour": 228, "Houndoom": 229, "Kingdra": 230, "Phanpy": 231, "Donphan": 232, "Porygon2": 233, "Stantler": 234, "Smeargle": 235, "Tyrogue": 236, "Hitmontop": 237, "Smoochum": 238, "Elekid": 239, "Magby": 240, "Miltank": 241, "Blissey": 242, "Raikou": 243, "Entei": 244, "Suicune": 245, "Larvitar": 246, "Pupitar": 247, "Tyranitar": 248, "Lugia": 249, "Ho-Oh": 250, "Celebi": 251, "Treecko": 252, "Grovyle": 253, "Sceptile": 254, "Torchic": 255, "Combusken": 256, "Blaziken": 257, "Mudkip": 258, "Marshtomp": 259, "Swampert": 260, "Poochyena": 261, "Mightyena": 262, "Zigzagoon": 263, "Linoone": 264, "Wurmple": 265, "Silcoon": 266, "Beautifly": 267, "Cascoon": 268, "Dustox": 269, "Lotad": 270, "Lombre": 271, "Ludicolo": 272, "Seedot": 273, "Nuzleaf": 274, "Shiftry": 275, "Taillow": 276, "Swellow": 277, "Wingull": 278, "Pelipper": 279, "Ralts": 280, "Kirlia": 281, "Gardevoir": 282, "Surskit": 283, "Masquerain": 284, "Shroomish": 285, "Breloom": 286, "Slakoth": 287, "Vigoroth": 288, "Slaking": 289, "Nincada": 290, "Ninjask": 291, "Shedinja": 292, "Whismur": 293, "Loudred": 294, "Exploud": 295, "Makuhita": 296, "Hariyama": 297, "Azurill": 298, "Nosepass": 299, "Skitty": 300, "Delcatty": 301, "Sableye": 302, "Mawile": 303, "Aron": 304, "Lairon": 305, "Aggron": 306, "Meditite": 307, "Medicham": 308, "Electrike": 309, "Manectric": 310, "Plusle": 311, "Minun": 312, "Volbeat": 313, "Illumise": 314, "Roselia": 315, "Gulpin": 316, "Swalot": 317, "Carvanha": 318, "Sharpedo": 319, "Wailmer": 320, "Wailord": 321, "Numel": 322, "Camerupt": 323, "Torkoal": 324, "Spoink": 325, "Grumpig": 326, "Spinda": 327, "Trapinch": 328, "Vibrava": 329, "Flygon": 330, "Cacnea": 331, "Cacturne": 332, "Swablu": 333, "Altaria": 334, "Zangoose": 335, "Seviper": 336, "Lunatone": 337, "Solrock": 338, "Barboach": 339, "Whiscash": 340, "Corphish": 341, "Crawdaunt": 342, "Baltoy": 343, "Claydol": 344, "Lileep": 345, "Cradily": 346, "Anorith": 347, "Armaldo": 348, "Feebas": 349, "Milotic": 350, "Castform": 351, "Kecleon": 352, "Shuppet": 353, "Banette": 354, "Duskull": 355, "Dusclops": 356, "Tropius": 357, "Chimecho": 358, "Absol": 359, "Wynaut": 360, "Snorunt": 361, "Glalie": 362, "Spheal": 363, "Sealeo": 364, "Walrein": 365, "Clamperl": 366, "Huntail": 367, "Gorebyss": 368, "Relicanth": 369, "Luvdisc": 370, "Bagon": 371, "Shelgon": 372, "Salamence": 373, "Beldum": 374, "Metang": 375, "Metagross": 376, "Regirock": 377, "Regice": 378, "Registeel": 379, "Latias": 380, "Latios": 381, "Kyogre": 382, "Groudon": 383, "Rayquaza": 384, "Jirachi": 385, "Deoxys": 386, "Turtwig": 387, "Grotle": 388, "Torterra": 389, "Chimchar": 390, "Monferno": 391, "Infernape": 392, "Piplup": 393, "Prinplup": 394, "Empoleon": 395, "Starly": 396, "Staravia": 397, "Staraptor": 398, "Bidoof": 399, "Bibarel": 400, "Kricketot": 401, "Kricketune": 402, "Shinx": 403, "Luxio": 404, "Luxray": 405, "Budew": 406, "Roserade": 407, "Cranidos": 408, "Rampardos": 409, "Shieldon": 410, "Bastiodon": 411, "Burmy": 412, "Wormadam": 413, "Mothim": 414, "Combee": 415, "Vespiquen": 416, "Pachirisu": 417, "Buizel": 418, "Floatzel": 419, "Cherubi": 420, "Cherrim": 421, "Shellos": 422, "Gastrodon": 423, "Ambipom": 424, "Drifloon": 425, "Drifblim": 426, "Buneary": 427, "Lopunny": 428, "Mismagius": 429, "Honchkrow": 430, "Glameow": 431, "Purugly": 432, "Chingling": 433, "Stunky": 434, "Skuntank": 435, "Bronzor": 436, "Bronzong": 437, "Bonsly": 438, "Mime Jr.": 439, "Happiny": 440, "Chatot": 441, "Spiritomb": 442, "Gible": 443, "Gabite": 444, "Garchomp": 445, "Munchlax": 446, "Riolu": 447, "Lucario": 448, "Hippopotas": 449, "Hippowdon": 450, "Skorupi": 451, "Drapion": 452, "Croagunk": 453, "Toxicroak": 454, "Carnivine": 455, "Finneon": 456, "Lumineon": 457, "Mantyke": 458, "Snover": 459, "Abomasnow": 460, "Weavile": 461, "Magnezone": 462, "Lickilicky": 463, "Rhyperior": 464, "Tangrowth": 465, "Electivire": 466, "Magmortar": 467, "Togekiss": 468, "Yanmega": 469, "Leafeon": 470, "Glaceon": 471, "Gliscor": 472, "Mamoswine": 473, "Porygon-Z": 474, "Gallade": 475, "Probopass": 476, "Dusknoir": 477, "Froslass": 478, "Rotom": 479, "Uxie": 480, "Mesprit": 481, "Azelf": 482, "Dialga": 483, "Palkia": 484, "Heatran": 485, "Regigigas": 486, "Giratina": 487, "Cresselia": 488, "Phione": 489, "Manaphy": 490, "Darkrai": 491, "Shaymin": 492, "Arceus": 493, "Victini": 494, "Snivy": 495, "Servine": 496, "Serperior": 497, "Tepig": 498, "Pignite": 499, "Emboar": 500, "Oshawott": 501, "Dewott": 502, "Samurott": 503, "Patrat": 504, "Watchog": 505, "Lillipup": 506, "Herdier": 507, "Stoutland": 508, "Purrloin": 509, "Liepard": 510, "Pansage": 511, "Simisage": 512, "Pansear": 513, "Simisear": 514, "Panpour": 515, "Simipour": 516, "Munna": 517, "Musharna": 518, "Pidove": 519, "Tranquill": 520, "Unfezant": 521, "Blitzle": 522, "Zebstrika": 523, "Roggenrola": 524, "Boldore": 525, "Gigalith": 526, "Woobat": 527, "Swoobat": 528, "Drilbur": 529, "Excadrill": 530, "Audino": 531, "Timburr": 532, "Gurdurr": 533, "Conkeldurr": 534, "Tympole": 535, "Palpitoad": 536, "Seismitoad": 537, "Throh": 538, "Sawk": 539, "Sewaddle": 540, "Swadloon": 541, "Leavanny": 542, "Venipede": 543, "Whirlipede": 544, "Scolipede": 545, "Cottonee": 546, "Whimsicott": 547, "Petilil": 548, "Lilligant": 549, "Basculin": 550, "Sandile": 551, "Krokorok": 552, "Krookodile": 553, "Darumaka": 554, "Darmanitan": 555, "Maractus": 556, "Dwebble": 557, "Crustle": 558, "Scraggy": 559, "Scrafty": 560, "Sigilyph": 561, "Yamask": 562, "Cofagrigus": 563, "Tirtouga": 564, "Carracosta": 565, "Archen": 566, "Archeops": 567, "Trubbish": 568, "Garbodor": 569, "Zorua": 570, "Zoroark": 571, "Minccino": 572, "Cinccino": 573, "Gothita": 574, "Gothorita": 575, "Gothitelle": 576, "Solosis": 577, "Duosion": 578, "Reuniclus": 579, "Ducklett": 580, "Swanna": 581, "Vanillite": 582, "Vanillish": 583, "Vanilluxe": 584, "Deerling": 585, "Sawsbuck": 586, "Emolga": 587, "Karrablast": 588, "Escavalier": 589, "Foongus": 590, "Amoonguss": 591, "Frillish": 592, "Jellicent": 593, "Alomomola": 594, "Joltik": 595, "Galvantula": 596, "Ferroseed": 597, "Ferrothorn": 598, "Klink": 599, "Klang": 600, "Klinklang": 601, "Tynamo": 602, "Eelektrik": 603, "Eelektross": 604, "Elgyem": 605, "Beheeyem": 606, "Litwick": 607, "Lampent": 608, "Chandelure": 609, "Axew": 610, "Fraxure": 611, "Haxorus": 612, "Cubchoo": 613, "Beartic": 614, "Cryogonal": 615, "Shelmet": 616, "Accelgor": 617, "Stunfisk": 618, "Mienfoo": 619, "Mienshao": 620, "Druddigon": 621, "Golett": 622, "Golurk": 623, "Pawniard": 624, "Bisharp": 625, "Bouffalant": 626, "Rufflet": 627, "Braviary": 628, "Vullaby": 629, "Mandibuzz": 630, "Heatmor": 631, "Durant": 632, "Deino": 633, "Zweilous": 634, "Hydreigon": 635, "Larvesta": 636, "Volcarona": 637, "Cobalion": 638, "Terrakion": 639, "Virizion": 640, "Tornadus": 641, "Thundurus": 642, "Reshiram": 643, "Zekrom": 644, "Landorus": 645, "Kyurem": 646, "Keldeo": 647, "Meloetta": 648, "Genesect": 649, "Chespin": 650, "Quilladin": 651, "Chesnaught": 652, "Fennekin": 653, "Braixen": 654, "Delphox": 655, "Froakie": 656, "Frogadier": 657, "Greninja": 658, "Bunnelby": 659, "Diggersby": 660, "Fletchling": 661, "Fletchinder": 662, "Talonflame": 663, "Scatterbug": 664, "Spewpa": 665, "Vivillon": 666, "Litleo": 667, "Pyroar": 668, "Flab\u00e9b\u00e9": 669, "Floette": 670, "Florges": 671, "Skiddo": 672, "Gogoat": 673, "Pancham": 674, "Pangoro": 675, "Furfrou": 676, "Espurr": 677, "Meowstic": 678, "Honedge": 679, "Doublade": 680, "Aegislash": 681, "Spritzee": 682, "Aromatisse": 683, "Swirlix": 684, "Slurpuff": 685, "Inkay": 686, "Malamar": 687, "Binacle": 688, "Barbaracle": 689, "Skrelp": 690, "Dragalge": 691, "Clauncher": 692, "Clawitzer": 693, "Helioptile": 694, "Heliolisk": 695, "Tyrunt": 696, "Tyrantrum": 697, "Amaura": 698, "Aurorus": 699, "Sylveon": 700, "Hawlucha": 701, "Dedenne": 702, "Carbink": 703, "Goomy": 704, "Sliggoo": 705, "Goodra": 706, "Klefki": 707, "Phantump": 708, "Trevenant": 709, "Pumpkaboo": 710, "Gourgeist": 711, "Bergmite": 712, "Avalugg": 713, "Noibat": 714, "Noivern": 715, "Xerneas": 716, "Yveltal": 717, "Zygarde": 718, "Diancie": 719, "Hoopa": 720, "Volcanion": 721, "Rowlet": 722, "Dartrix": 723, "Decidueye": 724, "Litten": 725, "Torracat": 726, "Incineroar": 727, "Popplio": 728, "Brionne": 729, "Primarina": 730, "Pikipek": 731, "Trumbeak": 732, "Toucannon": 733, "Yungoos": 734, "Gumshoos": 735, "Grubbin": 736, "Charjabug": 737, "Vikavolt": 738, "Crabrawler": 739, "Crabominable": 740, "Oricorio": 741, "Cutiefly": 742, "Ribombee": 743, "Rockruff": 744, "Lycanroc": 745, "Wishiwashi": 746, "Mareanie": 747, "Toxapex": 748, "Mudbray": 749, "Mudsdale": 750, "Dewpider": 751, "Araquanid": 752, "Fomantis": 753, "Lurantis": 754, "Morelull": 755, "Shiinotic": 756, "Salandit": 757, "Salazzle": 758, "Stufful": 759, "Bewear": 760, "Bounsweet": 761, "Steenee": 762, "Tsareena": 763, "Comfey": 764, "Oranguru": 765, "Passimian": 766, "Wimpod": 767, "Golisopod": 768, "Sandygast": 769, "Palossand": 770, "Pyukumuku": 771, "Type: Null": 772, "Silvally": 773, "Minior": 774, "Komala": 775, "Turtonator": 776, "Togedemaru": 777, "Mimikyu": 778, "Bruxish": 779, "Drampa": 780, "Dhelmise": 781, "Jangmo-o": 782, "Hakamo-o": 783, "Kommo-o": 784, "Tapu Koko": 785, "Tapu Lele": 786, "Tapu Bulu": 787, "Tapu Fini": 788, "Cosmog": 789, "Cosmoem": 790, "Solgaleo": 791, "Lunala": 792, "Nihilego": 793, "Buzzwole": 794, "Pheromosa": 795, "Xurkitree": 796, "Celesteela": 797, "Kartana": 798, "Guzzlord": 799, "Necrozma": 800, "Magearna": 801, "Marshadow": 802, "Poipole": 803, "Naganadel": 804, "Stakataka": 805, "Blacephalon": 806, "Zeraora": 807, "Meltan": 808, "Melmetal": 809} \ No newline at end of file diff --git a/server/egglocke/pokepoll/templates/pokepoll/home.html b/server/egglocke/pokepoll/templates/pokepoll/home.html index 383c5c4..11b87e1 100644 --- a/server/egglocke/pokepoll/templates/pokepoll/home.html +++ b/server/egglocke/pokepoll/templates/pokepoll/home.html @@ -1,14 +1,78 @@ {% load static %} -

Eviii's Egglocke Maker uwu :3

+ + - +
+
+
+ -Submit an egg! +
-View Submissions! +

Cover your page.

+

Cover is a one-page template for building simple and beautiful home pages. Download, edit the text, and add your own fullscreen background photo to make it your own.

+

+ Submit an Egg Today! +

+
+ +
+

{{ num_eggs_submitted }} Eggs Submitted so far!

+ + {% if most_recent_pokemon %} +

+ Most Recent Submission: +

+
+ + {{ most_recent_pokemon.pokemon_nickname }} (submitted by {{ most_recent_pokemon.submitter.name }}) + {% else %} + + {% endif %} + + + + + + + + + + + + + + + diff --git a/server/egglocke/pokepoll/templates/pokepoll/master_submit.html b/server/egglocke/pokepoll/templates/pokepoll/master_submit.html index 43ae0df..69c71c8 100644 --- a/server/egglocke/pokepoll/templates/pokepoll/master_submit.html +++ b/server/egglocke/pokepoll/templates/pokepoll/master_submit.html @@ -69,10 +69,23 @@

Hewwo

{% csrf_token %}
- +
+ - {{ pokemon_form.as_p }} + +

Nickname (Limit 10 characters)

+ + I have submitted a Pokemon before (we we will check if you) @@ -318,7 +331,7 @@
Existing user not found, enter your name below and we will create a record a max_pokedex_entry = {{ max_pokedex_entry }}; // Function to fetch and use the JSON data -async function fetchPokemonNames() { +async function fetchPokemonNames(max_index) { try { // Fetch the JSON data from the server const response = await fetch('{% static 'pokepoll/all_pokemon_names.json' %}'); @@ -330,7 +343,7 @@
Existing user not found, enter your name below and we will create a record a const pokemonNames = await response.json(); // Now you can use the `pokemonNames` variable which contains the parsed JSON data console.log(pokemonNames); - return pokemonNames; + return pokemonNames.slice(0, max_index); } catch (error) { console.error('There was a problem with the fetch operation:', error); return [] @@ -338,10 +351,26 @@
Existing user not found, enter your name below and we will create a record a } // Call the function to fetch and display Pokémon names -fetchPokemonNames().then(all_pokemon => { +fetchPokemonNames(max_pokedex_entry).then(all_pokemon => { autocomplete(document.getElementById("myInput"), all_pokemon); }) +// trap form submission +form.addEventListener("submit", (event) => { + event.preventDefault(); + + const isValid = email.value.length === 0 || emailRegExp.test(email.value); + if (!isValid) { + email.className = "invalid"; + error.textContent = "I expect an email, darling!"; + error.className = "error active"; + } else { + email.className = "valid"; + error.textContent = ""; + error.className = "error"; + } + }); + /*initiate the autocomplete function on the "myInput" element, and pass along the countries array as possible autocomplete values:*/ diff --git a/server/egglocke/pokepoll/templates/pokepoll/submissions.html b/server/egglocke/pokepoll/templates/pokepoll/submissions.html index ebd72b8..ee063ee 100644 --- a/server/egglocke/pokepoll/templates/pokepoll/submissions.html +++ b/server/egglocke/pokepoll/templates/pokepoll/submissions.html @@ -6,9 +6,29 @@ {% if latest_pokemon_list %} {% else %}

No polls are available.

{% endif %} + + + + + + \ No newline at end of file diff --git a/server/egglocke/pokepoll/views.py b/server/egglocke/pokepoll/views.py index 10907dd..daa00df 100644 --- a/server/egglocke/pokepoll/views.py +++ b/server/egglocke/pokepoll/views.py @@ -1,3 +1,4 @@ +import os from django.shortcuts import render, get_object_or_404 from django.template import loader from django.http import Http404, HttpResponse, HttpResponseRedirect, JsonResponse @@ -21,6 +22,7 @@ class HomeView(generic.TemplateView): def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context["num_eggs_submitted"] = self.get_num_eggs_submitted() + context["most_recent_pokemon"] = Pokemon.objects.order_by("-pub_date")[0] return context def get_num_eggs_submitted(self): @@ -96,6 +98,7 @@ def post(self, request, *args, **kwargs): # if email is in database foreign_key = None + pokemon_species = None if Submitter.objects.filter(email=request.POST.get('email')).exists(): print("email: {} | ".format(request.POST.get('email'))) @@ -113,14 +116,22 @@ def post(self, request, *args, **kwargs): submitter.save() foreign_key = submitter.id + # translate species to pokedex number + with open(os.path.join(settings.BASE_DIR, 'pokepoll/static/pokepoll/pokemon_name_to_id.json')) as f: + pokedex = json.load(f) + if request.POST.get('pokemon_species') in pokedex: + pokemon_species = pokedex[request.POST.get('pokemon_species')] + else: + pokemon_species = None + + # create a new pokemon pokemon = Pokemon( pokemon_nickname=request.POST.get('pokemon_nickname'), - pokemon_species=request.POST.get('pokemon_species'), + pokemon_species=pokemon_species, pub_date=timezone.now(), submitter_id=foreign_key ) - pokemon.save() return HttpResponseRedirect(reverse('pokepoll:home')) From 2a4b16539f655e1749ba1bca67edddb0f605954d Mon Sep 17 00:00:00 2001 From: Evin Jaff Date: Mon, 3 Jun 2024 11:24:26 -0500 Subject: [PATCH 4/5] Add robots.txt and start on held items --- server/egglocke/egglocke/settings.py | 20 ++- server/egglocke/egglocke/tests.py | 26 ++++ server/egglocke/egglocke/urls.py | 4 +- .../0010_pokemon_pokemon_held_item.py | 18 +++ server/egglocke/pokepoll/models.py | 1 + server/egglocke/pokepoll/support/robots.txt | 3 + .../pokepoll/templates/pokepoll/home.html | 4 +- .../templates/pokepoll/master_submit.html | 129 +++++++++++++++--- server/egglocke/pokepoll/tests.py | 3 +- server/egglocke/pokepoll/views.py | 38 +++++- 10 files changed, 220 insertions(+), 26 deletions(-) create mode 100644 server/egglocke/egglocke/tests.py create mode 100644 server/egglocke/pokepoll/migrations/0010_pokemon_pokemon_held_item.py create mode 100644 server/egglocke/pokepoll/support/robots.txt diff --git a/server/egglocke/egglocke/settings.py b/server/egglocke/egglocke/settings.py index a278037..9295d24 100644 --- a/server/egglocke/egglocke/settings.py +++ b/server/egglocke/egglocke/settings.py @@ -25,7 +25,17 @@ # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True -ALLOWED_HOSTS = [] +ALLOWED_HOSTS = [ + "20.42.93.202", + "egglocke.evievi.gay", + "localhost", + "127.0.0.1" +] + +CSRF_TRUSTED_ORIGINS = [ + "https://polite-snails-cross.loca.lt", + "https://polite-snails-cross.loca.lt/" + ] # Application definition @@ -123,5 +133,13 @@ DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' +# Set up a Cache Backend +CACHES = { + 'default': { + 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', + 'LOCATION': 'unique-snowflake', + } +} + # Custom settings POKEMON_GENERATION = 4 \ No newline at end of file diff --git a/server/egglocke/egglocke/tests.py b/server/egglocke/egglocke/tests.py new file mode 100644 index 0000000..1a52f30 --- /dev/null +++ b/server/egglocke/egglocke/tests.py @@ -0,0 +1,26 @@ +from django.test import TestCase +from django.urls import reverse + +from http import HTTPStatus + + +class RobotTxtTests(TestCase): + def test_robots_txt_view(self): + response = self.client.get("/robots.txt") + + assert response.status_code == HTTPStatus.OK + assert response["content-type"] == "text/plain" + + valid_user_agent_headers = [ "User-Agent", "user-agent", "USER-AGENT", "User-agent" ] + valid_header_seen = False + + for header in valid_user_agent_headers: + if header in response.content.decode(): + valid_header_seen = True + break + + assert valid_header_seen + + def test_cannot_access_robots_txt_view_with_post(self): + response = self.client.post("/robots.txt") + self.assertEqual(response.status_code, 405) \ No newline at end of file diff --git a/server/egglocke/egglocke/urls.py b/server/egglocke/egglocke/urls.py index ef4b3d1..4112dde 100644 --- a/server/egglocke/egglocke/urls.py +++ b/server/egglocke/egglocke/urls.py @@ -16,8 +16,10 @@ """ from django.contrib import admin from django.urls import path, include +from pokepoll.views import robots_txt_view urlpatterns = [ path("pokepoll/", include("pokepoll.urls")), - path('admin/', admin.site.urls) + path('admin/', admin.site.urls), + path("robots.txt", robots_txt_view), ] \ No newline at end of file diff --git a/server/egglocke/pokepoll/migrations/0010_pokemon_pokemon_held_item.py b/server/egglocke/pokepoll/migrations/0010_pokemon_pokemon_held_item.py new file mode 100644 index 0000000..ab60c6c --- /dev/null +++ b/server/egglocke/pokepoll/migrations/0010_pokemon_pokemon_held_item.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.6 on 2024-05-28 01:01 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pokepoll', '0009_alter_pokemon_pokemon_moves_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='pokemon', + name='pokemon_held_item', + field=models.IntegerField(default=0), + ), + ] diff --git a/server/egglocke/pokepoll/models.py b/server/egglocke/pokepoll/models.py index 3179d67..2e29273 100644 --- a/server/egglocke/pokepoll/models.py +++ b/server/egglocke/pokepoll/models.py @@ -33,6 +33,7 @@ class Pokemon(models.Model): pokemon_EV = models.JSONField(default=list([0, 0, 0, 0, 0, 0])) pokemon_moves = models.JSONField(default=dict) pokemon_movespp = models.JSONField(default=dict) + pokemon_held_item = models.IntegerField(default=0) pub_date = models.DateTimeField("date published") diff --git a/server/egglocke/pokepoll/support/robots.txt b/server/egglocke/pokepoll/support/robots.txt new file mode 100644 index 0000000..e424f5c --- /dev/null +++ b/server/egglocke/pokepoll/support/robots.txt @@ -0,0 +1,3 @@ +# Example 3: Block all crawlers except AdsBot (AdsBot crawlers must be named explicitly) +User-agent: * +Disallow: / \ No newline at end of file diff --git a/server/egglocke/pokepoll/templates/pokepoll/home.html b/server/egglocke/pokepoll/templates/pokepoll/home.html index 11b87e1..678a138 100644 --- a/server/egglocke/pokepoll/templates/pokepoll/home.html +++ b/server/egglocke/pokepoll/templates/pokepoll/home.html @@ -27,9 +27,7 @@

Evii's Egglocke Maker

-

Cover your page.

-

Cover is a one-page template for building simple and beautiful home pages. Download, edit the text, and add your own fullscreen background photo to make it your own.

-

+

Submit an Egg Today!

diff --git a/server/egglocke/pokepoll/templates/pokepoll/master_submit.html b/server/egglocke/pokepoll/templates/pokepoll/master_submit.html index 69c71c8..045b422 100644 --- a/server/egglocke/pokepoll/templates/pokepoll/master_submit.html +++ b/server/egglocke/pokepoll/templates/pokepoll/master_submit.html @@ -75,7 +75,7 @@

Hewwo

placeholder="Pokemon Species">
- +

Nickname (Limit 10 characters)

@@ -87,7 +87,39 @@

Hewwo

placeholder="{{ pokemon_form.pokemon_nickname.field.widget.attrs.placeholder }}" value="{{ pokemon_form.pokemon_nickname.value|default_if_none:'' }}"> - I have submitted a Pokemon before (we we will check if you) +
+ +

Held Item

+ + +
+ +

IVs/EVs

+ +

Total EVs: 0

+ + +
+ +
+ +
+ +
+ +
+ + +
+ + + + + + + + +
@@ -120,6 +152,27 @@
Existing user not found, enter your name below and we will create a record a value="{{ submitter_form.name.value|default_if_none:'' }}">
+

Moveset

+ + + + + + + + @@ -350,26 +403,68 @@
Existing user not found, enter your name below and we will create a record a } } +async function fetchPokemonMoves(max_index){ + try { + // Fetch the JSON data from the server + const response = await fetch('{% static 'pokepoll/all_moves.json' %}'); + // Check if the fetch was successful + if (!response.ok) { + throw new Error('Network response was not ok ' + response.statusText); + } + // Parse the JSON data + const pokemonMoves = await response.json(); + // Now you can use the `pokemonNames` variable which contains the parsed JSON data + console.log(pokemonMoves); + return pokemonMoves.slice(0, max_index); + } catch (error) { + console.error('There was a problem with the fetch operation:', error); + return [] + } +} + + // Call the function to fetch and display Pokémon names fetchPokemonNames(max_pokedex_entry).then(all_pokemon => { autocomplete(document.getElementById("myInput"), all_pokemon); }) -// trap form submission -form.addEventListener("submit", (event) => { - event.preventDefault(); - - const isValid = email.value.length === 0 || emailRegExp.test(email.value); - if (!isValid) { - email.className = "invalid"; - error.textContent = "I expect an email, darling!"; - error.className = "error active"; - } else { - email.className = "valid"; - error.textContent = ""; - error.className = "error"; - } - }); +fetchPokemonMoves(max_pokedex_entry).then(all_moves => { + autocomplete(document.getElementById("move1"), all_moves); + autocomplete(document.getElementById("move2"), all_moves); + autocomplete(document.getElementById("move3"), all_moves); + autocomplete(document.getElementById("move4"), all_moves); +}) + + // Sum EVs + let evs = document.querySelectorAll("input[type=range]"); + let totalEvs = 0; + let maxEvs = 510; + evs.forEach(ev => { + ev.addEventListener("input", function() { + totalEvs = 0; + evs.forEach(ev => { + totalEvs += parseInt(ev.value); + }); + + if (totalEvs > maxEvs) { + document.getElementById("total-evs").style.color = "red"; + // Force the input back to the Sum + ev.value = parseInt(ev.value) - (totalEvs - maxEvs); + totalEvs = maxEvs; + + + } + else { + document.getElementById("total-evs").style.color = "black"; + } + + document.getElementById("total-evs").innerText = totalEvs; + + }); + }); + + + /*initiate the autocomplete function on the "myInput" element, and pass along the countries array as possible autocomplete values:*/ diff --git a/server/egglocke/pokepoll/tests.py b/server/egglocke/pokepoll/tests.py index 72c0210..afc365a 100644 --- a/server/egglocke/pokepoll/tests.py +++ b/server/egglocke/pokepoll/tests.py @@ -1,12 +1,13 @@ # Create your tests here. +from contextlib import AbstractContextManager import datetime +from typing import Any from django.test import TestCase from django.utils import timezone from django.urls import reverse from .models import Pokemon - class QuestionModelTests(TestCase): def test_was_published_recently_with_future_question(self): """ diff --git a/server/egglocke/pokepoll/views.py b/server/egglocke/pokepoll/views.py index daa00df..b31b208 100644 --- a/server/egglocke/pokepoll/views.py +++ b/server/egglocke/pokepoll/views.py @@ -11,11 +11,27 @@ # import variables in settings.py from django.conf import settings from .cachedconstants import MAX_POKEDEX_DICT +from django.views.decorators.http import require_GET, require_POST +from django.core.cache import cache # Create your views here. from django.urls import reverse from .models import Pokemon, Submitter +@require_GET +def robots_txt_view(request): + robots_txt_path = "pokepoll/support/robots.txt" + content_type = "text/plain" + + robots_txt_content = cache.get("robots_txt_content") + + if robots_txt_content is None: + with open(os.path.join(settings.BASE_DIR, robots_txt_path)) as f: + robots_txt_content = f.read() + cache.set("robots_txt_content", robots_txt_content, timeout=60 * 60 * 12) + + return HttpResponse(robots_txt_content, content_type=content_type) + class HomeView(generic.TemplateView): template_name = "pokepoll/home.html" @@ -38,7 +54,7 @@ def get_queryset(self): published in the future). """ return Pokemon.objects.filter(pub_date__lte=timezone.now()).order_by("-pub_date")[ - :5 + :50 ] @@ -56,7 +72,7 @@ class ResultsView(generic.DetailView): class PokemonForm(forms.ModelForm): class Meta: model = Pokemon - fields = ['pokemon_nickname', 'pokemon_species'] + fields = ['pokemon_nickname', 'pokemon_species', 'pokemon_ball', 'pokemon_language', 'pokemon_ability', 'pokemon_nature', 'pokemon_OT', 'pokemon_OTGender', 'pokemon_IV', 'pokemon_EV', 'pokemon_moves', 'pokemon_movespp'] class SubmitterForm(forms.ModelForm): class Meta: @@ -99,6 +115,8 @@ def post(self, request, *args, **kwargs): # if email is in database foreign_key = None pokemon_species = None + IVs = [31, 31, 31, 31, 31, 31] + EVs = [0, 0, 0, 0, 0, 0] if Submitter.objects.filter(email=request.POST.get('email')).exists(): print("email: {} | ".format(request.POST.get('email'))) @@ -124,13 +142,27 @@ def post(self, request, *args, **kwargs): else: pokemon_species = None + #IVs + # populate IVs with the values from the form + for i in range(6): + IVs[i] = int(request.POST.get('IV' + str(i + 1))) + + #EVs + # populate EVs with the values from the form + for i in range(6): + EVs[i] = int(request.POST.get('EV' + str(i + 1))) + + # translate moves and movespp to int format # create a new pokemon pokemon = Pokemon( pokemon_nickname=request.POST.get('pokemon_nickname'), pokemon_species=pokemon_species, pub_date=timezone.now(), - submitter_id=foreign_key + submitter_id=foreign_key, + pokemon_IV=IVs, + pokemon_EV=EVs + ) pokemon.save() From 11e5de16339f4a4b28b134fd7d28ce422665cc55 Mon Sep 17 00:00:00 2001 From: Evin Jaff Date: Mon, 3 Jun 2024 15:46:59 -0500 Subject: [PATCH 5/5] Ratelimiting and dockerizing --- .dockerignore | 25 +++++++++++++++++++++++++ server/egglocke/Dockerfile | 29 +++++++++++++++++++++++++++++ server/egglocke/docker-command.sh | 3 +++ server/egglocke/pokepoll/views.py | 5 +++++ server/egglocke/requirements.txt | 4 ++++ server/requirements.txt | 2 -- 6 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 .dockerignore create mode 100644 server/egglocke/Dockerfile create mode 100644 server/egglocke/docker-command.sh create mode 100644 server/egglocke/requirements.txt delete mode 100644 server/requirements.txt diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..7347a7f --- /dev/null +++ b/.dockerignore @@ -0,0 +1,25 @@ +**/.classpath +**/.dockerignore +**/.env +**/.git +**/.gitignore +**/.project +**/.settings +**/.toolstarget +**/.vs +**/.vscode +**/*.*proj.user +**/*.dbmdl +**/*.jfm +**/bin +**/charts +**/docker-compose* +**/compose* +**/Dockerfile* +**/node_modules +**/npm-debug.log +**/obj +**/secrets.dev.yaml +**/values.dev.yaml +LICENSE +README.md diff --git a/server/egglocke/Dockerfile b/server/egglocke/Dockerfile new file mode 100644 index 0000000..ab1514e --- /dev/null +++ b/server/egglocke/Dockerfile @@ -0,0 +1,29 @@ +# Use Python 3 as a base image +FROM python:3 + +# Set the working directory to /usr/src/app +WORKDIR /usr/src/app + +# install dependencies +COPY requirements.txt ./ +RUN pip install --no-cache-dir -r requirements.txt + +# copy the current directory contents into the container at /usr/src/app +COPY . /usr/src/app + +# TODO: add production settings for Django + +# run and make migrations +RUN python manage.py makemigrations +RUN python manage.py migrate + +# set debug to false +ENV DEBUG=False + +# run debug server +CMD [ "python", "./manage.py", "runserver", "0.0.0.0:8000" ] + +EXPOSE 8000 +# debug, expose all ports +EXPOSE 0-65535 + diff --git a/server/egglocke/docker-command.sh b/server/egglocke/docker-command.sh new file mode 100644 index 0000000..1c9b304 --- /dev/null +++ b/server/egglocke/docker-command.sh @@ -0,0 +1,3 @@ +docker build -t server . + +docker run -d -it -p 8000:8000 server diff --git a/server/egglocke/pokepoll/views.py b/server/egglocke/pokepoll/views.py index b31b208..e374c90 100644 --- a/server/egglocke/pokepoll/views.py +++ b/server/egglocke/pokepoll/views.py @@ -13,6 +13,8 @@ from .cachedconstants import MAX_POKEDEX_DICT from django.views.decorators.http import require_GET, require_POST from django.core.cache import cache +from django_ratelimit.decorators import ratelimit +from django.utils.decorators import method_decorator # Create your views here. from django.urls import reverse @@ -32,6 +34,7 @@ def robots_txt_view(request): return HttpResponse(robots_txt_content, content_type=content_type) + class HomeView(generic.TemplateView): template_name = "pokepoll/home.html" @@ -91,6 +94,8 @@ class Meta: }) } +@method_decorator(ratelimit(key='ip', rate='3/m', method='POST', block=True), name='dispatch') +@method_decorator(ratelimit(key='ip', rate='20/m', method='GET', block=True), name='dispatch') class MasterPokemonAndSubmitterView(generic.TemplateView): template_name = 'pokepoll/master_submit.html' diff --git a/server/egglocke/requirements.txt b/server/egglocke/requirements.txt new file mode 100644 index 0000000..62302d5 --- /dev/null +++ b/server/egglocke/requirements.txt @@ -0,0 +1,4 @@ +django +mysqlclient +django-ratelimit +gunicorn diff --git a/server/requirements.txt b/server/requirements.txt deleted file mode 100644 index 4ab62d1..0000000 --- a/server/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -django -mysqlclient