From 3ff9540c57a5fcbbc4071b729d3a7fd2d2892657 Mon Sep 17 00:00:00 2001 From: Sidak Date: Sat, 20 Jun 2020 20:12:53 +0530 Subject: [PATCH 1/8] Add support for type weaknesses --- lib/data/pokemons.dart | 44 ++++++ lib/data/types.dart | 125 ++++++++++++++++++ lib/models/type.dart | 11 ++ .../pokemon_info/widgets/tab_base_stats.dart | 46 ++++++- lib/widgets/pokemon_type.dart | 39 ++++-- 5 files changed, 253 insertions(+), 12 deletions(-) create mode 100644 lib/data/types.dart create mode 100644 lib/models/type.dart diff --git a/lib/data/pokemons.dart b/lib/data/pokemons.dart index 1e1c418..8c7e7ef 100644 --- a/lib/data/pokemons.dart +++ b/lib/data/pokemons.dart @@ -58,3 +58,47 @@ Color getPokemonColor(String typeOfPokemon) { return AppColors.lightBlue; } } + +// Taken from Bulbapedia - Type color templates +Color getPokemonColor2(String label){ + switch(label.toLowerCase()){ + case "bug": + return Color(0xFFA8B820); + case "dark": + return Color(0xFF705848); + case "dragon": + return Color(0xFF7038F8); + case "electric": + return Color(0xFFF8D030); + case "fairy": + return Color(0xFFEE99AC); + case "fighting": + return Color(0xFFC03028); + case "fire": + return Color(0xFFF08030); + case "flying": + return Color(0xFFA890F0); + case "ghost": + return Color(0xFF705898); + case "grass": + return Color(0xFF78C850); + case "ground": + return Color(0xFFE0C068); + case "ice": + return Color(0xFF98D8D8); + case "normal": + return Color(0xFFA8A878); + case "poison": + return Color(0xFFA040A0); + case "psychic": + return Color(0xFFF85888); + case "rock": + return Color(0xFFB8A038); + case "steel": + return Color(0xFFB8B8D0); + case "water": + return Color(0xFF6890F0); + default: + return Color(0xFF68A090); + } +} diff --git a/lib/data/types.dart b/lib/data/types.dart new file mode 100644 index 0000000..a294b82 --- /dev/null +++ b/lib/data/types.dart @@ -0,0 +1,125 @@ +import '../models/type.dart'; + +const List listOfTypes = ["Normal", "Fire", "Water", "Electric", + "Grass", "Ice", "Fighting", "Poison", "Ground", "Flying", "Psychic", "Bug", + "Rock", "Ghost", "Dragon", "Dark", "Steel", "Fairy"]; + +const List types = [ + Type( + name: "Normal", + superEffective: ["Fighting"], + notEffective: [], + immune: ["Ghost"], + ), + Type( + name: "Fire", + superEffective: ["Ground", "Rock", "Water"], + notEffective: ["Bug", "Fairy", "Fire", "Grass", "Ice", "Steel"], + immune: [], + ), + Type( + name: "Water", + superEffective: ["Electric", "Grass"], + notEffective: ["Fire", "Ice", "Steel", "Water"], + immune: [], + ), + Type( + name: "Electric", + superEffective: ["Ground"], + notEffective: ["Electric", "Flying", "Steel"], + immune: [], + ), + Type( + name: "Grass", + superEffective: ["Bug", "Ice", "Fly", "Fire", "Poison"], + notEffective: ["Electric", "Grass", "Ground", "Water"], + immune: [], + ), + Type( + name: "Ice", + superEffective: ["Fire", "Fighting", "Rock", "Steel"], + notEffective: ["Ice"], + immune: [], + ), + Type( + name: "Fighting", + superEffective: ["Flying", "Psychic", "Fairy"], + notEffective: ["Bug", "Rock", "Dark"], + immune: [], + ), + Type( + name: "Poison", + superEffective: ["Ground", "Psychic"], + notEffective: ["Fighting", "Poison", "Bug", "Fairy"], + immune: [], + ), + Type( + name: "Ground", + superEffective: ["Water", "Grass", "Ice"], + notEffective: ["Poison", "Rock"], + immune: ["Electric"], + ), + Type( + name: "Flying", + superEffective: ["Electric", "Ice", "Rock"], + notEffective: ["Grass", "Fighting", "Bug"], + immune: ["Ground"], + ), + Type( + name: "Psychic", + superEffective: ["Bug", "Ghost", "Dark"], + notEffective: ["Fighting", "Psychic"], + immune: [], + ), + Type( + name: "Bug", + superEffective: ["Fire", "Flying", "Rock"], + notEffective: ["Grass", "Fighting", "Ground"], + immune: [], + ), + Type( + name: "Rock", + superEffective: ["Water", "Grass", "Fighting", "Ground", "Steel"], + notEffective: ["Normal", "Fire", "Poison", "Flying"], + immune: [], + ), + Type( + name: "Ghost", + superEffective: ["Ghost", "Dark"], + notEffective: ["Poison", "Bug"], + immune: ["Normal", "Fighting"], + ), + Type( + name: "Dragon", + superEffective: ["Ice", "Dragon", "Fairy"], + notEffective: ["Fire", "Water", "Electric", "Grass"], + immune: [], + ), + Type( + name: "Dark", + superEffective: ["Fighting", "Bug", "Fairy"], + notEffective: ["Ghost", "Dark"], + immune: ["Psychic"], + ), + Type( + name: "Steel", + superEffective: ["Fire", "Fighting", "Ground"], + notEffective: ["Normal", "Grass", "Ice", "Flying", "Psychic", "Bug", "Rock", "Dragon", "Steel","Fairy"], + immune: ["Poison"], + ), + Type( + name: "Fairy", + superEffective: ["Poison", "Steel"], + notEffective: ["Fighting", "Bug", "Dark"], + immune: ["Dragon"], + ), +]; + +Type getTypeFromString(String name){ + for(Type type in types){ + if(type.name.toLowerCase() == name.toLowerCase()){ + return type; + } + } + return null; +} \ No newline at end of file diff --git a/lib/models/type.dart b/lib/models/type.dart new file mode 100644 index 0000000..09d5617 --- /dev/null +++ b/lib/models/type.dart @@ -0,0 +1,11 @@ +import 'package:flutter/foundation.dart'; + +class Type { + + const Type({@required this.name, @required this.superEffective, @required this.notEffective, @required this.immune}); + + final String name; + final List superEffective; + final List notEffective; + final List immune; +} \ No newline at end of file diff --git a/lib/screens/pokemon_info/widgets/tab_base_stats.dart b/lib/screens/pokemon_info/widgets/tab_base_stats.dart index 3e3f298..ceb0d02 100644 --- a/lib/screens/pokemon_info/widgets/tab_base_stats.dart +++ b/lib/screens/pokemon_info/widgets/tab_base_stats.dart @@ -1,5 +1,8 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:pokedex/data/types.dart'; +import 'package:pokedex/models/type.dart'; +import 'package:pokedex/widgets/pokemon_type.dart'; import 'package:provider/provider.dart'; import '../../../configs/AppColors.dart'; @@ -94,7 +97,7 @@ class _PokemonBaseStatsState extends State with SingleTickerPr return [ Stat(animation: _animation, label: "Hp", value: pokemon.hp), SizedBox(height: 14), - Stat(animation: _animation, label: "Atttack", value: pokemon.attack), + Stat(animation: _animation, label: "Attack", value: pokemon.attack), SizedBox(height: 14), Stat(animation: _animation, label: "Defense", value: pokemon.defense), SizedBox(height: 14), @@ -112,6 +115,39 @@ class _PokemonBaseStatsState extends State with SingleTickerPr ]; } + String _removeTrailingZero(double n){ + String s = n.toString().replaceAll(RegExp(r"([.]*0)(?!.*\d)"), ""); + return s; + } + + double _getTypeEffectiveness(Pokemon pokemon, String type){ + double effectiveness = 1; + for(String pokemonType in pokemon.types){ + Type ty = getTypeFromString(pokemonType); + if(ty.immune.contains(type)){ + return 0; + } + if(ty.superEffective.contains(type)){ + effectiveness *= 2; + } + if(ty.notEffective.contains(type)){ + effectiveness *= 0.5; + } + } + return effectiveness; + } + + List generateEffectivenessWidget(Pokemon pokemon){ + Map effectiveness = Map.fromIterable(listOfTypes, key: (type) => type, value: (type) => _getTypeEffectiveness(pokemon, type)); + List list = new List(); + effectiveness.forEach((key, value) { + list.add( + PokemonType(key, large: true, colored: true, extra: "x" + _removeTrailingZero(value),), + ); + }); + return list; + } + @override Widget build(BuildContext context) { return Container( @@ -124,7 +160,7 @@ class _PokemonBaseStatsState extends State with SingleTickerPr ...generateStatWidget(model.pokemon), SizedBox(height: 27), Text( - "Type defenses", + "Type effectiveness", style: TextStyle( fontSize: 16, fontWeight: FontWeight.bold, @@ -136,6 +172,12 @@ class _PokemonBaseStatsState extends State with SingleTickerPr "The effectiveness of each type on ${model.pokemon.name}.", style: TextStyle(color: AppColors.black.withOpacity(0.6)), ), + SizedBox(height: 15), + Wrap( + spacing: 5, + runSpacing: 5, + children: generateEffectivenessWidget(model.pokemon) + ), ], ), ), diff --git a/lib/widgets/pokemon_type.dart b/lib/widgets/pokemon_type.dart index 69e1676..96c3ce5 100644 --- a/lib/widgets/pokemon_type.dart +++ b/lib/widgets/pokemon_type.dart @@ -1,10 +1,13 @@ import 'package:flutter/material.dart'; +import 'package:pokedex/data/pokemons.dart'; class PokemonType extends StatelessWidget { - const PokemonType(this.label, {Key key, this.large = false}) : super(key: key); + const PokemonType(this.label, {Key key, this.large = false, this.colored = false, this.extra = ""}) : super(key: key); final String label; + final String extra; final bool large; + final bool colored; @override Widget build(BuildContext context) { @@ -17,16 +20,32 @@ class PokemonType extends StatelessWidget { ), decoration: ShapeDecoration( shape: StadiumBorder(), - color: Colors.white.withOpacity(0.2), + color: (colored ? getPokemonColor2(label) : Colors.white).withOpacity(0.2), ), - child: Text( - label, - style: TextStyle( - fontSize: large ? 12 : 8, - height: 0.8, - fontWeight: large ? FontWeight.bold : FontWeight.normal, - color: Colors.white, - ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + label, + style: TextStyle( + fontSize: large ? 12 : 8, + height: 0.8, + fontWeight: large ? FontWeight.bold : FontWeight.normal, + color: (colored ? getPokemonColor2(label) : Colors.white), + ), + textAlign: TextAlign.center, + ), + SizedBox(width: 5,), + Text( + extra, + style: TextStyle( + fontSize: large ? 12 : 8, + height: 0.8, + fontWeight: large ? FontWeight.bold : FontWeight.normal, + color: (colored ? getPokemonColor2(label) : Colors.white), + ), + ), + ], ), ), ); From 640109e1e34f02fcd1b74d3e57ef971ab03936dd Mon Sep 17 00:00:00 2001 From: Sidak Date: Sun, 21 Jun 2020 00:46:41 +0530 Subject: [PATCH 2/8] Changes made to Type Weaknesses --- lib/configs/AppColors.dart | 8 + lib/data/pokemons.dart | 106 +++--- lib/data/types.dart | 356 +++++++++++++----- lib/models/type.dart | 12 +- .../pokemon_info/widgets/tab_base_stats.dart | 59 ++- lib/utils/string.dart | 8 + lib/widgets/pokemon_type.dart | 15 +- pubspec.lock | 7 + pubspec.yaml | 1 + 9 files changed, 390 insertions(+), 182 deletions(-) create mode 100644 lib/utils/string.dart diff --git a/lib/configs/AppColors.dart b/lib/configs/AppColors.dart index 22b8e57..e3e03f7 100644 --- a/lib/configs/AppColors.dart +++ b/lib/configs/AppColors.dart @@ -1,21 +1,29 @@ import 'package:flutter/material.dart'; class AppColors { + static const Color beige = Color(0xFFA8A878); static const Color black = Color(0xFF303943); static const Color blue = Color(0xFF429BED); static const Color brown = Color(0xFFB1736C); + static const Color darkBrown = Color(0xD0795548); static const Color grey = Color(0x64303943); static const Color indigo = Color(0xFF6C79DB); static const Color lightBlue = Color(0xFF58ABF6); static const Color lightBrown = Color(0xFFCA8179); + static const Color lightCyan = Color(0xFF98D8D8); + static const Color lightGreen = Color(0xFF78C850); static const Color lighterGrey = Color(0xFFF4F5F4); static const Color lightGrey = Color(0xFFF5F5F5); + static const Color lightPink = Color(0xFFEE99AC); static const Color lightPurple = Color(0xFF9F5BBA); static const Color lightRed = Color(0xFFF7786B); static const Color lightTeal = Color(0xFF2CDAB1); static const Color lightYellow = Color(0xFFFFCE4B); + static const Color lilac = Color(0xFFA890F0); + static const Color pink = Color(0xFFF85888); static const Color purple = Color(0xFF7C538C); static const Color red = Color(0xFFFA6555); static const Color teal = Color(0xFF4FC1A6); static const Color yellow = Color(0xFFF6C747); + static const Color violet = Color(0xD07038F8); } diff --git a/lib/data/pokemons.dart b/lib/data/pokemons.dart index 8c7e7ef..6d0a46d 100644 --- a/lib/data/pokemons.dart +++ b/lib/data/pokemons.dart @@ -1,16 +1,20 @@ import 'dart:convert' as json; import 'package:flutter/material.dart'; +import 'package:pokedex/data/types.dart'; +import 'package:pokedex/models/type.dart'; import '../configs/AppColors.dart'; import '../models/pokemon.dart'; // Parses Pokemon.json File Future> getPokemonsList(BuildContext context) async { - String jsonString = await DefaultAssetBundle.of(context).loadString("assets/pokemons.json"); + String jsonString = + await DefaultAssetBundle.of(context).loadString("assets/pokemons.json"); List jsonData = json.jsonDecode(jsonString); - List pokemons = jsonData.map((json) => Pokemon.fromJson(json)).toList(); + List pokemons = + jsonData.map((json) => Pokemon.fromJson(json)).toList(); for (final pokemon in pokemons) { List evolutions = pokemon.evolutions @@ -24,10 +28,33 @@ Future> getPokemonsList(BuildContext context) async { return pokemons; } +Map getTypeEffectiveness(Pokemon pokemon) { + Map effectivenessMap = new Map(); + for (EffectiveType effectiveType in effectiveTypes) { + double typeEffectiveness = 1; + for (String pokemonTypeName in pokemon.types) { + final pokemonEffectiveType = getEffectiveTypeFromType(pokemonTypeName); + if (pokemonEffectiveType.immune.contains(effectiveType.name)) { + typeEffectiveness = 0; + } + if (pokemonEffectiveType.superEffective.contains(effectiveType.name)) { + typeEffectiveness *= 2; + } + if (pokemonEffectiveType.notEffective.contains(effectiveType.name)) { + typeEffectiveness *= 0.5; + } + } + effectivenessMap[effectiveType.name] = typeEffectiveness; + } + return effectivenessMap; +} + // A function to get Color for container of pokemon Color getPokemonColor(String typeOfPokemon) { switch (typeOfPokemon.toLowerCase()) { case 'grass': + return AppColors.lightGreen; // was lightTeal + case 'bug': return AppColors.lightTeal; @@ -35,70 +62,51 @@ Color getPokemonColor(String typeOfPokemon) { return AppColors.lightRed; case 'water': + return AppColors.lightBlue; + case 'fighting': + return AppColors.red; + case 'normal': - return AppColors.lightBlue; + return AppColors.beige; case 'electric': - case 'psychic': return AppColors.lightYellow; + case 'psychic': + return AppColors.lightPink; + case 'poison': - case 'ghost': return AppColors.lightPurple; + case 'ghost': + return AppColors.purple; // was lightPurple + case 'ground': + return AppColors.darkBrown; // was lightBrown + case 'rock': return AppColors.lightBrown; case 'dark': return AppColors.black; - default: - return AppColors.lightBlue; - } -} + case 'dragon': + return AppColors.violet; + + case 'fairy': + return AppColors.pink; + + case 'flying': + return AppColors.lilac; + + case 'ice': + return AppColors.lightCyan; + + case 'steel': + return AppColors.grey; -// Taken from Bulbapedia - Type color templates -Color getPokemonColor2(String label){ - switch(label.toLowerCase()){ - case "bug": - return Color(0xFFA8B820); - case "dark": - return Color(0xFF705848); - case "dragon": - return Color(0xFF7038F8); - case "electric": - return Color(0xFFF8D030); - case "fairy": - return Color(0xFFEE99AC); - case "fighting": - return Color(0xFFC03028); - case "fire": - return Color(0xFFF08030); - case "flying": - return Color(0xFFA890F0); - case "ghost": - return Color(0xFF705898); - case "grass": - return Color(0xFF78C850); - case "ground": - return Color(0xFFE0C068); - case "ice": - return Color(0xFF98D8D8); - case "normal": - return Color(0xFFA8A878); - case "poison": - return Color(0xFFA040A0); - case "psychic": - return Color(0xFFF85888); - case "rock": - return Color(0xFFB8A038); - case "steel": - return Color(0xFFB8B8D0); - case "water": - return Color(0xFF6890F0); default: - return Color(0xFF68A090); + return AppColors.lightBlue; } } diff --git a/lib/data/types.dart b/lib/data/types.dart index a294b82..1f27eb3 100644 --- a/lib/data/types.dart +++ b/lib/data/types.dart @@ -1,125 +1,303 @@ import '../models/type.dart'; -const List listOfTypes = ["Normal", "Fire", "Water", "Electric", - "Grass", "Ice", "Fighting", "Poison", "Ground", "Flying", "Psychic", "Bug", - "Rock", "Ghost", "Dragon", "Dark", "Steel", "Fairy"]; +const List types = [ + 'Normal', + 'Fire', + 'Water', + 'Electric', + 'Grass', + 'Ice', + 'Fighting', + 'Poison', + 'Ground', + 'Flying', + 'Psychic', + 'Bug', + 'Rock', + 'Ghost', + 'Dragon', + 'Dark', + 'Steel', + 'Fairy' +]; -const List types = [ - Type( - name: "Normal", - superEffective: ["Fighting"], +const List effectiveTypes = [ + EffectiveType( + name: 'Normal', + superEffective: [ + 'Fighting', + ], notEffective: [], - immune: ["Ghost"], + immune: [ + 'Ghost', + ], ), - Type( - name: "Fire", - superEffective: ["Ground", "Rock", "Water"], - notEffective: ["Bug", "Fairy", "Fire", "Grass", "Ice", "Steel"], + EffectiveType( + name: 'Fire', + superEffective: [ + 'Ground', + 'Rock', + 'Water', + ], + notEffective: [ + 'Bug', + 'Fairy', + 'Fire', + 'Grass', + 'Ice', + 'Steel', + ], immune: [], ), - Type( - name: "Water", - superEffective: ["Electric", "Grass"], - notEffective: ["Fire", "Ice", "Steel", "Water"], + EffectiveType( + name: 'Water', + superEffective: [ + 'Electric', + 'Grass', + ], + notEffective: [ + 'Fire', + 'Ice', + 'Steel', + 'Water', + ], immune: [], ), - Type( - name: "Electric", - superEffective: ["Ground"], - notEffective: ["Electric", "Flying", "Steel"], + EffectiveType( + name: 'Electric', + superEffective: [ + 'Ground', + ], + notEffective: [ + 'Electric', + 'Flying', + 'Steel', + ], immune: [], ), - Type( - name: "Grass", - superEffective: ["Bug", "Ice", "Fly", "Fire", "Poison"], - notEffective: ["Electric", "Grass", "Ground", "Water"], + EffectiveType( + name: 'Grass', + superEffective: [ + 'Bug', + 'Ice', + 'Fly', + 'Fire', + 'Poison', + ], + notEffective: [ + 'Electric', + 'Grass', + 'Ground', + 'Water', + ], immune: [], ), - Type( - name: "Ice", - superEffective: ["Fire", "Fighting", "Rock", "Steel"], - notEffective: ["Ice"], + EffectiveType( + name: 'Ice', + superEffective: [ + 'Fire', + 'Fighting', + 'Rock', + 'Steel', + ], + notEffective: [ + 'Ice', + ], immune: [], ), - Type( - name: "Fighting", - superEffective: ["Flying", "Psychic", "Fairy"], - notEffective: ["Bug", "Rock", "Dark"], + EffectiveType( + name: 'Fighting', + superEffective: [ + 'Flying', + 'Psychic', + 'Fairy', + ], + notEffective: [ + 'Bug', + 'Rock', + 'Dark', + ], immune: [], ), - Type( - name: "Poison", - superEffective: ["Ground", "Psychic"], - notEffective: ["Fighting", "Poison", "Bug", "Fairy"], + EffectiveType( + name: 'Poison', + superEffective: [ + 'Ground', + 'Psychic', + ], + notEffective: [ + 'Fighting', + 'Poison', + 'Bug', + 'Fairy', + ], immune: [], ), - Type( - name: "Ground", - superEffective: ["Water", "Grass", "Ice"], - notEffective: ["Poison", "Rock"], - immune: ["Electric"], - ), - Type( - name: "Flying", - superEffective: ["Electric", "Ice", "Rock"], - notEffective: ["Grass", "Fighting", "Bug"], - immune: ["Ground"], - ), - Type( - name: "Psychic", - superEffective: ["Bug", "Ghost", "Dark"], - notEffective: ["Fighting", "Psychic"], + EffectiveType( + name: 'Ground', + superEffective: [ + 'Water', + 'Grass', + 'Ice', + ], + notEffective: [ + 'Poison', + 'Rock', + ], + immune: [ + 'Electric', + ], + ), + EffectiveType( + name: 'Flying', + superEffective: [ + 'Electric', + 'Ice', + 'Rock', + ], + notEffective: [ + 'Grass', + 'Fighting', + 'Bug', + ], + immune: [ + 'Ground', + ], + ), + EffectiveType( + name: 'Psychic', + superEffective: [ + 'Bug', + 'Ghost', + 'Dark', + ], + notEffective: [ + 'Fighting', + 'Psychic', + ], immune: [], ), - Type( - name: "Bug", - superEffective: ["Fire", "Flying", "Rock"], - notEffective: ["Grass", "Fighting", "Ground"], + EffectiveType( + name: 'Bug', + superEffective: [ + 'Fire', + 'Flying', + 'Rock', + ], + notEffective: [ + 'Grass', + 'Fighting', + 'Ground', + ], immune: [], ), - Type( - name: "Rock", - superEffective: ["Water", "Grass", "Fighting", "Ground", "Steel"], - notEffective: ["Normal", "Fire", "Poison", "Flying"], + EffectiveType( + name: 'Rock', + superEffective: [ + 'Water', + 'Grass', + 'Fighting', + 'Ground', + 'Steel', + ], + notEffective: [ + 'Normal', + 'Fire', + 'Poison', + 'Flying', + ], immune: [], ), - Type( - name: "Ghost", - superEffective: ["Ghost", "Dark"], - notEffective: ["Poison", "Bug"], - immune: ["Normal", "Fighting"], + EffectiveType( + name: 'Ghost', + superEffective: [ + 'Ghost', + 'Dark', + ], + notEffective: [ + 'Poison', + 'Bug', + ], + immune: [ + 'Normal', + 'Fighting', + ], ), - Type( - name: "Dragon", - superEffective: ["Ice", "Dragon", "Fairy"], - notEffective: ["Fire", "Water", "Electric", "Grass"], + EffectiveType( + name: 'Dragon', + superEffective: [ + 'Ice', + 'Dragon', + 'Fairy', + ], + notEffective: [ + 'Fire', + 'Water', + 'Electric', + 'Grass', + ], immune: [], ), - Type( - name: "Dark", - superEffective: ["Fighting", "Bug", "Fairy"], - notEffective: ["Ghost", "Dark"], - immune: ["Psychic"], + EffectiveType( + name: 'Dark', + superEffective: [ + 'Fighting', + 'Bug', + 'Fairy', + ], + notEffective: [ + 'Ghost', + 'Dark', + ], + immune: [ + 'Psychic', + ], ), - Type( - name: "Steel", - superEffective: ["Fire", "Fighting", "Ground"], - notEffective: ["Normal", "Grass", "Ice", "Flying", "Psychic", "Bug", "Rock", "Dragon", "Steel","Fairy"], - immune: ["Poison"], + EffectiveType( + name: 'Steel', + superEffective: [ + 'Fire', + 'Fighting', + 'Ground', + ], + notEffective: [ + 'Normal', + 'Grass', + 'Ice', + 'Flying', + 'Psychic', + 'Bug', + 'Rock', + 'Dragon', + 'Steel', + 'Fairy', + ], + immune: [ + 'Poison', + ], ), - Type( - name: "Fairy", - superEffective: ["Poison", "Steel"], - notEffective: ["Fighting", "Bug", "Dark"], - immune: ["Dragon"], + EffectiveType( + name: 'Fairy', + superEffective: [ + 'Poison', + 'Steel', + ], + notEffective: [ + 'Fighting', + 'Bug', + 'Dark', + ], + immune: [ + 'Dragon', + ], ), ]; -Type getTypeFromString(String name){ - for(Type type in types){ - if(type.name.toLowerCase() == name.toLowerCase()){ - return type; +EffectiveType getEffectiveTypeFromType(String type) { + for (EffectiveType effectiveType in effectiveTypes) { + if (effectiveType.name.toLowerCase() == type.toLowerCase()) { + return effectiveType; } } return null; -} \ No newline at end of file +} diff --git a/lib/models/type.dart b/lib/models/type.dart index 09d5617..7f39c37 100644 --- a/lib/models/type.dart +++ b/lib/models/type.dart @@ -1,11 +1,15 @@ import 'package:flutter/foundation.dart'; -class Type { - - const Type({@required this.name, @required this.superEffective, @required this.notEffective, @required this.immune}); +class EffectiveType { + const EffectiveType({ + @required this.name, + @required this.superEffective, + @required this.notEffective, + @required this.immune, + }); final String name; final List superEffective; final List notEffective; final List immune; -} \ No newline at end of file +} diff --git a/lib/screens/pokemon_info/widgets/tab_base_stats.dart b/lib/screens/pokemon_info/widgets/tab_base_stats.dart index ceb0d02..fc4cb09 100644 --- a/lib/screens/pokemon_info/widgets/tab_base_stats.dart +++ b/lib/screens/pokemon_info/widgets/tab_base_stats.dart @@ -1,7 +1,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:pokedex/data/types.dart'; -import 'package:pokedex/models/type.dart'; +import 'package:pokedex/data/pokemons.dart'; +import 'package:pokedex/utils/string.dart'; import 'package:pokedex/widgets/pokemon_type.dart'; import 'package:provider/provider.dart'; @@ -63,7 +63,8 @@ class PokemonBaseStats extends StatefulWidget { _PokemonBaseStatsState createState() => _PokemonBaseStatsState(); } -class _PokemonBaseStatsState extends State with SingleTickerProviderStateMixin { +class _PokemonBaseStatsState extends State + with SingleTickerProviderStateMixin { Animation _animation; AnimationController _controller; @@ -101,9 +102,15 @@ class _PokemonBaseStatsState extends State with SingleTickerPr SizedBox(height: 14), Stat(animation: _animation, label: "Defense", value: pokemon.defense), SizedBox(height: 14), - Stat(animation: _animation, label: "Sp. Atk", value: pokemon.specialAttack), + Stat( + animation: _animation, + label: "Sp. Atk", + value: pokemon.specialAttack), SizedBox(height: 14), - Stat(animation: _animation, label: "Sp. Def", value: pokemon.specialDefense), + Stat( + animation: _animation, + label: "Sp. Def", + value: pokemon.specialDefense), SizedBox(height: 14), Stat(animation: _animation, label: "Speed", value: pokemon.speed), SizedBox(height: 14), @@ -115,34 +122,17 @@ class _PokemonBaseStatsState extends State with SingleTickerPr ]; } - String _removeTrailingZero(double n){ - String s = n.toString().replaceAll(RegExp(r"([.]*0)(?!.*\d)"), ""); - return s; - } - - double _getTypeEffectiveness(Pokemon pokemon, String type){ - double effectiveness = 1; - for(String pokemonType in pokemon.types){ - Type ty = getTypeFromString(pokemonType); - if(ty.immune.contains(type)){ - return 0; - } - if(ty.superEffective.contains(type)){ - effectiveness *= 2; - } - if(ty.notEffective.contains(type)){ - effectiveness *= 0.5; - } - } - return effectiveness; - } - - List generateEffectivenessWidget(Pokemon pokemon){ - Map effectiveness = Map.fromIterable(listOfTypes, key: (type) => type, value: (type) => _getTypeEffectiveness(pokemon, type)); + List buildEffectivenesses(Pokemon pokemon) { + Map effectiveness = getTypeEffectiveness(pokemon); List list = new List(); - effectiveness.forEach((key, value) { + effectiveness.forEach((key, value) { list.add( - PokemonType(key, large: true, colored: true, extra: "x" + _removeTrailingZero(value),), + PokemonType( + key, + large: true, + colored: true, + extra: 'x' + removeTrailingZero(value), + ), ); }); return list; @@ -174,10 +164,9 @@ class _PokemonBaseStatsState extends State with SingleTickerPr ), SizedBox(height: 15), Wrap( - spacing: 5, - runSpacing: 5, - children: generateEffectivenessWidget(model.pokemon) - ), + spacing: 5, + runSpacing: 5, + children: buildEffectivenesses(model.pokemon)), ], ), ), diff --git a/lib/utils/string.dart b/lib/utils/string.dart new file mode 100644 index 0000000..b2bc09f --- /dev/null +++ b/lib/utils/string.dart @@ -0,0 +1,8 @@ +import 'package:intl/intl.dart'; + +String removeTrailingZero(double n) { + NumberFormat formatter = NumberFormat(); + formatter.minimumFractionDigits = 0; + formatter.maximumFractionDigits = 2; + return formatter.format(n); +} diff --git a/lib/widgets/pokemon_type.dart b/lib/widgets/pokemon_type.dart index 96c3ce5..7210bd8 100644 --- a/lib/widgets/pokemon_type.dart +++ b/lib/widgets/pokemon_type.dart @@ -2,7 +2,9 @@ import 'package:flutter/material.dart'; import 'package:pokedex/data/pokemons.dart'; class PokemonType extends StatelessWidget { - const PokemonType(this.label, {Key key, this.large = false, this.colored = false, this.extra = ""}) : super(key: key); + const PokemonType(this.label, + {Key key, this.large = false, this.colored = false, this.extra = ""}) + : super(key: key); final String label; final String extra; @@ -20,7 +22,8 @@ class PokemonType extends StatelessWidget { ), decoration: ShapeDecoration( shape: StadiumBorder(), - color: (colored ? getPokemonColor2(label) : Colors.white).withOpacity(0.2), + color: (colored ? getPokemonColor(label) : Colors.white) + .withOpacity(0.2), ), child: Row( mainAxisSize: MainAxisSize.min, @@ -31,18 +34,20 @@ class PokemonType extends StatelessWidget { fontSize: large ? 12 : 8, height: 0.8, fontWeight: large ? FontWeight.bold : FontWeight.normal, - color: (colored ? getPokemonColor2(label) : Colors.white), + color: colored ? getPokemonColor(label) : Colors.white, ), textAlign: TextAlign.center, ), - SizedBox(width: 5,), + SizedBox( + width: 5, + ), Text( extra, style: TextStyle( fontSize: large ? 12 : 8, height: 0.8, fontWeight: large ? FontWeight.bold : FontWeight.normal, - color: (colored ? getPokemonColor2(label) : Colors.white), + color: colored ? getPokemonColor(label) : Colors.white, ), ), ], diff --git a/pubspec.lock b/pubspec.lock index 7d36f1d..62ba2c4 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -109,6 +109,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.12" + intl: + dependency: "direct main" + description: + name: intl + url: "https://pub.dartlang.org" + source: hosted + version: "0.16.1" matcher: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index c821c9f..76e177e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -25,6 +25,7 @@ dependencies: cupertino_icons: ^0.1.2 provider: ^3.1.0 cached_network_image: ^2.0.0-rc + intl: ^0.16.1 dev_dependencies: flutter_test: From ff5fe692d19ca3fd2607b78dcfddf9883db0db0a Mon Sep 17 00:00:00 2001 From: Sidak Date: Sun, 21 Jun 2020 21:26:49 +0530 Subject: [PATCH 3/8] Add data for Abilities till gen 7 --- lib/data/abilities.dart | 238 ++++++++++++++++++++++++++++++++++++++++ lib/models/ability.dart | 23 ++++ 2 files changed, 261 insertions(+) create mode 100644 lib/data/abilities.dart create mode 100644 lib/models/ability.dart diff --git a/lib/data/abilities.dart b/lib/data/abilities.dart new file mode 100644 index 0000000..466f5fa --- /dev/null +++ b/lib/data/abilities.dart @@ -0,0 +1,238 @@ +import 'package:pokedex/models/ability.dart'; + +const List abilities = [ + Ability(id: 1, name: 'stench', description: 'Has a 10% chance of making target Pokemon flinch with each hit.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Grimer', 'Muk', 'Stunky', 'Skuntank', 'Trubbish', 'Garbodor'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Gloom'],), + Ability(id: 2, name: 'drizzle', description: 'Summons rain that lasts indefinitely upon entering battle.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Kyogre'], pokemonSecondAbility: ['Pelipper'], pokemonHiddenAbility: ['Politoed'],), + Ability(id: 3, name: 'speed-boost', description: 'Raises Speed one stage after each turn.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Yanma', 'Ninjask', 'Yanmega', 'Blaziken-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Torchic', 'Combusken', 'Blaziken', 'Carvanha', 'Sharpedo', 'Venipede', 'Whirlipede', 'Scolipede'],), + Ability(id: 4, name: 'battle-armor', description: 'Protects against critical hits.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Anorith', 'Armaldo', 'Skorupi', 'Drapion', 'Type-null'], pokemonSecondAbility: ['Kabuto', 'Kabutops'], pokemonHiddenAbility: ['Cubone', 'Marowak'],), + Ability(id: 5, name: 'sturdy', description: 'Prevents being KOed from full HP, leaving 1 HP instead. Protects against the one-hit KO moves regardless of HP.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Sudowoodo', 'Pineco', 'Forretress', 'Shuckle', 'Donphan', 'Nosepass', 'Aron', 'Lairon', 'Aggron', 'Shieldon', 'Bastiodon', 'Bonsly', 'Probopass', 'Roggenrola', 'Boldore', 'Gigalith', 'Sawk', 'Dwebble', 'Crustle', 'Cosmoem'], pokemonSecondAbility: ['Geodude', 'Graveler', 'Golem', 'Magnemite', 'Magneton', 'Onix', 'Steelix', 'Skarmory', 'Magnezone', 'Tirtouga', 'Carracosta', 'Geodude-alola', 'Graveler-alola', 'Golem-alola'], pokemonHiddenAbility: ['Relicanth', 'Regirock', 'Tyrunt', 'Carbink', 'Bergmite', 'Avalugg', 'Togedemaru', 'Togedemaru-totem'],), + Ability(id: 6, name: 'damp', description: 'Prevents self destruct, explosion, and aftermath from working while the Pokemon is in battle.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Psyduck', 'Golduck', 'Wooper', 'Quagsire'], pokemonSecondAbility: ['Poliwag', 'Poliwhirl', 'Poliwrath', 'Politoed'], pokemonHiddenAbility: ['Paras', 'Parasect', 'Horsea', 'Seadra', 'Kingdra', 'Mudkip', 'Marshtomp', 'Swampert', 'Frillish', 'Jellicent'],), + Ability(id: 7, name: 'limber', description: 'Prevents paralysis.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Persian', 'Hitmonlee', 'Ditto', 'Glameow', 'Purrloin', 'Liepard', 'Hawlucha'], pokemonSecondAbility: ['Stunfisk', 'Mareanie', 'Toxapex'], pokemonHiddenAbility: ['Buneary', 'Lopunny'],), + Ability(id: 8, name: 'sand-veil', description: 'Increases evasion to 1.25x during a sandstorm. Protects against sandstorm damage.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Sandshrew', 'Sandslash', 'Diglett', 'Dugtrio', 'Cacnea', 'Cacturne', 'Gible', 'Gabite', 'Garchomp', 'Diglett-alola', 'Dugtrio-alola'], pokemonSecondAbility: ['Gligar', 'Gliscor', 'Helioptile', 'Heliolisk'], pokemonHiddenAbility: ['Geodude', 'Graveler', 'Golem', 'Phanpy', 'Donphan', 'Larvitar', 'Stunfisk', 'Sandygast', 'Palossand'],), + Ability(id: 9, name: 'static', description: 'Has a 30% chance of paralyzing attacking Pokemon on contact.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Pikachu', 'Raichu', 'Electabuzz', 'Pichu', 'Mareep', 'Flaaffy', 'Ampharos', 'Elekid', 'Electrike', 'Manectric', 'Emolga', 'Stunfisk', 'Pikachu-rock-star', 'Pikachu-belle', 'Pikachu-pop-star', 'Pikachu-phd', 'Pikachu-libre', 'Pikachu-cosplay', 'Pikachu-original-cap', 'Pikachu-hoenn-cap', 'Pikachu-sinnoh-cap', 'Pikachu-unova-cap', 'Pikachu-kalos-cap', 'Pikachu-alola-cap', 'Pikachu-partner-cap'], pokemonSecondAbility: ['Voltorb', 'Electrode'], pokemonHiddenAbility: ['Zapdos'],), + Ability(id: 10, name: 'volt-absorb', description: 'Absorbs electric moves, healing for 1/4 max HP.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Jolteon', 'Chinchou', 'Lanturn', 'Zeraora', 'Thundurus-therian'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Minun', 'Pachirisu'],), + Ability(id: 11, name: 'water-absorb', description: 'Absorbs water moves, healing for 1/4 max HP.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Poliwag', 'Poliwhirl', 'Poliwrath', 'Lapras', 'Vaporeon', 'Politoed', 'Maractus', 'Frillish', 'Jellicent', 'Volcanion'], pokemonSecondAbility: ['Wooper', 'Quagsire', 'Mantine', 'Mantyke'], pokemonHiddenAbility: ['Chinchou', 'Lanturn', 'Cacnea', 'Cacturne', 'Tympole', 'Palpitoad', 'Seismitoad', 'Dewpider', 'Araquanid', 'Araquanid-totem'],), + Ability(id: 12, name: 'oblivious', description: 'Prevents infatuation and protects against captivate.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Slowpoke', 'Slowbro', 'Jynx', 'Slowking', 'Swinub', 'Piloswine', 'Smoochum', 'Illumise', 'Numel', 'Barboach', 'Whiscash', 'Mamoswine'], pokemonSecondAbility: ['Lickitung', 'Wailmer', 'Wailord', 'Feebas', 'Lickilicky', 'Bounsweet', 'Steenee'], pokemonHiddenAbility: ['Spheal', 'Sealeo', 'Walrein', 'Salandit', 'Salazzle', 'Salazzle-totem'],), + Ability(id: 13, name: 'cloud-nine', description: 'Negates all effects of weather, but does not prevent the weather itself.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: [], pokemonSecondAbility: ['Psyduck', 'Golduck'], pokemonHiddenAbility: ['Lickitung', 'Swablu', 'Altaria', 'Lickilicky', 'Drampa'],), + Ability(id: 14, name: 'compound-eyes', description: 'Increases moves accuracy to 1.3x.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Butterfree', 'Venonat', 'Nincada', 'Joltik', 'Galvantula'], pokemonSecondAbility: ['Yanma', 'Scatterbug', 'Vivillon'], pokemonHiddenAbility: ['Dustox'],), + Ability(id: 15, name: 'insomnia', description: 'Prevents sleep.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Drowzee', 'Hypno', 'Hoothoot', 'Noctowl', 'Murkrow', 'Shuppet', 'Banette', 'Honchkrow', 'Mewtwo-mega-y'], pokemonSecondAbility: ['Spinarak', 'Ariados'], pokemonHiddenAbility: ['Delibird', 'Pumpkaboo-average', 'Gourgeist-average', 'Pumpkaboo-small', 'Pumpkaboo-large', 'Pumpkaboo-super', 'Gourgeist-small', 'Gourgeist-large', 'Gourgeist-super'],), + Ability(id: 16, name: 'color-change', description: 'Changes type to match when hit by a damaging move.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Kecleon'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 17, name: 'immunity', description: 'Prevents poison.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Snorlax', 'Zangoose'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Gligar'],), + Ability(id: 18, name: 'flash-fire', description: 'Protects against fire moves. Once one has been blocked, the Pokemon\'s own Fire moves inflict 1.5x damage until it leaves battle.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Vulpix', 'Ninetales', 'Flareon', 'Heatran', 'Litwick', 'Lampent', 'Chandelure'], pokemonSecondAbility: ['Growlithe', 'Arcanine', 'Ponyta', 'Rapidash', 'Houndour', 'Houndoom', 'Heatmor'], pokemonHiddenAbility: ['Cyndaquil', 'Quilava', 'Typhlosion'],), + Ability(id: 19, name: 'shield-dust', description: 'Protects against incoming moves\' extra effects.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Caterpie', 'Weedle', 'Venomoth', 'Wurmple', 'Dustox', 'Scatterbug', 'Vivillon'], pokemonSecondAbility: ['Cutiefly', 'Ribombee', 'Ribombee-totem'], pokemonHiddenAbility: [],), + Ability(id: 20, name: 'own-tempo', description: 'Prevents confusion.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Lickitung', 'Smeargle', 'Spinda', 'Lickilicky', 'Bergmite', 'Avalugg', 'Mudbray', 'Mudsdale', 'Rockruff-own-tempo'], pokemonSecondAbility: ['Slowpoke', 'Slowbro', 'Slowking', 'Spoink', 'Grumpig', 'Glameow', 'Purugly', 'Petilil', 'Lilligant'], pokemonHiddenAbility: ['Lotad', 'Lombre', 'Ludicolo', 'Numel', 'Espurr'],), + Ability(id: 21, name: 'suction-cups', description: 'Prevents being forced out of battle by other Pokemon\'s moves.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Octillery', 'Lileep', 'Cradily'], pokemonSecondAbility: ['Inkay', 'Malamar'], pokemonHiddenAbility: [],), + Ability(id: 22, name: 'intimidate', description: 'Lowers opponents\' Attack one stage upon entering battle.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Ekans', 'Arbok', 'Growlithe', 'Arcanine', 'Tauros', 'Gyarados', 'Snubbull', 'Granbull', 'Stantler', 'Hitmontop', 'Mightyena', 'Masquerain', 'Salamence', 'Staravia', 'Staraptor', 'Herdier', 'Stoutland', 'Sandile', 'Krokorok', 'Krookodile', 'Landorus-therian', 'Manectric-mega'], pokemonSecondAbility: ['Mawile', 'Shinx', 'Luxio', 'Luxray'], pokemonHiddenAbility: ['Qwilfish', 'Scraggy', 'Scrafty', 'Litten', 'Torracat', 'Incineroar'],), + Ability(id: 23, name: 'shadow-tag', description: 'Prevents opponents from fleeing or switching out.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Wobbuffet', 'Wynaut', 'Gengar-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Gothita', 'Gothorita', 'Gothitelle'],), + Ability(id: 24, name: 'rough-skin', description: 'Damages attacking Pokemon for 1/8 their max HP on contact.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Carvanha', 'Sharpedo', 'Druddigon'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Gible', 'Gabite', 'Garchomp'],), + Ability(id: 25, name: 'wonder-guard', description: 'Protects against damaging moves that are not super effective.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Shedinja'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 26, name: 'levitate', description: 'Evades ground moves.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Gastly', 'Haunter', 'Koffing', 'Weezing', 'Misdreavus', 'Unown', 'Vibrava', 'Flygon', 'Lunatone', 'Solrock', 'Baltoy', 'Claydol', 'Duskull', 'Chimecho', 'Latias', 'Latios', 'Mismagius', 'Chingling', 'Bronzor', 'Bronzong', 'Carnivine', 'Rotom', 'Uxie', 'Mesprit', 'Azelf', 'Cresselia', 'Tynamo', 'Eelektrik', 'Eelektross', 'Cryogonal', 'Hydreigon', 'Vikavolt', 'Giratina-origin', 'Rotom-heat', 'Rotom-wash', 'Rotom-frost', 'Rotom-fan', 'Rotom-mow', 'Latias-mega', 'Latios-mega', 'Vikavolt-totem'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 27, name: 'effect-spore', description: 'Has a 30% chance of inflcting either paralysis, poison, or sleep on attacking Pokemon on contact.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Paras', 'Parasect', 'Shroomish', 'Breloom', 'Foongus', 'Amoonguss'], pokemonSecondAbility: ['Morelull', 'Shiinotic'], pokemonHiddenAbility: ['Vileplume'],), + Ability(id: 28, name: 'synchronize', description: 'Copies burns, paralysis, and poison received onto the Pokemon that inflicted them.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Abra', 'Kadabra', 'Alakazam', 'Mew', 'Natu', 'Xatu', 'Espeon', 'Umbreon', 'Ralts', 'Kirlia', 'Gardevoir'], pokemonSecondAbility: ['Munna', 'Musharna', 'Elgyem', 'Beheeyem'], pokemonHiddenAbility: [],), + Ability(id: 29, name: 'clear-body', description: 'Prevents stats from being lowered by other Pokemon.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Tentacool', 'Tentacruel', 'Beldum', 'Metang', 'Metagross', 'Regirock', 'Regice', 'Registeel', 'Carbink', 'Diancie'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Klink', 'Klang', 'Klinklang'],), + Ability(id: 30, name: 'natural-cure', description: 'Cures any major status ailment upon switching out.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Chansey', 'Blissey', 'Celebi', 'Roselia', 'Swablu', 'Altaria', 'Budew', 'Roserade', 'Happiny', 'Shaymin-land', 'Phantump', 'Trevenant'], pokemonSecondAbility: ['Staryu', 'Starmie', 'Corsola'], pokemonHiddenAbility: ['Comfey'],), + Ability(id: 31, name: 'lightning-rod', description: 'Redirects single-target electric moves to this Pokemon where possible. Absorbs Electric moves, raising Special Attack one stage.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Rhyhorn', 'Rhydon', 'Rhyperior', 'Blitzle', 'Zebstrika', 'Sceptile-mega'], pokemonSecondAbility: ['Cubone', 'Marowak', 'Electrike', 'Manectric', 'Togedemaru', 'Marowak-alola', 'Marowak-totem', 'Togedemaru-totem'], pokemonHiddenAbility: ['Pikachu', 'Raichu', 'Goldeen', 'Seaking', 'Pichu', 'Plusle', 'Pikachu-rock-star', 'Pikachu-belle', 'Pikachu-pop-star', 'Pikachu-phd', 'Pikachu-libre', 'Pikachu-cosplay', 'Pikachu-original-cap', 'Pikachu-hoenn-cap', 'Pikachu-sinnoh-cap', 'Pikachu-unova-cap', 'Pikachu-kalos-cap', 'Pikachu-alola-cap', 'Pikachu-partner-cap'],), + Ability(id: 32, name: 'serene-grace', description: 'Doubles the chance of moves\' extra effects occurring.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Dunsparce', 'Jirachi', 'Meloetta-aria', 'Shaymin-sky', 'Meloetta-pirouette'], pokemonSecondAbility: ['Chansey', 'Togepi', 'Togetic', 'Blissey', 'Happiny', 'Togekiss'], pokemonHiddenAbility: ['Deerling', 'Sawsbuck'],), + Ability(id: 33, name: 'swift-swim', description: 'Doubles Speed during rain.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Horsea', 'Goldeen', 'Seaking', 'Magikarp', 'Omanyte', 'Omastar', 'Kabuto', 'Kabutops', 'Mantine', 'Kingdra', 'Lotad', 'Lombre', 'Ludicolo', 'Surskit', 'Feebas', 'Huntail', 'Gorebyss', 'Relicanth', 'Luvdisc', 'Buizel', 'Floatzel', 'Finneon', 'Lumineon', 'Mantyke', 'Tympole', 'Palpitoad', 'Seismitoad', 'Swampert-mega'], pokemonSecondAbility: ['Qwilfish'], pokemonHiddenAbility: ['Psyduck', 'Golduck', 'Poliwag', 'Poliwhirl', 'Poliwrath', 'Anorith', 'Armaldo', 'Tirtouga', 'Carracosta', 'Beartic'],), + Ability(id: 34, name: 'chlorophyll', description: 'Doubles Speed during strong sunlight.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Oddish', 'Gloom', 'Vileplume', 'Bellsprout', 'Weepinbell', 'Victreebel', 'Exeggcute', 'Exeggutor', 'Tangela', 'Bellossom', 'Hoppip', 'Skiploom', 'Jumpluff', 'Sunkern', 'Sunflora', 'Seedot', 'Nuzleaf', 'Shiftry', 'Tropius', 'Cherubi', 'Tangrowth', 'Petilil', 'Lilligant', 'Deerling', 'Sawsbuck'], pokemonSecondAbility: ['Sewaddle', 'Swadloon', 'Leavanny', 'Maractus'], pokemonHiddenAbility: ['Bulbasaur', 'Ivysaur', 'Venusaur', 'Leafeon', 'Cottonee', 'Whimsicott'],), + Ability(id: 35, name: 'illuminate', description: 'Doubles the wild encounter rate.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Staryu', 'Starmie', 'Volbeat', 'Watchog', 'Morelull', 'Shiinotic'], pokemonSecondAbility: ['Chinchou', 'Lanturn'], pokemonHiddenAbility: [],), + Ability(id: 36, name: 'trace', description: 'Copies an opponent\'s ability upon entering battle.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Porygon', 'Porygon2', 'Alakazam-mega'], pokemonSecondAbility: ['Ralts', 'Kirlia', 'Gardevoir'], pokemonHiddenAbility: [],), + Ability(id: 37, name: 'huge-power', description: 'Doubles Attack in battle.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Mawile-mega'], pokemonSecondAbility: ['Marill', 'Azumarill', 'Azurill'], pokemonHiddenAbility: ['Bunnelby', 'Diggersby'],), + Ability(id: 38, name: 'poison-point', description: 'Has a 30% chance of poisoning attacking Pokemon on contact.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Nidoran-f', 'Nidorina', 'Nidoqueen', 'Nidoran-m', 'Nidorino', 'Nidoking', 'Seadra', 'Qwilfish', 'Venipede', 'Whirlipede', 'Scolipede', 'Skrelp', 'Dragalge'], pokemonSecondAbility: ['Roselia', 'Budew', 'Roserade'], pokemonHiddenAbility: [],), + Ability(id: 39, name: 'inner-focus', description: 'Prevents flinching.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Zubat', 'Golbat', 'Dragonite', 'Crobat', 'Girafarig', 'Sneasel', 'Snorunt', 'Glalie', 'Mienfoo', 'Mienshao', 'Oranguru', 'Gallade-mega'], pokemonSecondAbility: ['Abra', 'Kadabra', 'Alakazam', 'Farfetchd', 'Riolu', 'Lucario', 'Throh', 'Sawk', 'Pawniard', 'Bisharp'], pokemonHiddenAbility: ['Drowzee', 'Hypno', 'Hitmonchan', 'Kangaskhan', 'Umbreon', 'Raikou', 'Entei', 'Suicune', 'Darumaka', 'Mudbray', 'Mudsdale'],), + Ability(id: 40, name: 'magma-armor', description: 'Prevents freezing.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Slugma', 'Magcargo', 'Camerupt'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 41, name: 'water-veil', description: 'Prevents burns.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Wailmer', 'Wailord'], pokemonSecondAbility: ['Goldeen', 'Seaking'], pokemonHiddenAbility: ['Mantine', 'Huntail', 'Buizel', 'Floatzel', 'Finneon', 'Lumineon', 'Mantyke'],), + Ability(id: 42, name: 'magnet-pull', description: 'Prevents steel opponents from fleeing or switching out.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Magnemite', 'Magneton', 'Magnezone', 'Geodude-alola', 'Graveler-alola', 'Golem-alola'], pokemonSecondAbility: ['Nosepass', 'Probopass'], pokemonHiddenAbility: [],), + Ability(id: 43, name: 'soundproof', description: 'Protects against sound-based moves.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Voltorb', 'Electrode', 'Mr-mime', 'Whismur', 'Loudred', 'Exploud', 'Mime-jr'], pokemonSecondAbility: ['Jangmo-o', 'Hakamo-o', 'Kommo-o', 'Kommo-o-totem'], pokemonHiddenAbility: ['Shieldon', 'Bastiodon', 'Snover', 'Abomasnow', 'Bouffalant'],), + Ability(id: 44, name: 'rain-dish', description: 'Heals for 1/16 max HP after each turn during rain.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: [], pokemonSecondAbility: ['Lotad', 'Lombre', 'Ludicolo'], pokemonHiddenAbility: ['Squirtle', 'Wartortle', 'Blastoise', 'Tentacool', 'Tentacruel', 'Wingull', 'Pelipper', 'Surskit', 'Morelull', 'Shiinotic'],), + Ability(id: 45, name: 'sand-stream', description: 'Summons a sandstorm that lasts indefinitely upon entering battle.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Tyranitar', 'Hippopotas', 'Hippowdon', 'Tyranitar-mega'], pokemonSecondAbility: ['Gigalith'], pokemonHiddenAbility: [],), + Ability(id: 46, name: 'pressure', description: 'Increases the PP cost of moves targetting the Pokemon by one.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Articuno', 'Zapdos', 'Moltres', 'Mewtwo', 'Raikou', 'Entei', 'Suicune', 'Lugia', 'Ho-oh', 'Dusclops', 'Absol', 'Deoxys-normal', 'Vespiquen', 'Spiritomb', 'Weavile', 'Dusknoir', 'Dialga', 'Palkia', 'Giratina-altered', 'Kyurem', 'Deoxys-attack', 'Deoxys-defense', 'Deoxys-speed'], pokemonSecondAbility: ['Aerodactyl'], pokemonHiddenAbility: ['Wailmer', 'Wailord', 'Pawniard', 'Bisharp'],), + Ability(id: 47, name: 'thick-fat', description: 'Halves damage from fire and ice moves.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Seel', 'Dewgong', 'Marill', 'Azumarill', 'Miltank', 'Makuhita', 'Hariyama', 'Azurill', 'Spoink', 'Grumpig', 'Spheal', 'Sealeo', 'Walrein', 'Purugly', 'Venusaur-mega'], pokemonSecondAbility: ['Snorlax', 'Munchlax'], pokemonHiddenAbility: ['Swinub', 'Piloswine', 'Mamoswine', 'Tepig', 'Pignite', 'Rattata-alola', 'Raticate-alola', 'Raticate-totem-alola'],), + Ability(id: 48, name: 'early-bird', description: 'Makes sleep pass twice as quickly.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Kangaskhan', 'Houndour', 'Houndoom'], pokemonSecondAbility: ['Doduo', 'Dodrio', 'Ledyba', 'Ledian', 'Natu', 'Xatu', 'Girafarig', 'Seedot', 'Nuzleaf', 'Shiftry'], pokemonHiddenAbility: ['Sunkern', 'Sunflora'],), + Ability(id: 49, name: 'flame-body', description: 'Has a 30% chance of burning attacking Pokemon on contact.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Magmar', 'Magby', 'Magmortar', 'Larvesta', 'Volcarona', 'Fletchinder', 'Talonflame'], pokemonSecondAbility: ['Slugma', 'Magcargo', 'Litwick', 'Lampent', 'Chandelure'], pokemonHiddenAbility: ['Ponyta', 'Rapidash', 'Moltres', 'Heatran'],), + Ability(id: 50, name: 'run-away', description: 'Ensures success fleeing from wild battles.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Rattata', 'Raticate', 'Ponyta', 'Rapidash', 'Doduo', 'Dodrio', 'Eevee', 'Sentret', 'Furret', 'Aipom', 'Poochyena', 'Pachirisu', 'Buneary', 'Patrat'], pokemonSecondAbility: ['Dunsparce', 'Snubbull'], pokemonHiddenAbility: ['Caterpie', 'Weedle', 'Oddish', 'Venonat', 'Wurmple', 'Nincada', 'Kricketot', 'Lillipup'],), + Ability(id: 51, name: 'keen-eye', description: 'Prevents accuracy from being lowered.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Pidgey', 'Pidgeotto', 'Pidgeot', 'Spearow', 'Fearow', 'Farfetchd', 'Hitmonchan', 'Skarmory', 'Wingull', 'Pelipper', 'Sableye', 'Starly', 'Chatot', 'Ducklett', 'Swanna', 'Rufflet', 'Braviary', 'Espurr', 'Meowstic-male', 'Pikipek', 'Trumbeak', 'Toucannon', 'Rockruff', 'Lycanroc-midday', 'Meowstic-female', 'Lycanroc-midnight'], pokemonSecondAbility: ['Sentret', 'Furret', 'Hoothoot', 'Noctowl', 'Sneasel', 'Patrat', 'Watchog'], pokemonHiddenAbility: ['Glameow', 'Stunky', 'Skuntank', 'Skorupi', 'Drapion'],), + Ability(id: 52, name: 'hyper-cutter', description: 'Prevents Attack from being lowered by other Pokemon.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Krabby', 'Kingler', 'Pinsir', 'Gligar', 'Mawile', 'Trapinch', 'Corphish', 'Crawdaunt', 'Gliscor', 'Crabrawler', 'Crabominable'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 53, name: 'pickup', description: 'Picks up other Pokemon\'s used and Flung held items. May also pick up an item after battle.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Meowth', 'Teddiursa', 'Phanpy', 'Zigzagoon', 'Linoone', 'Munchlax', 'Bunnelby', 'Diggersby', 'Pumpkaboo-average', 'Gourgeist-average', 'Pumpkaboo-small', 'Pumpkaboo-large', 'Pumpkaboo-super', 'Gourgeist-small', 'Gourgeist-large', 'Gourgeist-super', 'Meowth-alola'], pokemonSecondAbility: ['Aipom', 'Pachirisu', 'Ambipom', 'Lillipup', 'Dedenne'], pokemonHiddenAbility: ['Pikipek', 'Trumbeak'],), + Ability(id: 54, name: 'truant', description: 'Skips every second turn.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Slakoth', 'Slaking'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Durant'],), + Ability(id: 55, name: 'hustle', description: 'Strengthens physical moves to inflict 1.5x damage, but decreases their accuracy to 0.8x.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Togepi', 'Togetic', 'Corsola', 'Remoraid', 'Togekiss', 'Darumaka', 'Deino', 'Zweilous'], pokemonSecondAbility: ['Delibird', 'Durant', 'Rattata-alola', 'Raticate-alola', 'Raticate-totem-alola'], pokemonHiddenAbility: ['Rattata', 'Raticate', 'Nidoran-f', 'Nidorina', 'Nidoran-m', 'Nidorino', 'Combee', 'Rufflet'],), + Ability(id: 56, name: 'cute-charm', description: 'Has a 30% chance of infatuating attacking Pokemon on contact.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Clefairy', 'Clefable', 'Jigglypuff', 'Wigglytuff', 'Cleffa', 'Igglybuff', 'Skitty', 'Delcatty', 'Lopunny', 'Minccino', 'Cinccino', 'Sylveon'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Milotic', 'Stufful'],), + Ability(id: 57, name: 'plus', description: 'Increases Special Attack to 1.5x when a friendly Pokemon has plus or minus.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Plusle', 'Klink', 'Klang', 'Klinklang'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Mareep', 'Flaaffy', 'Ampharos', 'Dedenne'],), + Ability(id: 58, name: 'minus', description: 'Increases Special Attack to 1.5x when a friendly Pokemon has plus or minus.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Minun'], pokemonSecondAbility: ['Klink', 'Klang', 'Klinklang'], pokemonHiddenAbility: ['Electrike', 'Manectric'],), + Ability(id: 59, name: 'forecast', description: 'Changes castform\'s type and form to match the weather.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Castform', 'Castform-sunny', 'Castform-rainy', 'Castform-snowy'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 60, name: 'sticky-hold', description: 'Prevents a held item from being removed by other Pokemon.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Shellos', 'Gastrodon'], pokemonSecondAbility: ['Grimer', 'Muk', 'Gulpin', 'Swalot', 'Trubbish', 'Accelgor'], pokemonHiddenAbility: [],), + Ability(id: 61, name: 'shed-skin', description: 'Has a 33% chance of curing any major status ailment after each turn.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Metapod', 'Kakuna', 'Dratini', 'Dragonair', 'Pupitar', 'Silcoon', 'Cascoon', 'Seviper', 'Kricketot', 'Burmy', 'Scraggy', 'Scrafty', 'Spewpa'], pokemonSecondAbility: ['Ekans', 'Arbok', 'Karrablast'], pokemonHiddenAbility: [],), + Ability(id: 62, name: 'guts', description: 'Increases Attack to 1.5x with a major status ailment.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Machop', 'Machoke', 'Machamp', 'Ursaring', 'Tyrogue', 'Larvitar', 'Taillow', 'Swellow', 'Timburr', 'Gurdurr', 'Conkeldurr', 'Throh'], pokemonSecondAbility: ['Rattata', 'Raticate', 'Heracross', 'Makuhita', 'Hariyama'], pokemonHiddenAbility: ['Flareon', 'Shinx', 'Luxio', 'Luxray'],), + Ability(id: 63, name: 'marvel-scale', description: 'Increases Defense to 1.5x with a major status ailment.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Milotic'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Dratini', 'Dragonair'],), + Ability(id: 64, name: 'liquid-ooze', description: 'Damages opponents using leeching moves for as much as they would heal.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Gulpin', 'Swalot'], pokemonSecondAbility: ['Tentacool', 'Tentacruel'], pokemonHiddenAbility: [],), + Ability(id: 65, name: 'overgrow', description: 'Strengthens grass moves to inflict 1.5x damage at 1/3 max HP or less.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Bulbasaur', 'Ivysaur', 'Venusaur', 'Chikorita', 'Bayleef', 'Meganium', 'Treecko', 'Grovyle', 'Sceptile', 'Turtwig', 'Grotle', 'Torterra', 'Snivy', 'Servine', 'Serperior', 'Chespin', 'Quilladin', 'Chesnaught', 'Rowlet', 'Dartrix', 'Decidueye'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Pansage', 'Simisage'],), + Ability(id: 66, name: 'blaze', description: 'Strengthens fire moves to inflict 1.5x damage at 1/3 max HP or less.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Charmander', 'Charmeleon', 'Charizard', 'Cyndaquil', 'Quilava', 'Typhlosion', 'Torchic', 'Combusken', 'Blaziken', 'Chimchar', 'Monferno', 'Infernape', 'Tepig', 'Pignite', 'Emboar', 'Fennekin', 'Braixen', 'Delphox', 'Litten', 'Torracat', 'Incineroar'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Pansear', 'Simisear'],), + Ability(id: 67, name: 'torrent', description: 'Strengthens water moves to inflict 1.5x damage at 1/3 max HP or less.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Squirtle', 'Wartortle', 'Blastoise', 'Totodile', 'Croconaw', 'Feraligatr', 'Mudkip', 'Marshtomp', 'Swampert', 'Piplup', 'Prinplup', 'Empoleon', 'Oshawott', 'Dewott', 'Samurott', 'Froakie', 'Frogadier', 'Greninja', 'Popplio', 'Brionne', 'Primarina'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Panpour', 'Simipour'],), + Ability(id: 68, name: 'swarm', description: 'Strengthens bug moves to inflict 1.5x damage at 1/3 max HP or less.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Beedrill', 'Scyther', 'Ledyba', 'Ledian', 'Spinarak', 'Ariados', 'Scizor', 'Heracross', 'Beautifly', 'Kricketune', 'Mothim', 'Sewaddle', 'Leavanny', 'Karrablast', 'Escavalier', 'Durant', 'Grubbin'], pokemonSecondAbility: ['Volbeat', 'Venipede', 'Whirlipede', 'Scolipede'], pokemonHiddenAbility: ['Joltik', 'Galvantula', 'Larvesta', 'Volcarona'],), + Ability(id: 69, name: 'rock-head', description: 'Protects against recoil damage.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Geodude', 'Graveler', 'Golem', 'Onix', 'Cubone', 'Marowak', 'Aerodactyl', 'Steelix', 'Bagon', 'Shelgon', 'Basculin-blue-striped'], pokemonSecondAbility: ['Rhyhorn', 'Rhydon', 'Sudowoodo', 'Aron', 'Lairon', 'Aggron', 'Relicanth', 'Bonsly'], pokemonHiddenAbility: ['Tyrantrum', 'Marowak-alola', 'Marowak-totem'],), + Ability(id: 70, name: 'drought', description: 'Summons strong sunlight that lasts indefinitely upon entering battle.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Groudon', 'Charizard-mega-y'], pokemonSecondAbility: ['Torkoal'], pokemonHiddenAbility: ['Vulpix', 'Ninetales'],), + Ability(id: 71, name: 'arena-trap', description: 'Prevents opponents from fleeing or switching out. Eluded by flying-types and Pokemon in the air.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: [], pokemonSecondAbility: ['Diglett', 'Dugtrio', 'Trapinch'], pokemonHiddenAbility: [],), + Ability(id: 72, name: 'vital-spirit', description: 'Prevents sleep.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Mankey', 'Primeape', 'Delibird', 'Vigoroth', 'Lillipup'], pokemonSecondAbility: ['Rockruff', 'Lycanroc-midnight'], pokemonHiddenAbility: ['Electabuzz', 'Magmar', 'Tyrogue', 'Elekid', 'Magby', 'Electivire', 'Magmortar'],), + Ability(id: 73, name: 'white-smoke', description: 'Prevents stats from being lowered by other Pokemon.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Torkoal'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Heatmor'],), + Ability(id: 74, name: 'pure-power', description: 'Doubles Attack in battle.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Meditite', 'Medicham', 'Medicham-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 75, name: 'shell-armor', description: 'Protects against critical hits.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Shellder', 'Cloyster', 'Clamperl', 'Turtonator', 'Slowbro-mega'], pokemonSecondAbility: ['Krabby', 'Kingler', 'Lapras', 'Omanyte', 'Omastar', 'Corphish', 'Crawdaunt', 'Dwebble', 'Crustle', 'Escavalier', 'Shelmet'], pokemonHiddenAbility: ['Torkoal', 'Turtwig', 'Grotle', 'Torterra', 'Oshawott', 'Dewott', 'Samurott'],), + Ability(id: 76, name: 'air-lock', description: 'Negates all effects of weather, but does not prevent the weather itself.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Rayquaza'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 77, name: 'tangled-feet', description: 'Doubles evasion when confused.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Pidgey', 'Pidgeotto', 'Pidgeot', 'Spinda', 'Chatot'], pokemonHiddenAbility: ['Doduo', 'Dodrio'],), + Ability(id: 78, name: 'motor-drive', description: 'Absorbs electric moves, raising Speed one stage.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Electivire'], pokemonSecondAbility: ['Blitzle', 'Zebstrika'], pokemonHiddenAbility: ['Emolga'],), + Ability(id: 79, name: 'rivalry', description: 'Increases damage inflicted to 1.25x against Pokemon of the same gender, but decreases damage to 0.75x against the opposite gender.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Shinx', 'Luxio', 'Luxray', 'Axew', 'Fraxure', 'Haxorus', 'Litleo', 'Pyroar'], pokemonSecondAbility: ['Nidoran-f', 'Nidorina', 'Nidoqueen', 'Nidoran-m', 'Nidorino', 'Nidoking'], pokemonHiddenAbility: ['Beautifly', 'Pidove', 'Tranquill', 'Unfezant'],), + Ability(id: 80, name: 'steadfast', description: 'Raises Speed one stage upon flinching.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Riolu', 'Lucario', 'Gallade', 'Mewtwo-mega-x'], pokemonSecondAbility: ['Tyrogue'], pokemonHiddenAbility: ['Machop', 'Machoke', 'Machamp', 'Scyther', 'Hitmontop', 'Rockruff', 'Lycanroc-midday'],), + Ability(id: 81, name: 'snow-cloak', description: 'Increases evasion to 1.25x during hail. Protects against hail damage.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Glaceon', 'Froslass', 'Cubchoo', 'Beartic', 'Sandshrew-alola', 'Sandslash-alola', 'Vulpix-alola', 'Ninetales-alola'], pokemonSecondAbility: ['Swinub', 'Piloswine', 'Mamoswine', 'Vanillite', 'Vanillish'], pokemonHiddenAbility: ['Articuno'],), + Ability(id: 82, name: 'gluttony', description: 'Makes the Pokemon eat any held Berry triggered by low HP below 1/2 its max HP.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Pansage', 'Simisage', 'Pansear', 'Simisear', 'Panpour', 'Simipour', 'Heatmor', 'Rattata-alola', 'Raticate-alola', 'Raticate-totem-alola'], pokemonSecondAbility: ['Shuckle', 'Zigzagoon', 'Linoone', 'Grimer-alola', 'Muk-alola'], pokemonHiddenAbility: ['Bellsprout', 'Weepinbell', 'Victreebel', 'Snorlax', 'Gulpin', 'Swalot', 'Spoink', 'Grumpig', 'Munchlax'],), + Ability(id: 83, name: 'anger-point', description: 'Raises Attack to the maximum of six stages upon receiving a critical hit.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Mankey', 'Primeape', 'Tauros'], pokemonHiddenAbility: ['Camerupt', 'Sandile', 'Krokorok', 'Krookodile', 'Crabrawler', 'Crabominable'],), + Ability(id: 84, name: 'unburden', description: 'Doubles Speed upon using or losing a held item.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Drifloon', 'Drifblim', 'Purrloin', 'Liepard', 'Hawlucha'], pokemonHiddenAbility: ['Hitmonlee', 'Treecko', 'Grovyle', 'Sceptile', 'Accelgor', 'Swirlix', 'Slurpuff'],), + Ability(id: 85, name: 'heatproof', description: 'Halves damage from fire moves and burns.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Bronzor', 'Bronzong'], pokemonHiddenAbility: [],), + Ability(id: 86, name: 'simple', description: 'Doubles the Pokemon\'s stat modifiers. These doubled modifiers are still capped at -6 or 6 stages.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Bidoof', 'Bibarel'], pokemonSecondAbility: ['Numel'], pokemonHiddenAbility: ['Woobat', 'Swoobat'],), + Ability(id: 87, name: 'dry-skin', description: 'Causes 1/8 max HP in damage each turn during strong sunlight, but heals for 1/8 max HP during rain. Increases damage from fire moves to 1.25x, but absorbs water moves, healing for 1/4 max HP.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Helioptile', 'Heliolisk'], pokemonSecondAbility: ['Paras', 'Parasect', 'Croagunk', 'Toxicroak'], pokemonHiddenAbility: ['Jynx'],), + Ability(id: 88, name: 'download', description: 'Raises the attack stat corresponding to the opponents\' weaker defense one stage upon entering battle.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Genesect'], pokemonSecondAbility: ['Porygon', 'Porygon2', 'Porygon-z'], pokemonHiddenAbility: [],), + Ability(id: 89, name: 'iron-fist', description: 'Strengthens punch-based moves to 1.2x their power.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Golett', 'Golurk', 'Pancham', 'Pangoro'], pokemonSecondAbility: ['Hitmonchan', 'Crabrawler', 'Crabominable'], pokemonHiddenAbility: ['Ledian', 'Chimchar', 'Monferno', 'Infernape', 'Timburr', 'Gurdurr', 'Conkeldurr'],), + Ability(id: 90, name: 'poison-heal', description: 'Heals for 1/8 max HP after each turn when poisoned in place of damage.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Shroomish', 'Breloom'], pokemonHiddenAbility: ['Gliscor'],), + Ability(id: 91, name: 'adaptability', description: 'Increases the same-type attack bonus from 1.5x to 2x.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Porygon-z', 'Lucario-mega', 'Beedrill-mega'], pokemonSecondAbility: ['Eevee', 'Basculin-red-striped', 'Basculin-blue-striped'], pokemonHiddenAbility: ['Corphish', 'Crawdaunt', 'Feebas', 'Skrelp', 'Dragalge', 'Yungoos', 'Gumshoos', 'Gumshoos-totem'],), + Ability(id: 92, name: 'skill-link', description: 'Extends two-to-five-hit moves and triple kick to their full length every time.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Heracross-mega'], pokemonSecondAbility: ['Shellder', 'Cloyster', 'Pikipek', 'Trumbeak', 'Toucannon'], pokemonHiddenAbility: ['Aipom', 'Ambipom', 'Minccino', 'Cinccino'],), + Ability(id: 93, name: 'hydration', description: 'Cures any major status ailment after each turn during rain.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Phione', 'Manaphy', 'Shelmet', 'Accelgor'], pokemonSecondAbility: ['Seel', 'Dewgong', 'Wingull', 'Tympole', 'Palpitoad', 'Alomomola', 'Goomy', 'Sliggoo', 'Goodra'], pokemonHiddenAbility: ['Lapras', 'Vaporeon', 'Smoochum', 'Barboach', 'Whiscash', 'Gorebyss', 'Luvdisc', 'Ducklett', 'Swanna'],), + Ability(id: 94, name: 'solar-power', description: 'Increases Special Attack to 1.5x but costs 1/8 max HP after each turn during strong sunlight.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Houndoom-mega'], pokemonSecondAbility: ['Sunkern', 'Sunflora', 'Tropius'], pokemonHiddenAbility: ['Charmander', 'Charmeleon', 'Charizard', 'Helioptile', 'Heliolisk'],), + Ability(id: 95, name: 'quick-feet', description: 'Increases Speed to 1.5x with a major status ailment.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Granbull', 'Teddiursa', 'Ursaring', 'Poochyena', 'Mightyena'], pokemonHiddenAbility: ['Jolteon', 'Zigzagoon', 'Linoone', 'Shroomish'],), + Ability(id: 96, name: 'normalize', description: 'Makes the Pokemon\'s moves all act normal-type.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Skitty', 'Delcatty'], pokemonHiddenAbility: [],), + Ability(id: 97, name: 'sniper', description: 'Strengthens critical hits to inflict 3x damage rather than 2x.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Horsea', 'Seadra', 'Remoraid', 'Octillery', 'Kingdra', 'Skorupi', 'Drapion', 'Binacle', 'Barbaracle'], pokemonHiddenAbility: ['Beedrill', 'Spearow', 'Fearow', 'Spinarak', 'Ariados'],), + Ability(id: 98, name: 'magic-guard', description: 'Protects against damage not directly caused by a move.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Clefairy', 'Clefable', 'Cleffa', 'Sigilyph', 'Solosis', 'Duosion', 'Reuniclus'], pokemonHiddenAbility: ['Abra', 'Kadabra', 'Alakazam'],), + Ability(id: 99, name: 'no-guard', description: 'Ensures all moves used by and against the Pokemon hit.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Honedge', 'Doublade', 'Pidgeot-mega'], pokemonSecondAbility: ['Machop', 'Machoke', 'Machamp'], pokemonHiddenAbility: ['Karrablast', 'Golett', 'Golurk', 'Lycanroc-midnight'],), + Ability(id: 100, name: 'stall', description: 'Makes the Pokemon move last within its move\'s priority bracket.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Sableye'], pokemonHiddenAbility: [],), + Ability(id: 101, name: 'technician', description: 'Strengthens moves of 60 base power or less to 1.5x their power.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Ambipom', 'Marshadow', 'Scizor-mega'], pokemonSecondAbility: ['Meowth', 'Persian', 'Scyther', 'Scizor', 'Smeargle', 'Hitmontop', 'Minccino', 'Cinccino', 'Meowth-alola', 'Persian-alola'], pokemonHiddenAbility: ['Mr-mime', 'Breloom', 'Kricketune', 'Roserade', 'Mime-jr'],), + Ability(id: 102, name: 'leaf-guard', description: 'Protects against major status ailments during strong sunlight.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Leafeon', 'Swadloon', 'Fomantis', 'Lurantis', 'Bounsweet', 'Steenee', 'Tsareena', 'Lurantis-totem'], pokemonSecondAbility: ['Tangela', 'Hoppip', 'Skiploom', 'Jumpluff', 'Tangrowth'], pokemonHiddenAbility: ['Chikorita', 'Bayleef', 'Meganium', 'Roselia', 'Budew', 'Petilil', 'Lilligant'],), + Ability(id: 103, name: 'klutz', description: 'Prevents the Pokemon from using its held item in battle.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Buneary', 'Lopunny', 'Woobat', 'Swoobat', 'Golett', 'Golurk', 'Stufful', 'Bewear'], pokemonHiddenAbility: ['Audino'],), + Ability(id: 104, name: 'mold-breaker', description: 'Bypasses targets\' abilities if they could hinder or prevent a move.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Cranidos', 'Rampardos', 'Gyarados-mega', 'Ampharos-mega'], pokemonSecondAbility: ['Pinsir', 'Axew', 'Fraxure', 'Haxorus', 'Pancham', 'Pangoro'], pokemonHiddenAbility: ['Drilbur', 'Excadrill', 'Throh', 'Sawk', 'Basculin-red-striped', 'Druddigon', 'Hawlucha', 'Basculin-blue-striped'],), + Ability(id: 105, name: 'super-luck', description: 'Raises moves\' critical hit rates one stage.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Murkrow', 'Absol', 'Honchkrow', 'Pidove', 'Tranquill', 'Unfezant'], pokemonHiddenAbility: ['Togepi', 'Togetic', 'Togekiss'],), + Ability(id: 106, name: 'aftermath', description: 'Damages the attacker for 1/4 its max HP when knocked out by a contact move.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Drifloon', 'Drifblim'], pokemonSecondAbility: ['Stunky', 'Skuntank'], pokemonHiddenAbility: ['Voltorb', 'Electrode', 'Trubbish', 'Garbodor'],), + Ability(id: 107, name: 'anticipation', description: 'Notifies all trainers upon entering battle if an opponent has a super-effective move, self destruct, explosion, or a one-hit KO move.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Wormadam-plant', 'Croagunk', 'Toxicroak', 'Wormadam-sandy', 'Wormadam-trash'], pokemonSecondAbility: ['Barboach', 'Whiscash'], pokemonHiddenAbility: ['Eevee', 'Ferrothorn'],), + Ability(id: 108, name: 'forewarn', description: 'Reveals the opponents\' strongest move upon entering battle.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Munna', 'Musharna'], pokemonSecondAbility: ['Drowzee', 'Hypno', 'Jynx', 'Smoochum'], pokemonHiddenAbility: [],), + Ability(id: 109, name: 'unaware', description: 'Ignores other Pokemon\'s stat modifiers for damage and accuracy calculation.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Woobat', 'Swoobat', 'Cosmog'], pokemonSecondAbility: ['Bidoof', 'Bibarel'], pokemonHiddenAbility: ['Clefable', 'Wooper', 'Quagsire', 'Pyukumuku'],), + Ability(id: 110, name: 'tinted-lens', description: 'Doubles damage inflicted with not-very-effective moves.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Venonat', 'Venomoth', 'Illumise', 'Yanmega'], pokemonHiddenAbility: ['Butterfree', 'Hoothoot', 'Noctowl', 'Mothim', 'Sigilyph'],), + Ability(id: 111, name: 'filter', description: 'Decreases damage taken from super-effective moves by 1/4.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Aggron-mega'], pokemonSecondAbility: ['Mr-mime', 'Mime-jr'], pokemonHiddenAbility: [],), + Ability(id: 112, name: 'slow-start', description: 'Halves Attack and Speed for five turns upon entering battle.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Regigigas'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 113, name: 'scrappy', description: 'Lets the Pokemon\'s normal and fighting moves hit ghost Pokemon.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Lopunny-mega'], pokemonSecondAbility: ['Kangaskhan', 'Miltank'], pokemonHiddenAbility: ['Taillow', 'Swellow', 'Loudred', 'Exploud', 'Herdier', 'Stoutland', 'Pancham', 'Pangoro'],), + Ability(id: 114, name: 'storm-drain', description: 'Redirects single-target water moves to this Pokemon where possible. Absorbs Water moves, raising Special Attack one stage.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Shellos', 'Gastrodon', 'Finneon', 'Lumineon'], pokemonHiddenAbility: ['Lileep', 'Cradily', 'Maractus'],), + Ability(id: 115, name: 'ice-body', description: 'Heals for 1/16 max HP after each turn during hail. Protects against hail damage.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Vanillite', 'Vanillish', 'Vanilluxe'], pokemonSecondAbility: ['Snorunt', 'Glalie', 'Spheal', 'Sealeo', 'Walrein', 'Bergmite', 'Avalugg'], pokemonHiddenAbility: ['Seel', 'Dewgong', 'Regice', 'Glaceon'],), + Ability(id: 116, name: 'solid-rock', description: 'Decreases damage taken from super-effective moves by 1/4.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Tirtouga', 'Carracosta'], pokemonSecondAbility: ['Camerupt', 'Rhyperior'], pokemonHiddenAbility: [],), + Ability(id: 117, name: 'snow-warning', description: 'Summons hail that lasts indefinitely upon entering battle.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Snover', 'Abomasnow', 'Abomasnow-mega'], pokemonSecondAbility: ['Vanilluxe'], pokemonHiddenAbility: ['Amaura', 'Aurorus', 'Vulpix-alola', 'Ninetales-alola'],), + Ability(id: 118, name: 'honey-gather', description: 'The Pokemon may pick up honey after battle.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Combee', 'Cutiefly', 'Ribombee', 'Ribombee-totem'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Teddiursa'],), + Ability(id: 119, name: 'frisk', description: 'Reveals an opponent\'s held item upon entering battle.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Gothita', 'Gothorita', 'Gothitelle', 'Noibat', 'Noivern', 'Exeggutor-alola'], pokemonSecondAbility: ['Stantler', 'Shuppet', 'Banette', 'Phantump', 'Trevenant', 'Pumpkaboo-average', 'Gourgeist-average', 'Pumpkaboo-small', 'Pumpkaboo-large', 'Pumpkaboo-super', 'Gourgeist-small', 'Gourgeist-large', 'Gourgeist-super'], pokemonHiddenAbility: ['Wigglytuff', 'Sentret', 'Furret', 'Yanma', 'Duskull', 'Dusclops', 'Yanmega', 'Dusknoir'],), + Ability(id: 120, name: 'reckless', description: 'Strengthens recoil moves to 1.2x their power.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Basculin-red-striped', 'Bouffalant'], pokemonSecondAbility: ['Hitmonlee'], pokemonHiddenAbility: ['Rhyhorn', 'Rhydon', 'Starly', 'Staravia', 'Staraptor', 'Rhyperior', 'Emboar', 'Mienfoo', 'Mienshao'],), + Ability(id: 121, name: 'multitype', description: 'Changes arceus\'s type and form to match its held Plate.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Arceus'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 122, name: 'flower-gift', description: 'Increases friendly Pokemon\'s Attack and Special Defense to 1.5x during strong sunlight.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Cherrim'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 123, name: 'bad-dreams', description: 'Damages sleeping opponents for 1/8 their max HP after each turn.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Darkrai'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 124, name: 'pickpocket', description: 'Steals attacking Pokemon\'s held items on contact.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Sneasel', 'Seedot', 'Nuzleaf', 'Shiftry', 'Weavile', 'Binacle', 'Barbaracle'],), + Ability(id: 125, name: 'sheer-force', description: 'Strengthens moves with extra effects to 1.3x their power, but prevents their extra effects.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Darmanitan-standard', 'Darmanitan-zen', 'Camerupt-mega'], pokemonSecondAbility: ['Timburr', 'Gurdurr', 'Conkeldurr', 'Druddigon', 'Rufflet', 'Braviary'], pokemonHiddenAbility: ['Nidoqueen', 'Nidoking', 'Krabby', 'Kingler', 'Tauros', 'Totodile', 'Croconaw', 'Feraligatr', 'Steelix', 'Makuhita', 'Hariyama', 'Mawile', 'Trapinch', 'Bagon', 'Cranidos', 'Rampardos', 'Landorus-incarnate', 'Toucannon'],), + Ability(id: 126, name: 'contrary', description: 'Inverts stat changes.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Inkay', 'Malamar'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Shuckle', 'Spinda', 'Snivy', 'Servine', 'Serperior', 'Fomantis', 'Lurantis', 'Lurantis-totem'],), + Ability(id: 127, name: 'unnerve', description: 'Prevents opposing Pokemon from eating held Berries.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: ['Joltik', 'Galvantula', 'Litleo', 'Pyroar'], pokemonHiddenAbility: ['Ekans', 'Arbok', 'Meowth', 'Persian', 'Aerodactyl', 'Mewtwo', 'Ursaring', 'Houndour', 'Houndoom', 'Tyranitar', 'Masquerain', 'Vespiquen', 'Axew', 'Fraxure', 'Haxorus', 'Bewear'],), + Ability(id: 128, name: 'defiant', description: 'Raises Attack two stages upon having any stat lowered.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Pawniard', 'Bisharp'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Mankey', 'Primeape', 'Farfetchd', 'Piplup', 'Prinplup', 'Empoleon', 'Purugly', 'Braviary', 'Tornadus-incarnate', 'Thundurus-incarnate', 'Passimian'],), + Ability(id: 129, name: 'defeatist', description: 'Halves Attack and Special Attack at 50% max HP or less.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Archen', 'Archeops'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 130, name: 'cursed-body', description: 'Has a 30% chance of Disabling any move that hits the Pokemon.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Gengar', 'Marowak-alola', 'Marowak-totem'], pokemonSecondAbility: ['Frillish', 'Jellicent'], pokemonHiddenAbility: ['Shuppet', 'Banette', 'Froslass'],), + Ability(id: 131, name: 'healer', description: 'Has a 30% chance of curing each adjacent ally of any major status ailment after each turn.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Audino', 'Alomomola', 'Spritzee', 'Aromatisse', 'Audino-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Chansey', 'Bellossom', 'Blissey'],), + Ability(id: 132, name: 'friend-guard', description: 'Decreases all direct damage taken by friendly Pokemon to 0.75x.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Clefairy', 'Jigglypuff', 'Cleffa', 'Igglybuff', 'Happiny', 'Scatterbug', 'Spewpa', 'Vivillon'],), + Ability(id: 133, name: 'weak-armor', description: 'Raises Speed and lowers Defense by one stage each upon being hit by a physical move.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: ['Roggenrola', 'Boldore', 'Garbodor'], pokemonHiddenAbility: ['Onix', 'Omanyte', 'Omastar', 'Kabuto', 'Kabutops', 'Slugma', 'Magcargo', 'Skarmory', 'Dwebble', 'Crustle', 'Vanillite', 'Vanillish', 'Vanilluxe', 'Vullaby', 'Mandibuzz'],), + Ability(id: 134, name: 'heavy-metal', description: 'Doubles the Pokemon\'s weight.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Aron', 'Lairon', 'Aggron', 'Bronzor', 'Bronzong'],), + Ability(id: 135, name: 'light-metal', description: 'Halves the Pokemon\'s weight.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Scizor', 'Beldum', 'Metang', 'Metagross', 'Registeel'],), + Ability(id: 136, name: 'multiscale', description: 'Halves damage taken from full HP.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Dragonite', 'Lugia'],), + Ability(id: 137, name: 'toxic-boost', description: 'Increases Attack to 1.5x when poisoned.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Zangoose'],), + Ability(id: 138, name: 'flare-boost', description: 'Increases Special Attack to 1.5x when burned.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Drifloon', 'Drifblim'],), + Ability(id: 139, name: 'harvest', description: 'Has a 50% chance of restoring a used Berry after each turn if the Pokemon has held no items in the meantime.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Exeggcute', 'Exeggutor', 'Tropius', 'Phantump', 'Trevenant', 'Exeggutor-alola'],), + Ability(id: 140, name: 'telepathy', description: 'Protects against friendly Pokemon\'s damaging moves.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Elgyem', 'Beheeyem'], pokemonSecondAbility: ['Oranguru'], pokemonHiddenAbility: ['Wobbuffet', 'Ralts', 'Kirlia', 'Gardevoir', 'Meditite', 'Medicham', 'Wynaut', 'Dialga', 'Palkia', 'Giratina-altered', 'Munna', 'Musharna', 'Noibat', 'Noivern', 'Tapu-koko', 'Tapu-lele', 'Tapu-bulu', 'Tapu-fini'],), + Ability(id: 141, name: 'moody', description: 'Raises a random stat two stages and lowers another one stage after each turn.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Remoraid', 'Octillery', 'Smeargle', 'Snorunt', 'Glalie', 'Bidoof', 'Bibarel'],), + Ability(id: 142, name: 'overcoat', description: 'Protects against damage from weather.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Solosis', 'Duosion', 'Reuniclus'], pokemonSecondAbility: ['Vullaby', 'Mandibuzz'], pokemonHiddenAbility: ['Shellder', 'Cloyster', 'Pineco', 'Forretress', 'Shelgon', 'Burmy', 'Wormadam-plant', 'Sewaddle', 'Swadloon', 'Leavanny', 'Escavalier', 'Shelmet', 'Jangmo-o', 'Hakamo-o', 'Kommo-o', 'Wormadam-sandy', 'Wormadam-trash', 'Kommo-o-totem'],), + Ability(id: 143, name: 'poison-touch', description: 'Has a 30% chance of poisoning target Pokemon upon contact.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Grimer-alola', 'Muk-alola'], pokemonSecondAbility: ['Seismitoad', 'Skrelp', 'Dragalge'], pokemonHiddenAbility: ['Grimer', 'Muk', 'Croagunk', 'Toxicroak'],), + Ability(id: 144, name: 'regenerator', description: 'Heals for 1/3 max HP upon switching out.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Tornadus-therian'], pokemonSecondAbility: ['Audino', 'Mienfoo', 'Mienshao'], pokemonHiddenAbility: ['Slowpoke', 'Slowbro', 'Tangela', 'Slowking', 'Corsola', 'Ho-oh', 'Tangrowth', 'Solosis', 'Duosion', 'Reuniclus', 'Foongus', 'Amoonguss', 'Alomomola', 'Mareanie', 'Toxapex'],), + Ability(id: 145, name: 'big-pecks', description: 'Protects against Defense drops.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Pidove', 'Tranquill', 'Unfezant', 'Vullaby', 'Mandibuzz', 'Fletchling'], pokemonSecondAbility: ['Ducklett', 'Swanna'], pokemonHiddenAbility: ['Pidgey', 'Pidgeotto', 'Pidgeot', 'Chatot'],), + Ability(id: 146, name: 'sand-rush', description: 'Doubles Speed during a sandstorm. Protects against sandstorm damage.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Drilbur', 'Excadrill'], pokemonSecondAbility: ['Herdier', 'Stoutland', 'Lycanroc-midday'], pokemonHiddenAbility: ['Sandshrew', 'Sandslash'],), + Ability(id: 147, name: 'wonder-skin', description: 'Lowers incoming non-damaging moves\' base accuracy to exactly 50%.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Sigilyph'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Venomoth', 'Skitty', 'Delcatty', 'Bruxish'],), + Ability(id: 148, name: 'analytic', description: 'Strengthens moves to 1.3x their power when moving last.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Magnemite', 'Magneton', 'Staryu', 'Starmie', 'Porygon', 'Porygon2', 'Magnezone', 'Porygon-z', 'Patrat', 'Watchog', 'Elgyem', 'Beheeyem'],), + Ability(id: 149, name: 'illusion', description: 'Takes the appearance of the last conscious party Pokemon upon being sent out until hit by a damaging move.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Zorua', 'Zoroark'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 150, name: 'imposter', description: 'Transforms upon entering battle.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Ditto'],), + Ability(id: 151, name: 'infiltrator', description: 'Bypasses light screen, reflect, and safeguard.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: ['Cottonee', 'Whimsicott', 'Espurr', 'Meowstic-male', 'Noibat', 'Noivern', 'Meowstic-female'], pokemonHiddenAbility: ['Zubat', 'Golbat', 'Crobat', 'Hoppip', 'Skiploom', 'Jumpluff', 'Ninjask', 'Seviper', 'Spiritomb', 'Litwick', 'Lampent', 'Chandelure', 'Inkay', 'Malamar'],), + Ability(id: 152, name: 'mummy', description: 'Changes attacking Pokemon\'s abilities to Mummy on contact.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Yamask', 'Cofagrigus'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 153, name: 'moxie', description: 'Raises Attack one stage upon KOing a Pokemon.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: ['Sandile', 'Krokorok', 'Krookodile', 'Scraggy', 'Scrafty'], pokemonHiddenAbility: ['Pinsir', 'Gyarados', 'Heracross', 'Mightyena', 'Salamence', 'Honchkrow', 'Litleo', 'Pyroar'],), + Ability(id: 154, name: 'justified', description: 'Raises Attack one stage upon taking damage from a dark move.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Cobalion', 'Terrakion', 'Virizion', 'Keldeo-ordinary', 'Keldeo-resolute'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Growlithe', 'Arcanine', 'Absol', 'Lucario', 'Gallade'],), + Ability(id: 155, name: 'rattled', description: 'Raises Speed one stage upon being hit by a dark, ghost, or bug move.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Magikarp', 'Ledyba', 'Sudowoodo', 'Dunsparce', 'Snubbull', 'Granbull', 'Poochyena', 'Whismur', 'Clamperl', 'Bonsly', 'Cubchoo', 'Meowth-alola', 'Persian-alola'],), + Ability(id: 156, name: 'magic-bounce', description: 'Reflects most non-damaging moves back at their user.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Absol-mega', 'Sableye-mega', 'Diancie-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Natu', 'Xatu', 'Espeon'],), + Ability(id: 157, name: 'sap-sipper', description: 'Absorbs grass moves, raising Attack one stage.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Skiddo', 'Gogoat', 'Goomy', 'Sliggoo', 'Goodra'], pokemonSecondAbility: ['Deerling', 'Sawsbuck', 'Bouffalant', 'Drampa'], pokemonHiddenAbility: ['Marill', 'Azumarill', 'Girafarig', 'Stantler', 'Miltank', 'Azurill', 'Blitzle', 'Zebstrika'],), + Ability(id: 158, name: 'prankster', description: 'Raises non-damaging moves\' priority by one stage.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Cottonee', 'Whimsicott', 'Tornadus-incarnate', 'Thundurus-incarnate', 'Klefki', 'Banette-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Murkrow', 'Sableye', 'Volbeat', 'Illumise', 'Riolu', 'Purrloin', 'Liepard', 'Meowstic-male'],), + Ability(id: 159, name: 'sand-force', description: 'Strengthens rock, ground, and steel moves to 1.3x their power during a sandstorm. Protects against sandstorm damage.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Landorus-incarnate', 'Garchomp-mega', 'Steelix-mega'], pokemonSecondAbility: ['Drilbur', 'Excadrill'], pokemonHiddenAbility: ['Diglett', 'Dugtrio', 'Nosepass', 'Shellos', 'Gastrodon', 'Hippopotas', 'Hippowdon', 'Probopass', 'Roggenrola', 'Boldore', 'Gigalith', 'Diglett-alola', 'Dugtrio-alola'],), + Ability(id: 160, name: 'iron-barbs', description: 'Damages attacking Pokemon for 1/8 their max HP on contact.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Ferroseed', 'Ferrothorn', 'Togedemaru', 'Togedemaru-totem'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 161, name: 'zen-mode', description: 'Changes darmanitan\'s form after each turn depending on its HP: Zen Mode below 50% max HP, and Standard Mode otherwise.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Darmanitan-standard', 'Darmanitan-zen'],), + Ability(id: 162, name: 'victory-star', description: 'Increases moves\' accuracy to 1.1x for friendly Pokemon.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Victini'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 163, name: 'turboblaze', description: 'Bypasses targets\' abilities if they could hinder or prevent moves.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Reshiram', 'Kyurem-white'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 164, name: 'teravolt', description: 'Bypasses targets\' abilities if they could hinder or prevent moves.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Zekrom', 'Kyurem-black'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 165, name: 'aroma-veil', description: 'Protects allies against moves that affect their mental state.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Spritzee', 'Aromatisse'],), + Ability(id: 166, name: 'flower-veil', description: 'Protects friendly grass Pokemon from having their stats lowered by other Pokemon.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Flabebe', 'Floette', 'Florges', 'Comfey', 'Floette-eternal'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 167, name: 'cheek-pouch', description: 'Restores HP upon eating a Berry, in addition to the Berry\'s effect.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Dedenne'], pokemonSecondAbility: ['Bunnelby', 'Diggersby'], pokemonHiddenAbility: [],), + Ability(id: 168, name: 'protean', description: 'Changes the bearer\'s type to match each move it uses.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Kecleon', 'Froakie', 'Frogadier', 'Greninja'],), + Ability(id: 169, name: 'fur-coat', description: 'Halves damage from physical attacks.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Furfrou', 'Persian-alola'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 170, name: 'magician', description: 'Steals the target\'s held item when the bearer uses a damaging move.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Hoopa', 'Hoopa-unbound'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Fennekin', 'Braixen', 'Delphox', 'Klefki'],), + Ability(id: 171, name: 'bulletproof', description: 'Protects against bullet, ball, and bomb-based moves.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Jangmo-o', 'Hakamo-o', 'Kommo-o', 'Kommo-o-totem'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Chespin', 'Quilladin', 'Chesnaught'],), + Ability(id: 172, name: 'competitive', description: 'Raises Special Attack by two stages upon having any stat lowered.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: [], pokemonSecondAbility: ['Jigglypuff', 'Wigglytuff', 'Igglybuff', 'Milotic', 'Gothita', 'Gothorita', 'Gothitelle'], pokemonHiddenAbility: ['Meowstic-female'],), + Ability(id: 173, name: 'strong-jaw', description: 'Strengthens biting moves to 1.5x their power.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Tyrunt', 'Tyrantrum', 'Sharpedo-mega'], pokemonSecondAbility: ['Yungoos', 'Gumshoos', 'Bruxish', 'Gumshoos-totem'], pokemonHiddenAbility: [],), + Ability(id: 174, name: 'refrigerate', description: 'Turns the bearer\'s normal moves into ice moves and strengthens them to 1.3x their power.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Amaura', 'Aurorus', 'Glalie-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 175, name: 'sweet-veil', description: 'Prevents friendly Pokemon from sleeping.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Swirlix', 'Slurpuff'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Cutiefly', 'Ribombee', 'Bounsweet', 'Steenee', 'Tsareena', 'Ribombee-totem'],), + Ability(id: 176, name: 'stance-change', description: 'Changes aegislash to Blade Forme before using a damaging move, or Shield Forme before using kings shield.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Aegislash-shield', 'Aegislash-blade'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 177, name: 'gale-wings', description: 'Raises flying moves\' priority by one stage.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Fletchling', 'Fletchinder', 'Talonflame'],), + Ability(id: 178, name: 'mega-launcher', description: 'Strengthens aura and pulse moves to 1.5x their power.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Clauncher', 'Clawitzer', 'Blastoise-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 179, name: 'grass-pelt', description: 'Boosts Defense while grassy terrain is in effect.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Skiddo', 'Gogoat'],), + Ability(id: 180, name: 'symbiosis', description: 'Passes the bearer\'s held item to an ally when the ally uses up its item.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Flabebe', 'Floette', 'Florges', 'Oranguru', 'Floette-eternal'],), + Ability(id: 181, name: 'tough-claws', description: 'Strengthens moves that make contact to 1.33x their power.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Binacle', 'Barbaracle', 'Charizard-mega-x', 'Aerodactyl-mega', 'Metagross-mega', 'Lycanroc-dusk'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 182, name: 'pixilate', description: 'Turns the bearer\'s normal moves into fairy moves and strengthens them to 1.3x their power.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Gardevoir-mega', 'Altaria-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Sylveon'],), + Ability(id: 183, name: 'gooey', description: 'Lowers attacking Pokemon\'s Speed by one stage on contact.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Goomy', 'Sliggoo', 'Goodra'],), + Ability(id: 184, name: 'aerilate', description: 'Turns the bearer\'s normal moves into flying moves and strengthens them to 1.3x their power.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Pinsir-mega', 'Salamence-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 185, name: 'parental-bond', description: 'Lets the bearer hit twice with damaging moves. The second hit has half power.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Kangaskhan-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 186, name: 'dark-aura', description: 'Strengthens dark moves to 1.33x their power for all friendly and opposing Pokemon.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Yveltal'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 187, name: 'fairy-aura', description: 'Strengthens fairy moves to 1.33x their power for all friendly and opposing Pokemon.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Xerneas'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 188, name: 'aura-break', description: 'Makes dark aura and fairy aura weaken moves of their respective types.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Zygarde'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 189, name: 'primordial-sea', description: 'Creates heavy rain, which has all the properties of Rain Dance, cannot be replaced, and causes damaging Fire moves to fail.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Kyogre-primal'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 190, name: 'desolate-land', description: 'Creates extremely harsh sunlight, which has all the properties of Sunny Day, cannot be replaced, and causes damaging Water moves to fail.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Groudon-primal'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 191, name: 'delta-stream', description: 'Creates a mysterious air current, which cannot be replaced and causes moves to never be super effective against Flying Pokemon.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Rayquaza-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 192, name: 'stamina', description: 'Raises this Pokemon\'s Defense by one stage when it takes damage from a move.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: [], pokemonSecondAbility: ['Mudbray', 'Mudsdale'], pokemonHiddenAbility: [],), + Ability(id: 193, name: 'wimp-out', description: 'This Pokemon automatically switches out when its HP drops below half.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Wimpod'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 194, name: 'emergency-exit', description: 'This Pokemon automatically switches out when its HP drops below half.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Golisopod'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 195, name: 'water-compaction', description: 'Raises this Pokemon\'s Defense by two stages when it\'s hit by a Water move.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Sandygast', 'Palossand'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 196, name: 'merciless', description: 'This Pokemon\'s moves critical hit against poisoned targets.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Mareanie', 'Toxapex'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 197, name: 'shields-down', description: 'Transforms this Minior between Core Form and Meteor Form. Prevents major status ailments and drowsiness while in Meteor Form.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Minior-red-meteor', 'Minior-orange-meteor', 'Minior-yellow-meteor', 'Minior-green-meteor', 'Minior-blue-meteor', 'Minior-indigo-meteor', 'Minior-violet-meteor', 'Minior-red', 'Minior-orange', 'Minior-yellow', 'Minior-green', 'Minior-blue', 'Minior-indigo', 'Minior-violet'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 198, name: 'stakeout', description: 'This Pokemon\'s moves have double power against Pokemon that switched in this turn.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Yungoos', 'Gumshoos', 'Gumshoos-totem'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 199, name: 'water-bubble', description: 'Halves damage from Fire moves, doubles damage of Water moves, and prevents burns.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Dewpider', 'Araquanid', 'Araquanid-totem'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 200, name: 'steelworker', description: 'This Pokemon\'s Steel moves have 1.5x power.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Dhelmise'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 201, name: 'berserk', description: 'Raises this Pokemon\'s Special Attack by one stage every time its HP drops below half.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Drampa'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 202, name: 'slush-rush', description: 'During Hail, this Pokemon has double Speed.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: [], pokemonSecondAbility: ['Cubchoo', 'Beartic'], pokemonHiddenAbility: ['Sandshrew-alola', 'Sandslash-alola'],), + Ability(id: 203, name: 'long-reach', description: 'This Pokemon\'s moves do not make contact.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Rowlet', 'Dartrix', 'Decidueye'],), + Ability(id: 204, name: 'liquid-voice', description: 'Sound-based moves become Water-type.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Popplio', 'Brionne', 'Primarina'],), + Ability(id: 205, name: 'triage', description: 'This Pokemon\'s healing moves have their priority increased by 3.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: [], pokemonSecondAbility: ['Comfey'], pokemonHiddenAbility: [],), + Ability(id: 206, name: 'galvanize', description: 'This Pokemon\'s Normal moves are Electric and have their power increased to 1.2x.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Geodude-alola', 'Graveler-alola', 'Golem-alola'],), + Ability(id: 207, name: 'surge-surfer', description: 'Doubles this Pokemon\'s Speed on Electric Terrain.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Raichu-alola'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 208, name: 'schooling', description: 'Wishiwashi becomes Schooling Form when its HP is 25% or higher.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Wishiwashi-solo', 'Wishiwashi-school'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 209, name: 'disguise', description: 'Prevents the first instance of battle damage.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Mimikyu-disguised', 'Mimikyu-busted', 'Mimikyu-totem-disguised', 'Mimikyu-totem-busted'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 210, name: 'battle-bond', description: 'Transforms this Pokemon into Ash-Greninja after fainting an opponent. Water Shuriken\'s power is 20 and always hits three times.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Greninja-battle-bond', 'Greninja-ash'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 211, name: 'power-construct', description: 'Transforms 10% or 50% Zygarde into Complete Forme when its HP is below 50%.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Zygarde-10', 'Zygarde-50', 'Zygarde-complete'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 212, name: 'corrosion', description: 'This Pokemon can inflict poison on Poison and Steel Pokemon.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Salandit', 'Salazzle', 'Salazzle-totem'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 213, name: 'comatose', description: 'This Pokemon always acts as though it were Asleep.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Komala'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 214, name: 'queenly-majesty', description: 'Opposing Pokemon cannot use priority attacks.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: [], pokemonSecondAbility: ['Tsareena'], pokemonHiddenAbility: [],), + Ability(id: 215, name: 'innards-out', description: 'When this Pokemon faints from an opponent\'s move, that opponent takes damage equal to the HP this Pokemon had remaining.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Pyukumuku'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 216, name: 'dancer', description: 'Whenever another Pokemon uses a dance move, this Pokemon will use the same move immediately afterwards.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Oricorio-baile', 'Oricorio-pom-pom', 'Oricorio-pau', 'Oricorio-sensu'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 217, name: 'battery', description: 'Ally Pokemon\'s moves have their power increased to 1.3x.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Charjabug'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 218, name: 'fluffy', description: 'Damage from contact moves is halved. Damage from Fire moves is doubled.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Stufful', 'Bewear'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 219, name: 'dazzling', description: 'Opposing Pokemon cannot use priority attacks.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Bruxish'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 220, name: 'soul-heart', description: 'This Pokemon\'s Special Attack rises by one stage every time any Pokemon faints.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Magearna', 'Magearna-original'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 221, name: 'tangling-hair', description: 'When this Pokemon takes regular damage from a contact move, the attacking Pokemon\'s Speed lowers by one stage.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: [], pokemonSecondAbility: ['Diglett-alola', 'Dugtrio-alola'], pokemonHiddenAbility: [],), + Ability(id: 222, name: 'receiver', description: 'When an ally faints, this Pokemon gains its Ability.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Passimian'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 223, name: 'power-of-alchemy', description: 'When an ally faints, this Pokemon gains its Ability.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Grimer-alola', 'Muk-alola'],), + Ability(id: 224, name: 'beast-boost', description: 'Raises this Pokemon\'s highest stat by one stage when it faints another Pokemon.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Nihilego', 'Buzzwole', 'Pheromosa', 'Xurkitree', 'Celesteela', 'Kartana', 'Guzzlord', 'Poipole', 'Naganadel', 'Stakataka', 'Blacephalon'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 225, name: 'rks-system', description: 'Changes this Pokemon\'s type to match its held Memory.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Silvally'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 226, name: 'electric-surge', description: 'When this Pokemon enters battle, it changes the terrain to Electric Terrain.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Tapu-koko'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 227, name: 'psychic-surge', description: 'When this Pokemon enters battle, it changes the terrain to Psychic Terrain.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Tapu-lele'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 228, name: 'misty-surge', description: 'When this Pokemon enters battle, it changes the terrain to Misty Terrain.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Tapu-fini'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 229, name: 'grassy-surge', description: 'When this Pokemon enters battle, it changes the terrain to Grassy Terrain.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Tapu-bulu'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 230, name: 'full-metal-body', description: 'Other Pokemon cannot lower this Pokemon\'s stats.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Solgaleo'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 231, name: 'shadow-shield', description: 'When this Pokemon has full HP, regular damage from moves is halved.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Lunala'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 232, name: 'prism-armor', description: 'Reduces super-effective damage to 0.75x.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Necrozma', 'Necrozma-dusk', 'Necrozma-dawn'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + Ability(id: 233, name: 'neuroforce', description: 'Powers up moves that are super effective.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Necrozma-ultra'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), + +]; diff --git a/lib/models/ability.dart b/lib/models/ability.dart new file mode 100644 index 0000000..7490f49 --- /dev/null +++ b/lib/models/ability.dart @@ -0,0 +1,23 @@ +import 'package:flutter/foundation.dart'; + +class Ability { + const Ability({ + @required this.id, + @required this.name, + @required this.description, + @required this.longDescription, + @required this.generationIntroduced, + @required this.pokemonFirstAbility, + @required this.pokemonSecondAbility, + @required this.pokemonHiddenAbility, +}); + + final int id; + final String name; + final String description; + final String longDescription; + final int generationIntroduced; + final List pokemonFirstAbility; + final List pokemonSecondAbility; + final List pokemonHiddenAbility; +} \ No newline at end of file From a39792ea25e0495e4e9e96341e479d805c2ed7e6 Mon Sep 17 00:00:00 2001 From: Sidak Date: Thu, 25 Jun 2020 17:44:49 +0530 Subject: [PATCH 4/8] Add abilities JSON --- lib/data/abilites.json | 5455 +++++++++++++++++++++++++++++++++++++++ lib/data/abilities.dart | 4394 +++++++++++++++++++++++++++++-- 2 files changed, 9615 insertions(+), 234 deletions(-) create mode 100644 lib/data/abilites.json diff --git a/lib/data/abilites.json b/lib/data/abilites.json new file mode 100644 index 0000000..7e23a92 --- /dev/null +++ b/lib/data/abilites.json @@ -0,0 +1,5455 @@ +[ + { + "id":1, + "name":"stench", + "description":"Has a 10% chance of making target Pokemon flinch with each hit.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Grimer", + "Muk", + "Stunky", + "Skuntank", + "Trubbish", + "Garbodor" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Gloom" + ] + }, + { + "id":2, + "name":"drizzle", + "description":"Summons rain that lasts indefinitely upon entering battle.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Kyogre" + ], + "pokemonSecondAbility":[ + "Pelipper" + ], + "pokemonHiddenAbility":[ + "Politoed" + ] + }, + { + "id":3, + "name":"speed-boost", + "description":"Raises Speed one stage after each turn.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Yanma", + "Ninjask", + "Yanmega", + "Blaziken-mega" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Torchic", + "Combusken", + "Blaziken", + "Carvanha", + "Sharpedo", + "Venipede", + "Whirlipede", + "Scolipede" + ] + }, + { + "id":4, + "name":"battle-armor", + "description":"Protects against critical hits.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Anorith", + "Armaldo", + "Skorupi", + "Drapion", + "Type-null" + ], + "pokemonSecondAbility":[ + "Kabuto", + "Kabutops" + ], + "pokemonHiddenAbility":[ + "Cubone", + "Marowak" + ] + }, + { + "id":5, + "name":"sturdy", + "description":"Prevents being KOed from full HP, leaving 1 HP instead. Protects against the one-hit KO moves regardless of HP.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Sudowoodo", + "Pineco", + "Forretress", + "Shuckle", + "Donphan", + "Nosepass", + "Aron", + "Lairon", + "Aggron", + "Shieldon", + "Bastiodon", + "Bonsly", + "Probopass", + "Roggenrola", + "Boldore", + "Gigalith", + "Sawk", + "Dwebble", + "Crustle", + "Cosmoem" + ], + "pokemonSecondAbility":[ + "Geodude", + "Graveler", + "Golem", + "Magnemite", + "Magneton", + "Onix", + "Steelix", + "Skarmory", + "Magnezone", + "Tirtouga", + "Carracosta", + "Geodude-alola", + "Graveler-alola", + "Golem-alola" + ], + "pokemonHiddenAbility":[ + "Relicanth", + "Regirock", + "Tyrunt", + "Carbink", + "Bergmite", + "Avalugg", + "Togedemaru", + "Togedemaru-totem" + ] + }, + { + "id":6, + "name":"damp", + "description":"Prevents self destruct, explosion, and aftermath from working while the Pokemon is in battle.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Psyduck", + "Golduck", + "Wooper", + "Quagsire" + ], + "pokemonSecondAbility":[ + "Poliwag", + "Poliwhirl", + "Poliwrath", + "Politoed" + ], + "pokemonHiddenAbility":[ + "Paras", + "Parasect", + "Horsea", + "Seadra", + "Kingdra", + "Mudkip", + "Marshtomp", + "Swampert", + "Frillish", + "Jellicent" + ] + }, + { + "id":7, + "name":"limber", + "description":"Prevents paralysis.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Persian", + "Hitmonlee", + "Ditto", + "Glameow", + "Purrloin", + "Liepard", + "Hawlucha" + ], + "pokemonSecondAbility":[ + "Stunfisk", + "Mareanie", + "Toxapex" + ], + "pokemonHiddenAbility":[ + "Buneary", + "Lopunny" + ] + }, + { + "id":8, + "name":"sand-veil", + "description":"Increases evasion to 1.25x during a sandstorm. Protects against sandstorm damage.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Sandshrew", + "Sandslash", + "Diglett", + "Dugtrio", + "Cacnea", + "Cacturne", + "Gible", + "Gabite", + "Garchomp", + "Diglett-alola", + "Dugtrio-alola" + ], + "pokemonSecondAbility":[ + "Gligar", + "Gliscor", + "Helioptile", + "Heliolisk" + ], + "pokemonHiddenAbility":[ + "Geodude", + "Graveler", + "Golem", + "Phanpy", + "Donphan", + "Larvitar", + "Stunfisk", + "Sandygast", + "Palossand" + ] + }, + { + "id":9, + "name":"static", + "description":"Has a 30% chance of paralyzing attacking Pokemon on contact.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Pikachu", + "Raichu", + "Electabuzz", + "Pichu", + "Mareep", + "Flaaffy", + "Ampharos", + "Elekid", + "Electrike", + "Manectric", + "Emolga", + "Stunfisk", + "Pikachu-rock-star", + "Pikachu-belle", + "Pikachu-pop-star", + "Pikachu-phd", + "Pikachu-libre", + "Pikachu-cosplay", + "Pikachu-original-cap", + "Pikachu-hoenn-cap", + "Pikachu-sinnoh-cap", + "Pikachu-unova-cap", + "Pikachu-kalos-cap", + "Pikachu-alola-cap", + "Pikachu-partner-cap" + ], + "pokemonSecondAbility":[ + "Voltorb", + "Electrode" + ], + "pokemonHiddenAbility":[ + "Zapdos" + ] + }, + { + "id":10, + "name":"volt-absorb", + "description":"Absorbs electric moves, healing for 1/4 max HP.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Jolteon", + "Chinchou", + "Lanturn", + "Zeraora", + "Thundurus-therian" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Minun", + "Pachirisu" + ] + }, + { + "id":11, + "name":"water-absorb", + "description":"Absorbs water moves, healing for 1/4 max HP.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Poliwag", + "Poliwhirl", + "Poliwrath", + "Lapras", + "Vaporeon", + "Politoed", + "Maractus", + "Frillish", + "Jellicent", + "Volcanion" + ], + "pokemonSecondAbility":[ + "Wooper", + "Quagsire", + "Mantine", + "Mantyke" + ], + "pokemonHiddenAbility":[ + "Chinchou", + "Lanturn", + "Cacnea", + "Cacturne", + "Tympole", + "Palpitoad", + "Seismitoad", + "Dewpider", + "Araquanid", + "Araquanid-totem" + ] + }, + { + "id":12, + "name":"oblivious", + "description":"Prevents infatuation and protects against captivate.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Slowpoke", + "Slowbro", + "Jynx", + "Slowking", + "Swinub", + "Piloswine", + "Smoochum", + "Illumise", + "Numel", + "Barboach", + "Whiscash", + "Mamoswine" + ], + "pokemonSecondAbility":[ + "Lickitung", + "Wailmer", + "Wailord", + "Feebas", + "Lickilicky", + "Bounsweet", + "Steenee" + ], + "pokemonHiddenAbility":[ + "Spheal", + "Sealeo", + "Walrein", + "Salandit", + "Salazzle", + "Salazzle-totem" + ] + }, + { + "id":13, + "name":"cloud-nine", + "description":"Negates all effects of weather, but does not prevent the weather itself.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Psyduck", + "Golduck" + ], + "pokemonHiddenAbility":[ + "Lickitung", + "Swablu", + "Altaria", + "Lickilicky", + "Drampa" + ] + }, + { + "id":14, + "name":"compound-eyes", + "description":"Increases moves' accuracy to 1.3x.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Butterfree", + "Venonat", + "Nincada", + "Joltik", + "Galvantula" + ], + "pokemonSecondAbility":[ + "Yanma", + "Scatterbug", + "Vivillon" + ], + "pokemonHiddenAbility":[ + "Dustox" + ] + }, + { + "id":15, + "name":"insomnia", + "description":"Prevents sleep.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Drowzee", + "Hypno", + "Hoothoot", + "Noctowl", + "Murkrow", + "Shuppet", + "Banette", + "Honchkrow", + "Mewtwo-mega-y" + ], + "pokemonSecondAbility":[ + "Spinarak", + "Ariados" + ], + "pokemonHiddenAbility":[ + "Delibird", + "Pumpkaboo-average", + "Gourgeist-average", + "Pumpkaboo-small", + "Pumpkaboo-large", + "Pumpkaboo-super", + "Gourgeist-small", + "Gourgeist-large", + "Gourgeist-super" + ] + }, + { + "id":16, + "name":"color-change", + "description":"Changes type to match when hit by a damaging move.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Kecleon" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":17, + "name":"immunity", + "description":"Prevents poison.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Snorlax", + "Zangoose" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Gligar" + ] + }, + { + "id":18, + "name":"flash-fire", + "description":"Protects against fire moves. Once one has been blocked, the Pokemon's own Fire moves inflict 1.5x damage until it leaves battle.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Vulpix", + "Ninetales", + "Flareon", + "Heatran", + "Litwick", + "Lampent", + "Chandelure" + ], + "pokemonSecondAbility":[ + "Growlithe", + "Arcanine", + "Ponyta", + "Rapidash", + "Houndour", + "Houndoom", + "Heatmor" + ], + "pokemonHiddenAbility":[ + "Cyndaquil", + "Quilava", + "Typhlosion" + ] + }, + { + "id":19, + "name":"shield-dust", + "description":"Protects against incoming moves' extra effects.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Caterpie", + "Weedle", + "Venomoth", + "Wurmple", + "Dustox", + "Scatterbug", + "Vivillon" + ], + "pokemonSecondAbility":[ + "Cutiefly", + "Ribombee", + "Ribombee-totem" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":20, + "name":"own-tempo", + "description":"Prevents confusion.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Lickitung", + "Smeargle", + "Spinda", + "Lickilicky", + "Bergmite", + "Avalugg", + "Mudbray", + "Mudsdale", + "Rockruff-own-tempo" + ], + "pokemonSecondAbility":[ + "Slowpoke", + "Slowbro", + "Slowking", + "Spoink", + "Grumpig", + "Glameow", + "Purugly", + "Petilil", + "Lilligant" + ], + "pokemonHiddenAbility":[ + "Lotad", + "Lombre", + "Ludicolo", + "Numel", + "Espurr" + ] + }, + { + "id":21, + "name":"suction-cups", + "description":"Prevents being forced out of battle by other Pokemon's moves.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Octillery", + "Lileep", + "Cradily" + ], + "pokemonSecondAbility":[ + "Inkay", + "Malamar" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":22, + "name":"intimidate", + "description":"Lowers opponents' Attack one stage upon entering battle.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Ekans", + "Arbok", + "Growlithe", + "Arcanine", + "Tauros", + "Gyarados", + "Snubbull", + "Granbull", + "Stantler", + "Hitmontop", + "Mightyena", + "Masquerain", + "Salamence", + "Staravia", + "Staraptor", + "Herdier", + "Stoutland", + "Sandile", + "Krokorok", + "Krookodile", + "Landorus-therian", + "Manectric-mega" + ], + "pokemonSecondAbility":[ + "Mawile", + "Shinx", + "Luxio", + "Luxray" + ], + "pokemonHiddenAbility":[ + "Qwilfish", + "Scraggy", + "Scrafty", + "Litten", + "Torracat", + "Incineroar" + ] + }, + { + "id":23, + "name":"shadow-tag", + "description":"Prevents opponents from fleeing or switching out.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Wobbuffet", + "Wynaut", + "Gengar-mega" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Gothita", + "Gothorita", + "Gothitelle" + ] + }, + { + "id":24, + "name":"rough-skin", + "description":"Damages attacking Pokemon for 1/8 their max HP on contact.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Carvanha", + "Sharpedo", + "Druddigon" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Gible", + "Gabite", + "Garchomp" + ] + }, + { + "id":25, + "name":"wonder-guard", + "description":"Protects against damaging moves that are not super effective.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Shedinja" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":26, + "name":"levitate", + "description":"Evades ground moves.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Gastly", + "Haunter", + "Koffing", + "Weezing", + "Misdreavus", + "Unown", + "Vibrava", + "Flygon", + "Lunatone", + "Solrock", + "Baltoy", + "Claydol", + "Duskull", + "Chimecho", + "Latias", + "Latios", + "Mismagius", + "Chingling", + "Bronzor", + "Bronzong", + "Carnivine", + "Rotom", + "Uxie", + "Mesprit", + "Azelf", + "Cresselia", + "Tynamo", + "Eelektrik", + "Eelektross", + "Cryogonal", + "Hydreigon", + "Vikavolt", + "Giratina-origin", + "Rotom-heat", + "Rotom-wash", + "Rotom-frost", + "Rotom-fan", + "Rotom-mow", + "Latias-mega", + "Latios-mega", + "Vikavolt-totem" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":27, + "name":"effect-spore", + "description":"Has a 30% chance of inflcting either paralysis, poison, or sleep on attacking Pokemon on contact.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Paras", + "Parasect", + "Shroomish", + "Breloom", + "Foongus", + "Amoonguss" + ], + "pokemonSecondAbility":[ + "Morelull", + "Shiinotic" + ], + "pokemonHiddenAbility":[ + "Vileplume" + ] + }, + { + "id":28, + "name":"synchronize", + "description":"Copies burns, paralysis, and poison received onto the Pokemon that inflicted them.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Abra", + "Kadabra", + "Alakazam", + "Mew", + "Natu", + "Xatu", + "Espeon", + "Umbreon", + "Ralts", + "Kirlia", + "Gardevoir" + ], + "pokemonSecondAbility":[ + "Munna", + "Musharna", + "Elgyem", + "Beheeyem" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":29, + "name":"clear-body", + "description":"Prevents stats from being lowered by other Pokemon.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Tentacool", + "Tentacruel", + "Beldum", + "Metang", + "Metagross", + "Regirock", + "Regice", + "Registeel", + "Carbink", + "Diancie" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Klink", + "Klang", + "Klinklang" + ] + }, + { + "id":30, + "name":"natural-cure", + "description":"Cures any major status ailment upon switching out.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Chansey", + "Blissey", + "Celebi", + "Roselia", + "Swablu", + "Altaria", + "Budew", + "Roserade", + "Happiny", + "Shaymin-land", + "Phantump", + "Trevenant" + ], + "pokemonSecondAbility":[ + "Staryu", + "Starmie", + "Corsola" + ], + "pokemonHiddenAbility":[ + "Comfey" + ] + }, + { + "id":31, + "name":"lightning-rod", + "description":"Redirects single-target electric moves to this Pokemon where possible. Absorbs Electric moves, raising Special Attack one stage.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Rhyhorn", + "Rhydon", + "Rhyperior", + "Blitzle", + "Zebstrika", + "Sceptile-mega" + ], + "pokemonSecondAbility":[ + "Cubone", + "Marowak", + "Electrike", + "Manectric", + "Togedemaru", + "Marowak-alola", + "Marowak-totem", + "Togedemaru-totem" + ], + "pokemonHiddenAbility":[ + "Pikachu", + "Raichu", + "Goldeen", + "Seaking", + "Pichu", + "Plusle", + "Pikachu-rock-star", + "Pikachu-belle", + "Pikachu-pop-star", + "Pikachu-phd", + "Pikachu-libre", + "Pikachu-cosplay", + "Pikachu-original-cap", + "Pikachu-hoenn-cap", + "Pikachu-sinnoh-cap", + "Pikachu-unova-cap", + "Pikachu-kalos-cap", + "Pikachu-alola-cap", + "Pikachu-partner-cap" + ] + }, + { + "id":32, + "name":"serene-grace", + "description":"Doubles the chance of moves' extra effects occurring.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Dunsparce", + "Jirachi", + "Meloetta-aria", + "Shaymin-sky", + "Meloetta-pirouette" + ], + "pokemonSecondAbility":[ + "Chansey", + "Togepi", + "Togetic", + "Blissey", + "Happiny", + "Togekiss" + ], + "pokemonHiddenAbility":[ + "Deerling", + "Sawsbuck" + ] + }, + { + "id":33, + "name":"swift-swim", + "description":"Doubles Speed during rain.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Horsea", + "Goldeen", + "Seaking", + "Magikarp", + "Omanyte", + "Omastar", + "Kabuto", + "Kabutops", + "Mantine", + "Kingdra", + "Lotad", + "Lombre", + "Ludicolo", + "Surskit", + "Feebas", + "Huntail", + "Gorebyss", + "Relicanth", + "Luvdisc", + "Buizel", + "Floatzel", + "Finneon", + "Lumineon", + "Mantyke", + "Tympole", + "Palpitoad", + "Seismitoad", + "Swampert-mega" + ], + "pokemonSecondAbility":[ + "Qwilfish" + ], + "pokemonHiddenAbility":[ + "Psyduck", + "Golduck", + "Poliwag", + "Poliwhirl", + "Poliwrath", + "Anorith", + "Armaldo", + "Tirtouga", + "Carracosta", + "Beartic" + ] + }, + { + "id":34, + "name":"chlorophyll", + "description":"Doubles Speed during strong sunlight.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Oddish", + "Gloom", + "Vileplume", + "Bellsprout", + "Weepinbell", + "Victreebel", + "Exeggcute", + "Exeggutor", + "Tangela", + "Bellossom", + "Hoppip", + "Skiploom", + "Jumpluff", + "Sunkern", + "Sunflora", + "Seedot", + "Nuzleaf", + "Shiftry", + "Tropius", + "Cherubi", + "Tangrowth", + "Petilil", + "Lilligant", + "Deerling", + "Sawsbuck" + ], + "pokemonSecondAbility":[ + "Sewaddle", + "Swadloon", + "Leavanny", + "Maractus" + ], + "pokemonHiddenAbility":[ + "Bulbasaur", + "Ivysaur", + "Venusaur", + "Leafeon", + "Cottonee", + "Whimsicott" + ] + }, + { + "id":35, + "name":"illuminate", + "description":"Doubles the wild encounter rate.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Staryu", + "Starmie", + "Volbeat", + "Watchog", + "Morelull", + "Shiinotic" + ], + "pokemonSecondAbility":[ + "Chinchou", + "Lanturn" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":36, + "name":"trace", + "description":"Copies an opponent's ability upon entering battle.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Porygon", + "Porygon2", + "Alakazam-mega" + ], + "pokemonSecondAbility":[ + "Ralts", + "Kirlia", + "Gardevoir" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":37, + "name":"huge-power", + "description":"Doubles Attack in battle.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Mawile-mega" + ], + "pokemonSecondAbility":[ + "Marill", + "Azumarill", + "Azurill" + ], + "pokemonHiddenAbility":[ + "Bunnelby", + "Diggersby" + ] + }, + { + "id":38, + "name":"poison-point", + "description":"Has a 30% chance of poisoning attacking Pokemon on contact.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Nidoran-f", + "Nidorina", + "Nidoqueen", + "Nidoran-m", + "Nidorino", + "Nidoking", + "Seadra", + "Qwilfish", + "Venipede", + "Whirlipede", + "Scolipede", + "Skrelp", + "Dragalge" + ], + "pokemonSecondAbility":[ + "Roselia", + "Budew", + "Roserade" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":39, + "name":"inner-focus", + "description":"Prevents flinching.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Zubat", + "Golbat", + "Dragonite", + "Crobat", + "Girafarig", + "Sneasel", + "Snorunt", + "Glalie", + "Mienfoo", + "Mienshao", + "Oranguru", + "Gallade-mega" + ], + "pokemonSecondAbility":[ + "Abra", + "Kadabra", + "Alakazam", + "Farfetchd", + "Riolu", + "Lucario", + "Throh", + "Sawk", + "Pawniard", + "Bisharp" + ], + "pokemonHiddenAbility":[ + "Drowzee", + "Hypno", + "Hitmonchan", + "Kangaskhan", + "Umbreon", + "Raikou", + "Entei", + "Suicune", + "Darumaka", + "Mudbray", + "Mudsdale" + ] + }, + { + "id":40, + "name":"magma-armor", + "description":"Prevents freezing.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Slugma", + "Magcargo", + "Camerupt" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":41, + "name":"water-veil", + "description":"Prevents burns.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Wailmer", + "Wailord" + ], + "pokemonSecondAbility":[ + "Goldeen", + "Seaking" + ], + "pokemonHiddenAbility":[ + "Mantine", + "Huntail", + "Buizel", + "Floatzel", + "Finneon", + "Lumineon", + "Mantyke" + ] + }, + { + "id":42, + "name":"magnet-pull", + "description":"Prevents steel opponents from fleeing or switching out.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Magnemite", + "Magneton", + "Magnezone", + "Geodude-alola", + "Graveler-alola", + "Golem-alola" + ], + "pokemonSecondAbility":[ + "Nosepass", + "Probopass" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":43, + "name":"soundproof", + "description":"Protects against sound-based moves.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Voltorb", + "Electrode", + "Mr-mime", + "Whismur", + "Loudred", + "Exploud", + "Mime-jr" + ], + "pokemonSecondAbility":[ + "Jangmo-o", + "Hakamo-o", + "Kommo-o", + "Kommo-o-totem" + ], + "pokemonHiddenAbility":[ + "Shieldon", + "Bastiodon", + "Snover", + "Abomasnow", + "Bouffalant" + ] + }, + { + "id":44, + "name":"rain-dish", + "description":"Heals for 1/16 max HP after each turn during rain.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Lotad", + "Lombre", + "Ludicolo" + ], + "pokemonHiddenAbility":[ + "Squirtle", + "Wartortle", + "Blastoise", + "Tentacool", + "Tentacruel", + "Wingull", + "Pelipper", + "Surskit", + "Morelull", + "Shiinotic" + ] + }, + { + "id":45, + "name":"sand-stream", + "description":"Summons a sandstorm that lasts indefinitely upon entering battle.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Tyranitar", + "Hippopotas", + "Hippowdon", + "Tyranitar-mega" + ], + "pokemonSecondAbility":[ + "Gigalith" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":46, + "name":"pressure", + "description":"Increases the PP cost of moves targetting the Pokemon by one.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Articuno", + "Zapdos", + "Moltres", + "Mewtwo", + "Raikou", + "Entei", + "Suicune", + "Lugia", + "Ho-oh", + "Dusclops", + "Absol", + "Deoxys-normal", + "Vespiquen", + "Spiritomb", + "Weavile", + "Dusknoir", + "Dialga", + "Palkia", + "Giratina-altered", + "Kyurem", + "Deoxys-attack", + "Deoxys-defense", + "Deoxys-speed" + ], + "pokemonSecondAbility":[ + "Aerodactyl" + ], + "pokemonHiddenAbility":[ + "Wailmer", + "Wailord", + "Pawniard", + "Bisharp" + ] + }, + { + "id":47, + "name":"thick-fat", + "description":"Halves damage from fire and ice moves.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Seel", + "Dewgong", + "Marill", + "Azumarill", + "Miltank", + "Makuhita", + "Hariyama", + "Azurill", + "Spoink", + "Grumpig", + "Spheal", + "Sealeo", + "Walrein", + "Purugly", + "Venusaur-mega" + ], + "pokemonSecondAbility":[ + "Snorlax", + "Munchlax" + ], + "pokemonHiddenAbility":[ + "Swinub", + "Piloswine", + "Mamoswine", + "Tepig", + "Pignite", + "Rattata-alola", + "Raticate-alola", + "Raticate-totem-alola" + ] + }, + { + "id":48, + "name":"early-bird", + "description":"Makes sleep pass twice as quickly.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Kangaskhan", + "Houndour", + "Houndoom" + ], + "pokemonSecondAbility":[ + "Doduo", + "Dodrio", + "Ledyba", + "Ledian", + "Natu", + "Xatu", + "Girafarig", + "Seedot", + "Nuzleaf", + "Shiftry" + ], + "pokemonHiddenAbility":[ + "Sunkern", + "Sunflora" + ] + }, + { + "id":49, + "name":"flame-body", + "description":"Has a 30% chance of burning attacking Pokemon on contact.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Magmar", + "Magby", + "Magmortar", + "Larvesta", + "Volcarona", + "Fletchinder", + "Talonflame" + ], + "pokemonSecondAbility":[ + "Slugma", + "Magcargo", + "Litwick", + "Lampent", + "Chandelure" + ], + "pokemonHiddenAbility":[ + "Ponyta", + "Rapidash", + "Moltres", + "Heatran" + ] + }, + { + "id":50, + "name":"run-away", + "description":"Ensures success fleeing from wild battles.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Rattata", + "Raticate", + "Ponyta", + "Rapidash", + "Doduo", + "Dodrio", + "Eevee", + "Sentret", + "Furret", + "Aipom", + "Poochyena", + "Pachirisu", + "Buneary", + "Patrat" + ], + "pokemonSecondAbility":[ + "Dunsparce", + "Snubbull" + ], + "pokemonHiddenAbility":[ + "Caterpie", + "Weedle", + "Oddish", + "Venonat", + "Wurmple", + "Nincada", + "Kricketot", + "Lillipup" + ] + }, + { + "id":51, + "name":"keen-eye", + "description":"Prevents accuracy from being lowered.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Pidgey", + "Pidgeotto", + "Pidgeot", + "Spearow", + "Fearow", + "Farfetchd", + "Hitmonchan", + "Skarmory", + "Wingull", + "Pelipper", + "Sableye", + "Starly", + "Chatot", + "Ducklett", + "Swanna", + "Rufflet", + "Braviary", + "Espurr", + "Meowstic-male", + "Pikipek", + "Trumbeak", + "Toucannon", + "Rockruff", + "Lycanroc-midday", + "Meowstic-female", + "Lycanroc-midnight" + ], + "pokemonSecondAbility":[ + "Sentret", + "Furret", + "Hoothoot", + "Noctowl", + "Sneasel", + "Patrat", + "Watchog" + ], + "pokemonHiddenAbility":[ + "Glameow", + "Stunky", + "Skuntank", + "Skorupi", + "Drapion" + ] + }, + { + "id":52, + "name":"hyper-cutter", + "description":"Prevents Attack from being lowered by other Pokemon.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Krabby", + "Kingler", + "Pinsir", + "Gligar", + "Mawile", + "Trapinch", + "Corphish", + "Crawdaunt", + "Gliscor", + "Crabrawler", + "Crabominable" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":53, + "name":"pickup", + "description":"Picks up other Pokemon's used and Flung held items. May also pick up an item after battle.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Meowth", + "Teddiursa", + "Phanpy", + "Zigzagoon", + "Linoone", + "Munchlax", + "Bunnelby", + "Diggersby", + "Pumpkaboo-average", + "Gourgeist-average", + "Pumpkaboo-small", + "Pumpkaboo-large", + "Pumpkaboo-super", + "Gourgeist-small", + "Gourgeist-large", + "Gourgeist-super", + "Meowth-alola" + ], + "pokemonSecondAbility":[ + "Aipom", + "Pachirisu", + "Ambipom", + "Lillipup", + "Dedenne" + ], + "pokemonHiddenAbility":[ + "Pikipek", + "Trumbeak" + ] + }, + { + "id":54, + "name":"truant", + "description":"Skips every second turn.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Slakoth", + "Slaking" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Durant" + ] + }, + { + "id":55, + "name":"hustle", + "description":"Strengthens physical moves to inflict 1.5x damage, but decreases their accuracy to 0.8x.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Togepi", + "Togetic", + "Corsola", + "Remoraid", + "Togekiss", + "Darumaka", + "Deino", + "Zweilous" + ], + "pokemonSecondAbility":[ + "Delibird", + "Durant", + "Rattata-alola", + "Raticate-alola", + "Raticate-totem-alola" + ], + "pokemonHiddenAbility":[ + "Rattata", + "Raticate", + "Nidoran-f", + "Nidorina", + "Nidoran-m", + "Nidorino", + "Combee", + "Rufflet" + ] + }, + { + "id":56, + "name":"cute-charm", + "description":"Has a 30% chance of infatuating attacking Pokemon on contact.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Clefairy", + "Clefable", + "Jigglypuff", + "Wigglytuff", + "Cleffa", + "Igglybuff", + "Skitty", + "Delcatty", + "Lopunny", + "Minccino", + "Cinccino", + "Sylveon" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Milotic", + "Stufful" + ] + }, + { + "id":57, + "name":"plus", + "description":"Increases Special Attack to 1.5x when a friendly Pokemon has plus or minus.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Plusle", + "Klink", + "Klang", + "Klinklang" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Mareep", + "Flaaffy", + "Ampharos", + "Dedenne" + ] + }, + { + "id":58, + "name":"minus", + "description":"Increases Special Attack to 1.5x when a friendly Pokemon has plus or minus.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Minun" + ], + "pokemonSecondAbility":[ + "Klink", + "Klang", + "Klinklang" + ], + "pokemonHiddenAbility":[ + "Electrike", + "Manectric" + ] + }, + { + "id":59, + "name":"forecast", + "description":"Changes castform's type and form to match the weather.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Castform", + "Castform-sunny", + "Castform-rainy", + "Castform-snowy" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":60, + "name":"sticky-hold", + "description":"Prevents a held item from being removed by other Pokemon.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Shellos", + "Gastrodon" + ], + "pokemonSecondAbility":[ + "Grimer", + "Muk", + "Gulpin", + "Swalot", + "Trubbish", + "Accelgor" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":61, + "name":"shed-skin", + "description":"Has a 33% chance of curing any major status ailment after each turn.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Metapod", + "Kakuna", + "Dratini", + "Dragonair", + "Pupitar", + "Silcoon", + "Cascoon", + "Seviper", + "Kricketot", + "Burmy", + "Scraggy", + "Scrafty", + "Spewpa" + ], + "pokemonSecondAbility":[ + "Ekans", + "Arbok", + "Karrablast" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":62, + "name":"guts", + "description":"Increases Attack to 1.5x with a major status ailment.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Machop", + "Machoke", + "Machamp", + "Ursaring", + "Tyrogue", + "Larvitar", + "Taillow", + "Swellow", + "Timburr", + "Gurdurr", + "Conkeldurr", + "Throh" + ], + "pokemonSecondAbility":[ + "Rattata", + "Raticate", + "Heracross", + "Makuhita", + "Hariyama" + ], + "pokemonHiddenAbility":[ + "Flareon", + "Shinx", + "Luxio", + "Luxray" + ] + }, + { + "id":63, + "name":"marvel-scale", + "description":"Increases Defense to 1.5x with a major status ailment.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Milotic" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Dratini", + "Dragonair" + ] + }, + { + "id":64, + "name":"liquid-ooze", + "description":"Damages opponents using leeching moves for as much as they would heal.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Gulpin", + "Swalot" + ], + "pokemonSecondAbility":[ + "Tentacool", + "Tentacruel" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":65, + "name":"overgrow", + "description":"Strengthens grass moves to inflict 1.5x damage at 1/3 max HP or less.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Bulbasaur", + "Ivysaur", + "Venusaur", + "Chikorita", + "Bayleef", + "Meganium", + "Treecko", + "Grovyle", + "Sceptile", + "Turtwig", + "Grotle", + "Torterra", + "Snivy", + "Servine", + "Serperior", + "Chespin", + "Quilladin", + "Chesnaught", + "Rowlet", + "Dartrix", + "Decidueye" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Pansage", + "Simisage" + ] + }, + { + "id":66, + "name":"blaze", + "description":"Strengthens fire moves to inflict 1.5x damage at 1/3 max HP or less.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Charmander", + "Charmeleon", + "Charizard", + "Cyndaquil", + "Quilava", + "Typhlosion", + "Torchic", + "Combusken", + "Blaziken", + "Chimchar", + "Monferno", + "Infernape", + "Tepig", + "Pignite", + "Emboar", + "Fennekin", + "Braixen", + "Delphox", + "Litten", + "Torracat", + "Incineroar" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Pansear", + "Simisear" + ] + }, + { + "id":67, + "name":"torrent", + "description":"Strengthens water moves to inflict 1.5x damage at 1/3 max HP or less.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Squirtle", + "Wartortle", + "Blastoise", + "Totodile", + "Croconaw", + "Feraligatr", + "Mudkip", + "Marshtomp", + "Swampert", + "Piplup", + "Prinplup", + "Empoleon", + "Oshawott", + "Dewott", + "Samurott", + "Froakie", + "Frogadier", + "Greninja", + "Popplio", + "Brionne", + "Primarina" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Panpour", + "Simipour" + ] + }, + { + "id":68, + "name":"swarm", + "description":"Strengthens bug moves to inflict 1.5x damage at 1/3 max HP or less.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Beedrill", + "Scyther", + "Ledyba", + "Ledian", + "Spinarak", + "Ariados", + "Scizor", + "Heracross", + "Beautifly", + "Kricketune", + "Mothim", + "Sewaddle", + "Leavanny", + "Karrablast", + "Escavalier", + "Durant", + "Grubbin" + ], + "pokemonSecondAbility":[ + "Volbeat", + "Venipede", + "Whirlipede", + "Scolipede" + ], + "pokemonHiddenAbility":[ + "Joltik", + "Galvantula", + "Larvesta", + "Volcarona" + ] + }, + { + "id":69, + "name":"rock-head", + "description":"Protects against recoil damage.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Geodude", + "Graveler", + "Golem", + "Onix", + "Cubone", + "Marowak", + "Aerodactyl", + "Steelix", + "Bagon", + "Shelgon", + "Basculin-blue-striped" + ], + "pokemonSecondAbility":[ + "Rhyhorn", + "Rhydon", + "Sudowoodo", + "Aron", + "Lairon", + "Aggron", + "Relicanth", + "Bonsly" + ], + "pokemonHiddenAbility":[ + "Tyrantrum", + "Marowak-alola", + "Marowak-totem" + ] + }, + { + "id":70, + "name":"drought", + "description":"Summons strong sunlight that lasts indefinitely upon entering battle.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Groudon", + "Charizard-mega-y" + ], + "pokemonSecondAbility":[ + "Torkoal" + ], + "pokemonHiddenAbility":[ + "Vulpix", + "Ninetales" + ] + }, + { + "id":71, + "name":"arena-trap", + "description":"Prevents opponents from fleeing or switching out. Eluded by flying-types and Pokemon in the air.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Diglett", + "Dugtrio", + "Trapinch" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":72, + "name":"vital-spirit", + "description":"Prevents sleep.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Mankey", + "Primeape", + "Delibird", + "Vigoroth", + "Lillipup" + ], + "pokemonSecondAbility":[ + "Rockruff", + "Lycanroc-midnight" + ], + "pokemonHiddenAbility":[ + "Electabuzz", + "Magmar", + "Tyrogue", + "Elekid", + "Magby", + "Electivire", + "Magmortar" + ] + }, + { + "id":73, + "name":"white-smoke", + "description":"Prevents stats from being lowered by other Pokemon.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Torkoal" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Heatmor" + ] + }, + { + "id":74, + "name":"pure-power", + "description":"Doubles Attack in battle.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Meditite", + "Medicham", + "Medicham-mega" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":75, + "name":"shell-armor", + "description":"Protects against critical hits.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Shellder", + "Cloyster", + "Clamperl", + "Turtonator", + "Slowbro-mega" + ], + "pokemonSecondAbility":[ + "Krabby", + "Kingler", + "Lapras", + "Omanyte", + "Omastar", + "Corphish", + "Crawdaunt", + "Dwebble", + "Crustle", + "Escavalier", + "Shelmet" + ], + "pokemonHiddenAbility":[ + "Torkoal", + "Turtwig", + "Grotle", + "Torterra", + "Oshawott", + "Dewott", + "Samurott" + ] + }, + { + "id":76, + "name":"air-lock", + "description":"Negates all effects of weather, but does not prevent the weather itself.", + "longDescription":"", + "generationIntroduced":"3", + "pokemonFirstAbility":[ + "Rayquaza" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":77, + "name":"tangled-feet", + "description":"Doubles evasion when confused.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Pidgey", + "Pidgeotto", + "Pidgeot", + "Spinda", + "Chatot" + ], + "pokemonHiddenAbility":[ + "Doduo", + "Dodrio" + ] + }, + { + "id":78, + "name":"motor-drive", + "description":"Absorbs electric moves, raising Speed one stage.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Electivire" + ], + "pokemonSecondAbility":[ + "Blitzle", + "Zebstrika" + ], + "pokemonHiddenAbility":[ + "Emolga" + ] + }, + { + "id":79, + "name":"rivalry", + "description":"Increases damage inflicted to 1.25x against Pokemon of the same gender, but decreases damage to 0.75x against the opposite gender.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Shinx", + "Luxio", + "Luxray", + "Axew", + "Fraxure", + "Haxorus", + "Litleo", + "Pyroar" + ], + "pokemonSecondAbility":[ + "Nidoran-f", + "Nidorina", + "Nidoqueen", + "Nidoran-m", + "Nidorino", + "Nidoking" + ], + "pokemonHiddenAbility":[ + "Beautifly", + "Pidove", + "Tranquill", + "Unfezant" + ] + }, + { + "id":80, + "name":"steadfast", + "description":"Raises Speed one stage upon flinching.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Riolu", + "Lucario", + "Gallade", + "Mewtwo-mega-x" + ], + "pokemonSecondAbility":[ + "Tyrogue" + ], + "pokemonHiddenAbility":[ + "Machop", + "Machoke", + "Machamp", + "Scyther", + "Hitmontop", + "Rockruff", + "Lycanroc-midday" + ] + }, + { + "id":81, + "name":"snow-cloak", + "description":"Increases evasion to 1.25x during hail. Protects against hail damage.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Glaceon", + "Froslass", + "Cubchoo", + "Beartic", + "Sandshrew-alola", + "Sandslash-alola", + "Vulpix-alola", + "Ninetales-alola" + ], + "pokemonSecondAbility":[ + "Swinub", + "Piloswine", + "Mamoswine", + "Vanillite", + "Vanillish" + ], + "pokemonHiddenAbility":[ + "Articuno" + ] + }, + { + "id":82, + "name":"gluttony", + "description":"Makes the Pokemon eat any held Berry triggered by low HP below 1/2 its max HP.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Pansage", + "Simisage", + "Pansear", + "Simisear", + "Panpour", + "Simipour", + "Heatmor", + "Rattata-alola", + "Raticate-alola", + "Raticate-totem-alola" + ], + "pokemonSecondAbility":[ + "Shuckle", + "Zigzagoon", + "Linoone", + "Grimer-alola", + "Muk-alola" + ], + "pokemonHiddenAbility":[ + "Bellsprout", + "Weepinbell", + "Victreebel", + "Snorlax", + "Gulpin", + "Swalot", + "Spoink", + "Grumpig", + "Munchlax" + ] + }, + { + "id":83, + "name":"anger-point", + "description":"Raises Attack to the maximum of six stages upon receiving a critical hit.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Mankey", + "Primeape", + "Tauros" + ], + "pokemonHiddenAbility":[ + "Camerupt", + "Sandile", + "Krokorok", + "Krookodile", + "Crabrawler", + "Crabominable" + ] + }, + { + "id":84, + "name":"unburden", + "description":"Doubles Speed upon using or losing a held item.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Drifloon", + "Drifblim", + "Purrloin", + "Liepard", + "Hawlucha" + ], + "pokemonHiddenAbility":[ + "Hitmonlee", + "Treecko", + "Grovyle", + "Sceptile", + "Accelgor", + "Swirlix", + "Slurpuff" + ] + }, + { + "id":85, + "name":"heatproof", + "description":"Halves damage from fire moves and burns.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Bronzor", + "Bronzong" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":86, + "name":"simple", + "description":"Doubles the Pokemon's stat modifiers. These doubled modifiers are still capped at -6 or 6 stages.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Bidoof", + "Bibarel" + ], + "pokemonSecondAbility":[ + "Numel" + ], + "pokemonHiddenAbility":[ + "Woobat", + "Swoobat" + ] + }, + { + "id":87, + "name":"dry-skin", + "description":"Causes 1/8 max HP in damage each turn during strong sunlight, but heals for 1/8 max HP during rain. Increases damage from fire moves to 1.25x, but absorbs water moves, healing for 1/4 max HP.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Helioptile", + "Heliolisk" + ], + "pokemonSecondAbility":[ + "Paras", + "Parasect", + "Croagunk", + "Toxicroak" + ], + "pokemonHiddenAbility":[ + "Jynx" + ] + }, + { + "id":88, + "name":"download", + "description":"Raises the attack stat corresponding to the opponents' weaker defense one stage upon entering battle.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Genesect" + ], + "pokemonSecondAbility":[ + "Porygon", + "Porygon2", + "Porygon-z" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":89, + "name":"iron-fist", + "description":"Strengthens punch-based moves to 1.2x their power.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Golett", + "Golurk", + "Pancham", + "Pangoro" + ], + "pokemonSecondAbility":[ + "Hitmonchan", + "Crabrawler", + "Crabominable" + ], + "pokemonHiddenAbility":[ + "Ledian", + "Chimchar", + "Monferno", + "Infernape", + "Timburr", + "Gurdurr", + "Conkeldurr" + ] + }, + { + "id":90, + "name":"poison-heal", + "description":"Heals for 1/8 max HP after each turn when poisoned in place of damage.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Shroomish", + "Breloom" + ], + "pokemonHiddenAbility":[ + "Gliscor" + ] + }, + { + "id":91, + "name":"adaptability", + "description":"Increases the same-type attack bonus from 1.5x to 2x.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Porygon-z", + "Lucario-mega", + "Beedrill-mega" + ], + "pokemonSecondAbility":[ + "Eevee", + "Basculin-red-striped", + "Basculin-blue-striped" + ], + "pokemonHiddenAbility":[ + "Corphish", + "Crawdaunt", + "Feebas", + "Skrelp", + "Dragalge", + "Yungoos", + "Gumshoos", + "Gumshoos-totem" + ] + }, + { + "id":92, + "name":"skill-link", + "description":"Extends two-to-five-hit moves and triple kick to their full length every time.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Heracross-mega" + ], + "pokemonSecondAbility":[ + "Shellder", + "Cloyster", + "Pikipek", + "Trumbeak", + "Toucannon" + ], + "pokemonHiddenAbility":[ + "Aipom", + "Ambipom", + "Minccino", + "Cinccino" + ] + }, + { + "id":93, + "name":"hydration", + "description":"Cures any major status ailment after each turn during rain.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Phione", + "Manaphy", + "Shelmet", + "Accelgor" + ], + "pokemonSecondAbility":[ + "Seel", + "Dewgong", + "Wingull", + "Tympole", + "Palpitoad", + "Alomomola", + "Goomy", + "Sliggoo", + "Goodra" + ], + "pokemonHiddenAbility":[ + "Lapras", + "Vaporeon", + "Smoochum", + "Barboach", + "Whiscash", + "Gorebyss", + "Luvdisc", + "Ducklett", + "Swanna" + ] + }, + { + "id":94, + "name":"solar-power", + "description":"Increases Special Attack to 1.5x but costs 1/8 max HP after each turn during strong sunlight.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Houndoom-mega" + ], + "pokemonSecondAbility":[ + "Sunkern", + "Sunflora", + "Tropius" + ], + "pokemonHiddenAbility":[ + "Charmander", + "Charmeleon", + "Charizard", + "Helioptile", + "Heliolisk" + ] + }, + { + "id":95, + "name":"quick-feet", + "description":"Increases Speed to 1.5x with a major status ailment.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Granbull", + "Teddiursa", + "Ursaring", + "Poochyena", + "Mightyena" + ], + "pokemonHiddenAbility":[ + "Jolteon", + "Zigzagoon", + "Linoone", + "Shroomish" + ] + }, + { + "id":96, + "name":"normalize", + "description":"Makes the Pokemon's moves all act normal-type.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Skitty", + "Delcatty" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":97, + "name":"sniper", + "description":"Strengthens critical hits to inflict 3x damage rather than 2x.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Horsea", + "Seadra", + "Remoraid", + "Octillery", + "Kingdra", + "Skorupi", + "Drapion", + "Binacle", + "Barbaracle" + ], + "pokemonHiddenAbility":[ + "Beedrill", + "Spearow", + "Fearow", + "Spinarak", + "Ariados" + ] + }, + { + "id":98, + "name":"magic-guard", + "description":"Protects against damage not directly caused by a move.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Clefairy", + "Clefable", + "Cleffa", + "Sigilyph", + "Solosis", + "Duosion", + "Reuniclus" + ], + "pokemonHiddenAbility":[ + "Abra", + "Kadabra", + "Alakazam" + ] + }, + { + "id":99, + "name":"no-guard", + "description":"Ensures all moves used by and against the Pokemon hit.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Honedge", + "Doublade", + "Pidgeot-mega" + ], + "pokemonSecondAbility":[ + "Machop", + "Machoke", + "Machamp" + ], + "pokemonHiddenAbility":[ + "Karrablast", + "Golett", + "Golurk", + "Lycanroc-midnight" + ] + }, + { + "id":100, + "name":"stall", + "description":"Makes the Pokemon move last within its move's priority bracket.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Sableye" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":101, + "name":"technician", + "description":"Strengthens moves of 60 base power or less to 1.5x their power.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Ambipom", + "Marshadow", + "Scizor-mega" + ], + "pokemonSecondAbility":[ + "Meowth", + "Persian", + "Scyther", + "Scizor", + "Smeargle", + "Hitmontop", + "Minccino", + "Cinccino", + "Meowth-alola", + "Persian-alola" + ], + "pokemonHiddenAbility":[ + "Mr-mime", + "Breloom", + "Kricketune", + "Roserade", + "Mime-jr" + ] + }, + { + "id":102, + "name":"leaf-guard", + "description":"Protects against major status ailments during strong sunlight.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Leafeon", + "Swadloon", + "Fomantis", + "Lurantis", + "Bounsweet", + "Steenee", + "Tsareena", + "Lurantis-totem" + ], + "pokemonSecondAbility":[ + "Tangela", + "Hoppip", + "Skiploom", + "Jumpluff", + "Tangrowth" + ], + "pokemonHiddenAbility":[ + "Chikorita", + "Bayleef", + "Meganium", + "Roselia", + "Budew", + "Petilil", + "Lilligant" + ] + }, + { + "id":103, + "name":"klutz", + "description":"Prevents the Pokemon from using its held item in battle.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Buneary", + "Lopunny", + "Woobat", + "Swoobat", + "Golett", + "Golurk", + "Stufful", + "Bewear" + ], + "pokemonHiddenAbility":[ + "Audino" + ] + }, + { + "id":104, + "name":"mold-breaker", + "description":"Bypasses targets' abilities if they could hinder or prevent a move.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Cranidos", + "Rampardos", + "Gyarados-mega", + "Ampharos-mega" + ], + "pokemonSecondAbility":[ + "Pinsir", + "Axew", + "Fraxure", + "Haxorus", + "Pancham", + "Pangoro" + ], + "pokemonHiddenAbility":[ + "Drilbur", + "Excadrill", + "Throh", + "Sawk", + "Basculin-red-striped", + "Druddigon", + "Hawlucha", + "Basculin-blue-striped" + ] + }, + { + "id":105, + "name":"super-luck", + "description":"Raises moves' critical hit rates one stage.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Murkrow", + "Absol", + "Honchkrow", + "Pidove", + "Tranquill", + "Unfezant" + ], + "pokemonHiddenAbility":[ + "Togepi", + "Togetic", + "Togekiss" + ] + }, + { + "id":106, + "name":"aftermath", + "description":"Damages the attacker for 1/4 its max HP when knocked out by a contact move.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Drifloon", + "Drifblim" + ], + "pokemonSecondAbility":[ + "Stunky", + "Skuntank" + ], + "pokemonHiddenAbility":[ + "Voltorb", + "Electrode", + "Trubbish", + "Garbodor" + ] + }, + { + "id":107, + "name":"anticipation", + "description":"Notifies all trainers upon entering battle if an opponent has a super-effective move, self destruct, explosion, or a one-hit KO move.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Wormadam-plant", + "Croagunk", + "Toxicroak", + "Wormadam-sandy", + "Wormadam-trash" + ], + "pokemonSecondAbility":[ + "Barboach", + "Whiscash" + ], + "pokemonHiddenAbility":[ + "Eevee", + "Ferrothorn" + ] + }, + { + "id":108, + "name":"forewarn", + "description":"Reveals the opponents' strongest move upon entering battle.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Munna", + "Musharna" + ], + "pokemonSecondAbility":[ + "Drowzee", + "Hypno", + "Jynx", + "Smoochum" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":109, + "name":"unaware", + "description":"Ignores other Pokemon's stat modifiers for damage and accuracy calculation.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Woobat", + "Swoobat", + "Cosmog" + ], + "pokemonSecondAbility":[ + "Bidoof", + "Bibarel" + ], + "pokemonHiddenAbility":[ + "Clefable", + "Wooper", + "Quagsire", + "Pyukumuku" + ] + }, + { + "id":110, + "name":"tinted-lens", + "description":"Doubles damage inflicted with not-very-effective moves.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Venonat", + "Venomoth", + "Illumise", + "Yanmega" + ], + "pokemonHiddenAbility":[ + "Butterfree", + "Hoothoot", + "Noctowl", + "Mothim", + "Sigilyph" + ] + }, + { + "id":111, + "name":"filter", + "description":"Decreases damage taken from super-effective moves by 1/4.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Aggron-mega" + ], + "pokemonSecondAbility":[ + "Mr-mime", + "Mime-jr" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":112, + "name":"slow-start", + "description":"Halves Attack and Speed for five turns upon entering battle.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Regigigas" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":113, + "name":"scrappy", + "description":"Lets the Pokemon's normal and fighting moves hit ghost Pokemon.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Lopunny-mega" + ], + "pokemonSecondAbility":[ + "Kangaskhan", + "Miltank" + ], + "pokemonHiddenAbility":[ + "Taillow", + "Swellow", + "Loudred", + "Exploud", + "Herdier", + "Stoutland", + "Pancham", + "Pangoro" + ] + }, + { + "id":114, + "name":"storm-drain", + "description":"Redirects single-target water moves to this Pokemon where possible. Absorbs Water moves, raising Special Attack one stage.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Shellos", + "Gastrodon", + "Finneon", + "Lumineon" + ], + "pokemonHiddenAbility":[ + "Lileep", + "Cradily", + "Maractus" + ] + }, + { + "id":115, + "name":"ice-body", + "description":"Heals for 1/16 max HP after each turn during hail. Protects against hail damage.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Vanillite", + "Vanillish", + "Vanilluxe" + ], + "pokemonSecondAbility":[ + "Snorunt", + "Glalie", + "Spheal", + "Sealeo", + "Walrein", + "Bergmite", + "Avalugg" + ], + "pokemonHiddenAbility":[ + "Seel", + "Dewgong", + "Regice", + "Glaceon" + ] + }, + { + "id":116, + "name":"solid-rock", + "description":"Decreases damage taken from super-effective moves by 1/4.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Tirtouga", + "Carracosta" + ], + "pokemonSecondAbility":[ + "Camerupt", + "Rhyperior" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":117, + "name":"snow-warning", + "description":"Summons hail that lasts indefinitely upon entering battle.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Snover", + "Abomasnow", + "Abomasnow-mega" + ], + "pokemonSecondAbility":[ + "Vanilluxe" + ], + "pokemonHiddenAbility":[ + "Amaura", + "Aurorus", + "Vulpix-alola", + "Ninetales-alola" + ] + }, + { + "id":118, + "name":"honey-gather", + "description":"The Pokemon may pick up honey after battle.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Combee", + "Cutiefly", + "Ribombee", + "Ribombee-totem" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Teddiursa" + ] + }, + { + "id":119, + "name":"frisk", + "description":"Reveals an opponent's held item upon entering battle.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Gothita", + "Gothorita", + "Gothitelle", + "Noibat", + "Noivern", + "Exeggutor-alola" + ], + "pokemonSecondAbility":[ + "Stantler", + "Shuppet", + "Banette", + "Phantump", + "Trevenant", + "Pumpkaboo-average", + "Gourgeist-average", + "Pumpkaboo-small", + "Pumpkaboo-large", + "Pumpkaboo-super", + "Gourgeist-small", + "Gourgeist-large", + "Gourgeist-super" + ], + "pokemonHiddenAbility":[ + "Wigglytuff", + "Sentret", + "Furret", + "Yanma", + "Duskull", + "Dusclops", + "Yanmega", + "Dusknoir" + ] + }, + { + "id":120, + "name":"reckless", + "description":"Strengthens recoil moves to 1.2x their power.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Basculin-red-striped", + "Bouffalant" + ], + "pokemonSecondAbility":[ + "Hitmonlee" + ], + "pokemonHiddenAbility":[ + "Rhyhorn", + "Rhydon", + "Starly", + "Staravia", + "Staraptor", + "Rhyperior", + "Emboar", + "Mienfoo", + "Mienshao" + ] + }, + { + "id":121, + "name":"multitype", + "description":"Changes arceus's type and form to match its held Plate.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Arceus" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":122, + "name":"flower-gift", + "description":"Increases friendly Pokemon's Attack and Special Defense to 1.5x during strong sunlight.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Cherrim" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":123, + "name":"bad-dreams", + "description":"Damages sleeping opponents for 1/8 their max HP after each turn.", + "longDescription":"", + "generationIntroduced":"4", + "pokemonFirstAbility":[ + "Darkrai" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":124, + "name":"pickpocket", + "description":"Steals attacking Pokemon's held items on contact.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Sneasel", + "Seedot", + "Nuzleaf", + "Shiftry", + "Weavile", + "Binacle", + "Barbaracle" + ] + }, + { + "id":125, + "name":"sheer-force", + "description":"Strengthens moves with extra effects to 1.3x their power, but prevents their extra effects.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Darmanitan-standard", + "Darmanitan-zen", + "Camerupt-mega" + ], + "pokemonSecondAbility":[ + "Timburr", + "Gurdurr", + "Conkeldurr", + "Druddigon", + "Rufflet", + "Braviary" + ], + "pokemonHiddenAbility":[ + "Nidoqueen", + "Nidoking", + "Krabby", + "Kingler", + "Tauros", + "Totodile", + "Croconaw", + "Feraligatr", + "Steelix", + "Makuhita", + "Hariyama", + "Mawile", + "Trapinch", + "Bagon", + "Cranidos", + "Rampardos", + "Landorus-incarnate", + "Toucannon" + ] + }, + { + "id":126, + "name":"contrary", + "description":"Inverts stat changes.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Inkay", + "Malamar" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Shuckle", + "Spinda", + "Snivy", + "Servine", + "Serperior", + "Fomantis", + "Lurantis", + "Lurantis-totem" + ] + }, + { + "id":127, + "name":"unnerve", + "description":"Prevents opposing Pokemon from eating held Berries.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Joltik", + "Galvantula", + "Litleo", + "Pyroar" + ], + "pokemonHiddenAbility":[ + "Ekans", + "Arbok", + "Meowth", + "Persian", + "Aerodactyl", + "Mewtwo", + "Ursaring", + "Houndour", + "Houndoom", + "Tyranitar", + "Masquerain", + "Vespiquen", + "Axew", + "Fraxure", + "Haxorus", + "Bewear" + ] + }, + { + "id":128, + "name":"defiant", + "description":"Raises Attack two stages upon having any stat lowered.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Pawniard", + "Bisharp" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Mankey", + "Primeape", + "Farfetchd", + "Piplup", + "Prinplup", + "Empoleon", + "Purugly", + "Braviary", + "Tornadus-incarnate", + "Thundurus-incarnate", + "Passimian" + ] + }, + { + "id":129, + "name":"defeatist", + "description":"Halves Attack and Special Attack at 50% max HP or less.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Archen", + "Archeops" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":130, + "name":"cursed-body", + "description":"Has a 30% chance of Disabling any move that hits the Pokemon.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Gengar", + "Marowak-alola", + "Marowak-totem" + ], + "pokemonSecondAbility":[ + "Frillish", + "Jellicent" + ], + "pokemonHiddenAbility":[ + "Shuppet", + "Banette", + "Froslass" + ] + }, + { + "id":131, + "name":"healer", + "description":"Has a 30% chance of curing each adjacent ally of any major status ailment after each turn.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Audino", + "Alomomola", + "Spritzee", + "Aromatisse", + "Audino-mega" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Chansey", + "Bellossom", + "Blissey" + ] + }, + { + "id":132, + "name":"friend-guard", + "description":"Decreases all direct damage taken by friendly Pokemon to 0.75x.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Clefairy", + "Jigglypuff", + "Cleffa", + "Igglybuff", + "Happiny", + "Scatterbug", + "Spewpa", + "Vivillon" + ] + }, + { + "id":133, + "name":"weak-armor", + "description":"Raises Speed and lowers Defense by one stage each upon being hit by a physical move.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Roggenrola", + "Boldore", + "Garbodor" + ], + "pokemonHiddenAbility":[ + "Onix", + "Omanyte", + "Omastar", + "Kabuto", + "Kabutops", + "Slugma", + "Magcargo", + "Skarmory", + "Dwebble", + "Crustle", + "Vanillite", + "Vanillish", + "Vanilluxe", + "Vullaby", + "Mandibuzz" + ] + }, + { + "id":134, + "name":"heavy-metal", + "description":"Doubles the Pokemon's weight.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Aron", + "Lairon", + "Aggron", + "Bronzor", + "Bronzong" + ] + }, + { + "id":135, + "name":"light-metal", + "description":"Halves the Pokemon's weight.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Scizor", + "Beldum", + "Metang", + "Metagross", + "Registeel" + ] + }, + { + "id":136, + "name":"multiscale", + "description":"Halves damage taken from full HP.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Dragonite", + "Lugia" + ] + }, + { + "id":137, + "name":"toxic-boost", + "description":"Increases Attack to 1.5x when poisoned.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Zangoose" + ] + }, + { + "id":138, + "name":"flare-boost", + "description":"Increases Special Attack to 1.5x when burned.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Drifloon", + "Drifblim" + ] + }, + { + "id":139, + "name":"harvest", + "description":"Has a 50% chance of restoring a used Berry after each turn if the Pokemon has held no items in the meantime.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Exeggcute", + "Exeggutor", + "Tropius", + "Phantump", + "Trevenant", + "Exeggutor-alola" + ] + }, + { + "id":140, + "name":"telepathy", + "description":"Protects against friendly Pokemon's damaging moves.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Elgyem", + "Beheeyem" + ], + "pokemonSecondAbility":[ + "Oranguru" + ], + "pokemonHiddenAbility":[ + "Wobbuffet", + "Ralts", + "Kirlia", + "Gardevoir", + "Meditite", + "Medicham", + "Wynaut", + "Dialga", + "Palkia", + "Giratina-altered", + "Munna", + "Musharna", + "Noibat", + "Noivern", + "Tapu-koko", + "Tapu-lele", + "Tapu-bulu", + "Tapu-fini" + ] + }, + { + "id":141, + "name":"moody", + "description":"Raises a random stat two stages and lowers another one stage after each turn.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Remoraid", + "Octillery", + "Smeargle", + "Snorunt", + "Glalie", + "Bidoof", + "Bibarel" + ] + }, + { + "id":142, + "name":"overcoat", + "description":"Protects against damage from weather.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Solosis", + "Duosion", + "Reuniclus" + ], + "pokemonSecondAbility":[ + "Vullaby", + "Mandibuzz" + ], + "pokemonHiddenAbility":[ + "Shellder", + "Cloyster", + "Pineco", + "Forretress", + "Shelgon", + "Burmy", + "Wormadam-plant", + "Sewaddle", + "Swadloon", + "Leavanny", + "Escavalier", + "Shelmet", + "Jangmo-o", + "Hakamo-o", + "Kommo-o", + "Wormadam-sandy", + "Wormadam-trash", + "Kommo-o-totem" + ] + }, + { + "id":143, + "name":"poison-touch", + "description":"Has a 30% chance of poisoning target Pokemon upon contact.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Grimer-alola", + "Muk-alola" + ], + "pokemonSecondAbility":[ + "Seismitoad", + "Skrelp", + "Dragalge" + ], + "pokemonHiddenAbility":[ + "Grimer", + "Muk", + "Croagunk", + "Toxicroak" + ] + }, + { + "id":144, + "name":"regenerator", + "description":"Heals for 1/3 max HP upon switching out.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Tornadus-therian" + ], + "pokemonSecondAbility":[ + "Audino", + "Mienfoo", + "Mienshao" + ], + "pokemonHiddenAbility":[ + "Slowpoke", + "Slowbro", + "Tangela", + "Slowking", + "Corsola", + "Ho-oh", + "Tangrowth", + "Solosis", + "Duosion", + "Reuniclus", + "Foongus", + "Amoonguss", + "Alomomola", + "Mareanie", + "Toxapex" + ] + }, + { + "id":145, + "name":"big-pecks", + "description":"Protects against Defense drops.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Pidove", + "Tranquill", + "Unfezant", + "Vullaby", + "Mandibuzz", + "Fletchling" + ], + "pokemonSecondAbility":[ + "Ducklett", + "Swanna" + ], + "pokemonHiddenAbility":[ + "Pidgey", + "Pidgeotto", + "Pidgeot", + "Chatot" + ] + }, + { + "id":146, + "name":"sand-rush", + "description":"Doubles Speed during a sandstorm. Protects against sandstorm damage.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Drilbur", + "Excadrill" + ], + "pokemonSecondAbility":[ + "Herdier", + "Stoutland", + "Lycanroc-midday" + ], + "pokemonHiddenAbility":[ + "Sandshrew", + "Sandslash" + ] + }, + { + "id":147, + "name":"wonder-skin", + "description":"Lowers incoming non-damaging moves' base accuracy to exactly 50%.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Sigilyph" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Venomoth", + "Skitty", + "Delcatty", + "Bruxish" + ] + }, + { + "id":148, + "name":"analytic", + "description":"Strengthens moves to 1.3x their power when moving last.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Magnemite", + "Magneton", + "Staryu", + "Starmie", + "Porygon", + "Porygon2", + "Magnezone", + "Porygon-z", + "Patrat", + "Watchog", + "Elgyem", + "Beheeyem" + ] + }, + { + "id":149, + "name":"illusion", + "description":"Takes the appearance of the last conscious party Pokemon upon being sent out until hit by a damaging move.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Zorua", + "Zoroark" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":150, + "name":"imposter", + "description":"Transforms upon entering battle.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Ditto" + ] + }, + { + "id":151, + "name":"infiltrator", + "description":"Bypasses light screen, reflect, and safeguard.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Cottonee", + "Whimsicott", + "Espurr", + "Meowstic-male", + "Noibat", + "Noivern", + "Meowstic-female" + ], + "pokemonHiddenAbility":[ + "Zubat", + "Golbat", + "Crobat", + "Hoppip", + "Skiploom", + "Jumpluff", + "Ninjask", + "Seviper", + "Spiritomb", + "Litwick", + "Lampent", + "Chandelure", + "Inkay", + "Malamar" + ] + }, + { + "id":152, + "name":"mummy", + "description":"Changes attacking Pokemon's abilities to Mummy on contact.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Yamask", + "Cofagrigus" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":153, + "name":"moxie", + "description":"Raises Attack one stage upon KOing a Pokemon.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Sandile", + "Krokorok", + "Krookodile", + "Scraggy", + "Scrafty" + ], + "pokemonHiddenAbility":[ + "Pinsir", + "Gyarados", + "Heracross", + "Mightyena", + "Salamence", + "Honchkrow", + "Litleo", + "Pyroar" + ] + }, + { + "id":154, + "name":"justified", + "description":"Raises Attack one stage upon taking damage from a dark move.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Cobalion", + "Terrakion", + "Virizion", + "Keldeo-ordinary", + "Keldeo-resolute" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Growlithe", + "Arcanine", + "Absol", + "Lucario", + "Gallade" + ] + }, + { + "id":155, + "name":"rattled", + "description":"Raises Speed one stage upon being hit by a dark, ghost, or bug move.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Magikarp", + "Ledyba", + "Sudowoodo", + "Dunsparce", + "Snubbull", + "Granbull", + "Poochyena", + "Whismur", + "Clamperl", + "Bonsly", + "Cubchoo", + "Meowth-alola", + "Persian-alola" + ] + }, + { + "id":156, + "name":"magic-bounce", + "description":"Reflects most non-damaging moves back at their user.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Absol-mega", + "Sableye-mega", + "Diancie-mega" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Natu", + "Xatu", + "Espeon" + ] + }, + { + "id":157, + "name":"sap-sipper", + "description":"Absorbs grass moves, raising Attack one stage.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Skiddo", + "Gogoat", + "Goomy", + "Sliggoo", + "Goodra" + ], + "pokemonSecondAbility":[ + "Deerling", + "Sawsbuck", + "Bouffalant", + "Drampa" + ], + "pokemonHiddenAbility":[ + "Marill", + "Azumarill", + "Girafarig", + "Stantler", + "Miltank", + "Azurill", + "Blitzle", + "Zebstrika" + ] + }, + { + "id":158, + "name":"prankster", + "description":"Raises non-damaging moves' priority by one stage.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Cottonee", + "Whimsicott", + "Tornadus-incarnate", + "Thundurus-incarnate", + "Klefki", + "Banette-mega" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Murkrow", + "Sableye", + "Volbeat", + "Illumise", + "Riolu", + "Purrloin", + "Liepard", + "Meowstic-male" + ] + }, + { + "id":159, + "name":"sand-force", + "description":"Strengthens rock, ground, and steel moves to 1.3x their power during a sandstorm. Protects against sandstorm damage.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Landorus-incarnate", + "Garchomp-mega", + "Steelix-mega" + ], + "pokemonSecondAbility":[ + "Drilbur", + "Excadrill" + ], + "pokemonHiddenAbility":[ + "Diglett", + "Dugtrio", + "Nosepass", + "Shellos", + "Gastrodon", + "Hippopotas", + "Hippowdon", + "Probopass", + "Roggenrola", + "Boldore", + "Gigalith", + "Diglett-alola", + "Dugtrio-alola" + ] + }, + { + "id":160, + "name":"iron-barbs", + "description":"Damages attacking Pokemon for 1/8 their max HP on contact.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Ferroseed", + "Ferrothorn", + "Togedemaru", + "Togedemaru-totem" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":161, + "name":"zen-mode", + "description":"Changes darmanitan's form after each turn depending on its HP: Zen Mode below 50% max HP, and Standard Mode otherwise.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Darmanitan-standard", + "Darmanitan-zen" + ] + }, + { + "id":162, + "name":"victory-star", + "description":"Increases moves' accuracy to 1.1x for friendly Pokemon.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Victini" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":163, + "name":"turboblaze", + "description":"Bypasses targets' abilities if they could hinder or prevent moves.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Reshiram", + "Kyurem-white" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":164, + "name":"teravolt", + "description":"Bypasses targets' abilities if they could hinder or prevent moves.", + "longDescription":"", + "generationIntroduced":"5", + "pokemonFirstAbility":[ + "Zekrom", + "Kyurem-black" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":165, + "name":"aroma-veil", + "description":"Protects allies against moves that affect their mental state.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Spritzee", + "Aromatisse" + ] + }, + { + "id":166, + "name":"flower-veil", + "description":"Protects friendly grass Pokemon from having their stats lowered by other Pokemon.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + "Flabebe", + "Floette", + "Florges", + "Comfey", + "Floette-eternal" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":167, + "name":"cheek-pouch", + "description":"Restores HP upon eating a Berry, in addition to the Berry's effect.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + "Dedenne" + ], + "pokemonSecondAbility":[ + "Bunnelby", + "Diggersby" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":168, + "name":"protean", + "description":"Changes the bearer's type to match each move it uses.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Kecleon", + "Froakie", + "Frogadier", + "Greninja" + ] + }, + { + "id":169, + "name":"fur-coat", + "description":"Halves damage from physical attacks.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + "Furfrou", + "Persian-alola" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":170, + "name":"magician", + "description":"Steals the target's held item when the bearer uses a damaging move.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + "Hoopa", + "Hoopa-unbound" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Fennekin", + "Braixen", + "Delphox", + "Klefki" + ] + }, + { + "id":171, + "name":"bulletproof", + "description":"Protects against bullet, ball, and bomb-based moves.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + "Jangmo-o", + "Hakamo-o", + "Kommo-o", + "Kommo-o-totem" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Chespin", + "Quilladin", + "Chesnaught" + ] + }, + { + "id":172, + "name":"competitive", + "description":"Raises Special Attack by two stages upon having any stat lowered.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Jigglypuff", + "Wigglytuff", + "Igglybuff", + "Milotic", + "Gothita", + "Gothorita", + "Gothitelle" + ], + "pokemonHiddenAbility":[ + "Meowstic-female" + ] + }, + { + "id":173, + "name":"strong-jaw", + "description":"Strengthens biting moves to 1.5x their power.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + "Tyrunt", + "Tyrantrum", + "Sharpedo-mega" + ], + "pokemonSecondAbility":[ + "Yungoos", + "Gumshoos", + "Bruxish", + "Gumshoos-totem" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":174, + "name":"refrigerate", + "description":"Turns the bearer's normal moves into ice moves and strengthens them to 1.3x their power.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + "Amaura", + "Aurorus", + "Glalie-mega" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":175, + "name":"sweet-veil", + "description":"Prevents friendly Pokemon from sleeping.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + "Swirlix", + "Slurpuff" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Cutiefly", + "Ribombee", + "Bounsweet", + "Steenee", + "Tsareena", + "Ribombee-totem" + ] + }, + { + "id":176, + "name":"stance-change", + "description":"Changes aegislash to Blade Forme before using a damaging move, or Shield Forme before using kings shield.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + "Aegislash-shield", + "Aegislash-blade" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":177, + "name":"gale-wings", + "description":"Raises flying moves' priority by one stage.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Fletchling", + "Fletchinder", + "Talonflame" + ] + }, + { + "id":178, + "name":"mega-launcher", + "description":"Strengthens aura and pulse moves to 1.5x their power.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + "Clauncher", + "Clawitzer", + "Blastoise-mega" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":179, + "name":"grass-pelt", + "description":"Boosts Defense while grassy terrain is in effect.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Skiddo", + "Gogoat" + ] + }, + { + "id":180, + "name":"symbiosis", + "description":"Passes the bearer's held item to an ally when the ally uses up its item.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Flabebe", + "Floette", + "Florges", + "Oranguru", + "Floette-eternal" + ] + }, + { + "id":181, + "name":"tough-claws", + "description":"Strengthens moves that make contact to 1.33x their power.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + "Binacle", + "Barbaracle", + "Charizard-mega-x", + "Aerodactyl-mega", + "Metagross-mega", + "Lycanroc-dusk" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":182, + "name":"pixilate", + "description":"Turns the bearer's normal moves into fairy moves and strengthens them to 1.3x their power.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + "Gardevoir-mega", + "Altaria-mega" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Sylveon" + ] + }, + { + "id":183, + "name":"gooey", + "description":"Lowers attacking Pokemon's Speed by one stage on contact.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Goomy", + "Sliggoo", + "Goodra" + ] + }, + { + "id":184, + "name":"aerilate", + "description":"Turns the bearer's normal moves into flying moves and strengthens them to 1.3x their power.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + "Pinsir-mega", + "Salamence-mega" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":185, + "name":"parental-bond", + "description":"Lets the bearer hit twice with damaging moves. The second hit has half power.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + "Kangaskhan-mega" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":186, + "name":"dark-aura", + "description":"Strengthens dark moves to 1.33x their power for all friendly and opposing Pokemon.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + "Yveltal" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":187, + "name":"fairy-aura", + "description":"Strengthens fairy moves to 1.33x their power for all friendly and opposing Pokemon.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + "Xerneas" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":188, + "name":"aura-break", + "description":"Makes dark aura and fairy aura weaken moves of their respective types.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + "Zygarde" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":189, + "name":"primordial-sea", + "description":"Creates heavy rain, which has all the properties of Rain Dance, cannot be replaced, and causes damaging Fire moves to fail.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + "Kyogre-primal" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":190, + "name":"desolate-land", + "description":"Creates extremely harsh sunlight, which has all the properties of Sunny Day, cannot be replaced, and causes damaging Water moves to fail.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + "Groudon-primal" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":191, + "name":"delta-stream", + "description":"Creates a mysterious air current, which cannot be replaced and causes moves to never be super effective against Flying Pokemon.", + "longDescription":"", + "generationIntroduced":"6", + "pokemonFirstAbility":[ + "Rayquaza-mega" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":192, + "name":"stamina", + "description":"Raises this Pokemon's Defense by one stage when it takes damage from a move.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Mudbray", + "Mudsdale" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":193, + "name":"wimp-out", + "description":"This Pokemon automatically switches out when its HP drops below half.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Wimpod" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":194, + "name":"emergency-exit", + "description":"This Pokemon automatically switches out when its HP drops below half.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Golisopod" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":195, + "name":"water-compaction", + "description":"Raises this Pokemon's Defense by two stages when it's hit by a Water move.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Sandygast", + "Palossand" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":196, + "name":"merciless", + "description":"This Pokemon's moves critical hit against poisoned targets.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Mareanie", + "Toxapex" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":197, + "name":"shields-down", + "description":"Transforms this Minior between Core Form and Meteor Form. Prevents major status ailments and drowsiness while in Meteor Form.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Minior-red-meteor", + "Minior-orange-meteor", + "Minior-yellow-meteor", + "Minior-green-meteor", + "Minior-blue-meteor", + "Minior-indigo-meteor", + "Minior-violet-meteor", + "Minior-red", + "Minior-orange", + "Minior-yellow", + "Minior-green", + "Minior-blue", + "Minior-indigo", + "Minior-violet" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":198, + "name":"stakeout", + "description":"This Pokemon's moves have double power against Pokemon that switched in this turn.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Yungoos", + "Gumshoos", + "Gumshoos-totem" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":199, + "name":"water-bubble", + "description":"Halves damage from Fire moves, doubles damage of Water moves, and prevents burns.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Dewpider", + "Araquanid", + "Araquanid-totem" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":200, + "name":"steelworker", + "description":"This Pokemon's Steel moves have 1.5x power.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Dhelmise" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":201, + "name":"berserk", + "description":"Raises this Pokemon's Special Attack by one stage every time its HP drops below half.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Drampa" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":202, + "name":"slush-rush", + "description":"During Hail, this Pokemon has double Speed.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Cubchoo", + "Beartic" + ], + "pokemonHiddenAbility":[ + "Sandshrew-alola", + "Sandslash-alola" + ] + }, + { + "id":203, + "name":"long-reach", + "description":"This Pokemon's moves do not make contact.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Rowlet", + "Dartrix", + "Decidueye" + ] + }, + { + "id":204, + "name":"liquid-voice", + "description":"Sound-based moves become Water-type.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Popplio", + "Brionne", + "Primarina" + ] + }, + { + "id":205, + "name":"triage", + "description":"This Pokemon's healing moves have their priority increased by 3.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Comfey" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":206, + "name":"galvanize", + "description":"This Pokemon's Normal moves are Electric and have their power increased to 1.2x.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Geodude-alola", + "Graveler-alola", + "Golem-alola" + ] + }, + { + "id":207, + "name":"surge-surfer", + "description":"Doubles this Pokemon's Speed on Electric Terrain.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Raichu-alola" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":208, + "name":"schooling", + "description":"Wishiwashi becomes Schooling Form when its HP is 25% or higher.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Wishiwashi-solo", + "Wishiwashi-school" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":209, + "name":"disguise", + "description":"Prevents the first instance of battle damage.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Mimikyu-disguised", + "Mimikyu-busted", + "Mimikyu-totem-disguised", + "Mimikyu-totem-busted" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":210, + "name":"battle-bond", + "description":"Transforms this Pokemon into Ash-Greninja after fainting an opponent. Water Shuriken's power is 20 and always hits three times.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Greninja-battle-bond", + "Greninja-ash" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":211, + "name":"power-construct", + "description":"Transforms 10% or 50% Zygarde into Complete Forme when its HP is below 50%.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Zygarde-10", + "Zygarde-50", + "Zygarde-complete" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":212, + "name":"corrosion", + "description":"This Pokemon can inflict poison on Poison and Steel Pokemon.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Salandit", + "Salazzle", + "Salazzle-totem" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":213, + "name":"comatose", + "description":"This Pokemon always acts as though it were Asleep.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Komala" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":214, + "name":"queenly-majesty", + "description":"Opposing Pokemon cannot use priority attacks.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Tsareena" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":215, + "name":"innards-out", + "description":"When this Pokemon faints from an opponent's move, that opponent takes damage equal to the HP this Pokemon had remaining.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Pyukumuku" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":216, + "name":"dancer", + "description":"Whenever another Pokemon uses a dance move, this Pokemon will use the same move immediately afterwards.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Oricorio-baile", + "Oricorio-pom-pom", + "Oricorio-pau", + "Oricorio-sensu" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":217, + "name":"battery", + "description":"Ally Pokemon's moves have their power increased to 1.3x.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Charjabug" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":218, + "name":"fluffy", + "description":"Damage from contact moves is halved. Damage from Fire moves is doubled.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Stufful", + "Bewear" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":219, + "name":"dazzling", + "description":"Opposing Pokemon cannot use priority attacks.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Bruxish" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":220, + "name":"soul-heart", + "description":"This Pokemon's Special Attack rises by one stage every time any Pokemon faints.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Magearna", + "Magearna-original" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":221, + "name":"tangling-hair", + "description":"When this Pokemon takes regular damage from a contact move, the attacking Pokemon's Speed lowers by one stage.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + "Diglett-alola", + "Dugtrio-alola" + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":222, + "name":"receiver", + "description":"When an ally faints, this Pokemon gains its Ability.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Passimian" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":223, + "name":"power-of-alchemy", + "description":"When an ally faints, this Pokemon gains its Ability.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + "Grimer-alola", + "Muk-alola" + ] + }, + { + "id":224, + "name":"beast-boost", + "description":"Raises this Pokemon's highest stat by one stage when it faints another Pokemon.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Nihilego", + "Buzzwole", + "Pheromosa", + "Xurkitree", + "Celesteela", + "Kartana", + "Guzzlord", + "Poipole", + "Naganadel", + "Stakataka", + "Blacephalon" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":225, + "name":"rks-system", + "description":"Changes this Pokemon's type to match its held Memory.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Silvally" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":226, + "name":"electric-surge", + "description":"When this Pokemon enters battle, it changes the terrain to Electric Terrain.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Tapu-koko" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":227, + "name":"psychic-surge", + "description":"When this Pokemon enters battle, it changes the terrain to Psychic Terrain.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Tapu-lele" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":228, + "name":"misty-surge", + "description":"When this Pokemon enters battle, it changes the terrain to Misty Terrain.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Tapu-fini" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":229, + "name":"grassy-surge", + "description":"When this Pokemon enters battle, it changes the terrain to Grassy Terrain.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Tapu-bulu" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":230, + "name":"full-metal-body", + "description":"Other Pokemon cannot lower this Pokemon's stats.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Solgaleo" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":231, + "name":"shadow-shield", + "description":"When this Pokemon has full HP, regular damage from moves is halved.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Lunala" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":232, + "name":"prism-armor", + "description":"Reduces super-effective damage to 0.75x.", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Necrozma", + "Necrozma-dusk", + "Necrozma-dawn" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + }, + { + "id":233, + "name":"neuroforce", + "description":"XXX new effect for neuroforce", + "longDescription":"", + "generationIntroduced":"7", + "pokemonFirstAbility":[ + "Necrozma-ultra" + ], + "pokemonSecondAbility":[ + + ], + "pokemonHiddenAbility":[ + + ] + } +] \ No newline at end of file diff --git a/lib/data/abilities.dart b/lib/data/abilities.dart index 466f5fa..be8904c 100644 --- a/lib/data/abilities.dart +++ b/lib/data/abilities.dart @@ -1,238 +1,4164 @@ import 'package:pokedex/models/ability.dart'; const List abilities = [ - Ability(id: 1, name: 'stench', description: 'Has a 10% chance of making target Pokemon flinch with each hit.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Grimer', 'Muk', 'Stunky', 'Skuntank', 'Trubbish', 'Garbodor'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Gloom'],), - Ability(id: 2, name: 'drizzle', description: 'Summons rain that lasts indefinitely upon entering battle.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Kyogre'], pokemonSecondAbility: ['Pelipper'], pokemonHiddenAbility: ['Politoed'],), - Ability(id: 3, name: 'speed-boost', description: 'Raises Speed one stage after each turn.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Yanma', 'Ninjask', 'Yanmega', 'Blaziken-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Torchic', 'Combusken', 'Blaziken', 'Carvanha', 'Sharpedo', 'Venipede', 'Whirlipede', 'Scolipede'],), - Ability(id: 4, name: 'battle-armor', description: 'Protects against critical hits.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Anorith', 'Armaldo', 'Skorupi', 'Drapion', 'Type-null'], pokemonSecondAbility: ['Kabuto', 'Kabutops'], pokemonHiddenAbility: ['Cubone', 'Marowak'],), - Ability(id: 5, name: 'sturdy', description: 'Prevents being KOed from full HP, leaving 1 HP instead. Protects against the one-hit KO moves regardless of HP.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Sudowoodo', 'Pineco', 'Forretress', 'Shuckle', 'Donphan', 'Nosepass', 'Aron', 'Lairon', 'Aggron', 'Shieldon', 'Bastiodon', 'Bonsly', 'Probopass', 'Roggenrola', 'Boldore', 'Gigalith', 'Sawk', 'Dwebble', 'Crustle', 'Cosmoem'], pokemonSecondAbility: ['Geodude', 'Graveler', 'Golem', 'Magnemite', 'Magneton', 'Onix', 'Steelix', 'Skarmory', 'Magnezone', 'Tirtouga', 'Carracosta', 'Geodude-alola', 'Graveler-alola', 'Golem-alola'], pokemonHiddenAbility: ['Relicanth', 'Regirock', 'Tyrunt', 'Carbink', 'Bergmite', 'Avalugg', 'Togedemaru', 'Togedemaru-totem'],), - Ability(id: 6, name: 'damp', description: 'Prevents self destruct, explosion, and aftermath from working while the Pokemon is in battle.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Psyduck', 'Golduck', 'Wooper', 'Quagsire'], pokemonSecondAbility: ['Poliwag', 'Poliwhirl', 'Poliwrath', 'Politoed'], pokemonHiddenAbility: ['Paras', 'Parasect', 'Horsea', 'Seadra', 'Kingdra', 'Mudkip', 'Marshtomp', 'Swampert', 'Frillish', 'Jellicent'],), - Ability(id: 7, name: 'limber', description: 'Prevents paralysis.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Persian', 'Hitmonlee', 'Ditto', 'Glameow', 'Purrloin', 'Liepard', 'Hawlucha'], pokemonSecondAbility: ['Stunfisk', 'Mareanie', 'Toxapex'], pokemonHiddenAbility: ['Buneary', 'Lopunny'],), - Ability(id: 8, name: 'sand-veil', description: 'Increases evasion to 1.25x during a sandstorm. Protects against sandstorm damage.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Sandshrew', 'Sandslash', 'Diglett', 'Dugtrio', 'Cacnea', 'Cacturne', 'Gible', 'Gabite', 'Garchomp', 'Diglett-alola', 'Dugtrio-alola'], pokemonSecondAbility: ['Gligar', 'Gliscor', 'Helioptile', 'Heliolisk'], pokemonHiddenAbility: ['Geodude', 'Graveler', 'Golem', 'Phanpy', 'Donphan', 'Larvitar', 'Stunfisk', 'Sandygast', 'Palossand'],), - Ability(id: 9, name: 'static', description: 'Has a 30% chance of paralyzing attacking Pokemon on contact.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Pikachu', 'Raichu', 'Electabuzz', 'Pichu', 'Mareep', 'Flaaffy', 'Ampharos', 'Elekid', 'Electrike', 'Manectric', 'Emolga', 'Stunfisk', 'Pikachu-rock-star', 'Pikachu-belle', 'Pikachu-pop-star', 'Pikachu-phd', 'Pikachu-libre', 'Pikachu-cosplay', 'Pikachu-original-cap', 'Pikachu-hoenn-cap', 'Pikachu-sinnoh-cap', 'Pikachu-unova-cap', 'Pikachu-kalos-cap', 'Pikachu-alola-cap', 'Pikachu-partner-cap'], pokemonSecondAbility: ['Voltorb', 'Electrode'], pokemonHiddenAbility: ['Zapdos'],), - Ability(id: 10, name: 'volt-absorb', description: 'Absorbs electric moves, healing for 1/4 max HP.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Jolteon', 'Chinchou', 'Lanturn', 'Zeraora', 'Thundurus-therian'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Minun', 'Pachirisu'],), - Ability(id: 11, name: 'water-absorb', description: 'Absorbs water moves, healing for 1/4 max HP.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Poliwag', 'Poliwhirl', 'Poliwrath', 'Lapras', 'Vaporeon', 'Politoed', 'Maractus', 'Frillish', 'Jellicent', 'Volcanion'], pokemonSecondAbility: ['Wooper', 'Quagsire', 'Mantine', 'Mantyke'], pokemonHiddenAbility: ['Chinchou', 'Lanturn', 'Cacnea', 'Cacturne', 'Tympole', 'Palpitoad', 'Seismitoad', 'Dewpider', 'Araquanid', 'Araquanid-totem'],), - Ability(id: 12, name: 'oblivious', description: 'Prevents infatuation and protects against captivate.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Slowpoke', 'Slowbro', 'Jynx', 'Slowking', 'Swinub', 'Piloswine', 'Smoochum', 'Illumise', 'Numel', 'Barboach', 'Whiscash', 'Mamoswine'], pokemonSecondAbility: ['Lickitung', 'Wailmer', 'Wailord', 'Feebas', 'Lickilicky', 'Bounsweet', 'Steenee'], pokemonHiddenAbility: ['Spheal', 'Sealeo', 'Walrein', 'Salandit', 'Salazzle', 'Salazzle-totem'],), - Ability(id: 13, name: 'cloud-nine', description: 'Negates all effects of weather, but does not prevent the weather itself.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: [], pokemonSecondAbility: ['Psyduck', 'Golduck'], pokemonHiddenAbility: ['Lickitung', 'Swablu', 'Altaria', 'Lickilicky', 'Drampa'],), - Ability(id: 14, name: 'compound-eyes', description: 'Increases moves accuracy to 1.3x.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Butterfree', 'Venonat', 'Nincada', 'Joltik', 'Galvantula'], pokemonSecondAbility: ['Yanma', 'Scatterbug', 'Vivillon'], pokemonHiddenAbility: ['Dustox'],), - Ability(id: 15, name: 'insomnia', description: 'Prevents sleep.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Drowzee', 'Hypno', 'Hoothoot', 'Noctowl', 'Murkrow', 'Shuppet', 'Banette', 'Honchkrow', 'Mewtwo-mega-y'], pokemonSecondAbility: ['Spinarak', 'Ariados'], pokemonHiddenAbility: ['Delibird', 'Pumpkaboo-average', 'Gourgeist-average', 'Pumpkaboo-small', 'Pumpkaboo-large', 'Pumpkaboo-super', 'Gourgeist-small', 'Gourgeist-large', 'Gourgeist-super'],), - Ability(id: 16, name: 'color-change', description: 'Changes type to match when hit by a damaging move.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Kecleon'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 17, name: 'immunity', description: 'Prevents poison.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Snorlax', 'Zangoose'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Gligar'],), - Ability(id: 18, name: 'flash-fire', description: 'Protects against fire moves. Once one has been blocked, the Pokemon\'s own Fire moves inflict 1.5x damage until it leaves battle.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Vulpix', 'Ninetales', 'Flareon', 'Heatran', 'Litwick', 'Lampent', 'Chandelure'], pokemonSecondAbility: ['Growlithe', 'Arcanine', 'Ponyta', 'Rapidash', 'Houndour', 'Houndoom', 'Heatmor'], pokemonHiddenAbility: ['Cyndaquil', 'Quilava', 'Typhlosion'],), - Ability(id: 19, name: 'shield-dust', description: 'Protects against incoming moves\' extra effects.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Caterpie', 'Weedle', 'Venomoth', 'Wurmple', 'Dustox', 'Scatterbug', 'Vivillon'], pokemonSecondAbility: ['Cutiefly', 'Ribombee', 'Ribombee-totem'], pokemonHiddenAbility: [],), - Ability(id: 20, name: 'own-tempo', description: 'Prevents confusion.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Lickitung', 'Smeargle', 'Spinda', 'Lickilicky', 'Bergmite', 'Avalugg', 'Mudbray', 'Mudsdale', 'Rockruff-own-tempo'], pokemonSecondAbility: ['Slowpoke', 'Slowbro', 'Slowking', 'Spoink', 'Grumpig', 'Glameow', 'Purugly', 'Petilil', 'Lilligant'], pokemonHiddenAbility: ['Lotad', 'Lombre', 'Ludicolo', 'Numel', 'Espurr'],), - Ability(id: 21, name: 'suction-cups', description: 'Prevents being forced out of battle by other Pokemon\'s moves.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Octillery', 'Lileep', 'Cradily'], pokemonSecondAbility: ['Inkay', 'Malamar'], pokemonHiddenAbility: [],), - Ability(id: 22, name: 'intimidate', description: 'Lowers opponents\' Attack one stage upon entering battle.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Ekans', 'Arbok', 'Growlithe', 'Arcanine', 'Tauros', 'Gyarados', 'Snubbull', 'Granbull', 'Stantler', 'Hitmontop', 'Mightyena', 'Masquerain', 'Salamence', 'Staravia', 'Staraptor', 'Herdier', 'Stoutland', 'Sandile', 'Krokorok', 'Krookodile', 'Landorus-therian', 'Manectric-mega'], pokemonSecondAbility: ['Mawile', 'Shinx', 'Luxio', 'Luxray'], pokemonHiddenAbility: ['Qwilfish', 'Scraggy', 'Scrafty', 'Litten', 'Torracat', 'Incineroar'],), - Ability(id: 23, name: 'shadow-tag', description: 'Prevents opponents from fleeing or switching out.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Wobbuffet', 'Wynaut', 'Gengar-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Gothita', 'Gothorita', 'Gothitelle'],), - Ability(id: 24, name: 'rough-skin', description: 'Damages attacking Pokemon for 1/8 their max HP on contact.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Carvanha', 'Sharpedo', 'Druddigon'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Gible', 'Gabite', 'Garchomp'],), - Ability(id: 25, name: 'wonder-guard', description: 'Protects against damaging moves that are not super effective.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Shedinja'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 26, name: 'levitate', description: 'Evades ground moves.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Gastly', 'Haunter', 'Koffing', 'Weezing', 'Misdreavus', 'Unown', 'Vibrava', 'Flygon', 'Lunatone', 'Solrock', 'Baltoy', 'Claydol', 'Duskull', 'Chimecho', 'Latias', 'Latios', 'Mismagius', 'Chingling', 'Bronzor', 'Bronzong', 'Carnivine', 'Rotom', 'Uxie', 'Mesprit', 'Azelf', 'Cresselia', 'Tynamo', 'Eelektrik', 'Eelektross', 'Cryogonal', 'Hydreigon', 'Vikavolt', 'Giratina-origin', 'Rotom-heat', 'Rotom-wash', 'Rotom-frost', 'Rotom-fan', 'Rotom-mow', 'Latias-mega', 'Latios-mega', 'Vikavolt-totem'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 27, name: 'effect-spore', description: 'Has a 30% chance of inflcting either paralysis, poison, or sleep on attacking Pokemon on contact.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Paras', 'Parasect', 'Shroomish', 'Breloom', 'Foongus', 'Amoonguss'], pokemonSecondAbility: ['Morelull', 'Shiinotic'], pokemonHiddenAbility: ['Vileplume'],), - Ability(id: 28, name: 'synchronize', description: 'Copies burns, paralysis, and poison received onto the Pokemon that inflicted them.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Abra', 'Kadabra', 'Alakazam', 'Mew', 'Natu', 'Xatu', 'Espeon', 'Umbreon', 'Ralts', 'Kirlia', 'Gardevoir'], pokemonSecondAbility: ['Munna', 'Musharna', 'Elgyem', 'Beheeyem'], pokemonHiddenAbility: [],), - Ability(id: 29, name: 'clear-body', description: 'Prevents stats from being lowered by other Pokemon.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Tentacool', 'Tentacruel', 'Beldum', 'Metang', 'Metagross', 'Regirock', 'Regice', 'Registeel', 'Carbink', 'Diancie'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Klink', 'Klang', 'Klinklang'],), - Ability(id: 30, name: 'natural-cure', description: 'Cures any major status ailment upon switching out.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Chansey', 'Blissey', 'Celebi', 'Roselia', 'Swablu', 'Altaria', 'Budew', 'Roserade', 'Happiny', 'Shaymin-land', 'Phantump', 'Trevenant'], pokemonSecondAbility: ['Staryu', 'Starmie', 'Corsola'], pokemonHiddenAbility: ['Comfey'],), - Ability(id: 31, name: 'lightning-rod', description: 'Redirects single-target electric moves to this Pokemon where possible. Absorbs Electric moves, raising Special Attack one stage.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Rhyhorn', 'Rhydon', 'Rhyperior', 'Blitzle', 'Zebstrika', 'Sceptile-mega'], pokemonSecondAbility: ['Cubone', 'Marowak', 'Electrike', 'Manectric', 'Togedemaru', 'Marowak-alola', 'Marowak-totem', 'Togedemaru-totem'], pokemonHiddenAbility: ['Pikachu', 'Raichu', 'Goldeen', 'Seaking', 'Pichu', 'Plusle', 'Pikachu-rock-star', 'Pikachu-belle', 'Pikachu-pop-star', 'Pikachu-phd', 'Pikachu-libre', 'Pikachu-cosplay', 'Pikachu-original-cap', 'Pikachu-hoenn-cap', 'Pikachu-sinnoh-cap', 'Pikachu-unova-cap', 'Pikachu-kalos-cap', 'Pikachu-alola-cap', 'Pikachu-partner-cap'],), - Ability(id: 32, name: 'serene-grace', description: 'Doubles the chance of moves\' extra effects occurring.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Dunsparce', 'Jirachi', 'Meloetta-aria', 'Shaymin-sky', 'Meloetta-pirouette'], pokemonSecondAbility: ['Chansey', 'Togepi', 'Togetic', 'Blissey', 'Happiny', 'Togekiss'], pokemonHiddenAbility: ['Deerling', 'Sawsbuck'],), - Ability(id: 33, name: 'swift-swim', description: 'Doubles Speed during rain.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Horsea', 'Goldeen', 'Seaking', 'Magikarp', 'Omanyte', 'Omastar', 'Kabuto', 'Kabutops', 'Mantine', 'Kingdra', 'Lotad', 'Lombre', 'Ludicolo', 'Surskit', 'Feebas', 'Huntail', 'Gorebyss', 'Relicanth', 'Luvdisc', 'Buizel', 'Floatzel', 'Finneon', 'Lumineon', 'Mantyke', 'Tympole', 'Palpitoad', 'Seismitoad', 'Swampert-mega'], pokemonSecondAbility: ['Qwilfish'], pokemonHiddenAbility: ['Psyduck', 'Golduck', 'Poliwag', 'Poliwhirl', 'Poliwrath', 'Anorith', 'Armaldo', 'Tirtouga', 'Carracosta', 'Beartic'],), - Ability(id: 34, name: 'chlorophyll', description: 'Doubles Speed during strong sunlight.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Oddish', 'Gloom', 'Vileplume', 'Bellsprout', 'Weepinbell', 'Victreebel', 'Exeggcute', 'Exeggutor', 'Tangela', 'Bellossom', 'Hoppip', 'Skiploom', 'Jumpluff', 'Sunkern', 'Sunflora', 'Seedot', 'Nuzleaf', 'Shiftry', 'Tropius', 'Cherubi', 'Tangrowth', 'Petilil', 'Lilligant', 'Deerling', 'Sawsbuck'], pokemonSecondAbility: ['Sewaddle', 'Swadloon', 'Leavanny', 'Maractus'], pokemonHiddenAbility: ['Bulbasaur', 'Ivysaur', 'Venusaur', 'Leafeon', 'Cottonee', 'Whimsicott'],), - Ability(id: 35, name: 'illuminate', description: 'Doubles the wild encounter rate.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Staryu', 'Starmie', 'Volbeat', 'Watchog', 'Morelull', 'Shiinotic'], pokemonSecondAbility: ['Chinchou', 'Lanturn'], pokemonHiddenAbility: [],), - Ability(id: 36, name: 'trace', description: 'Copies an opponent\'s ability upon entering battle.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Porygon', 'Porygon2', 'Alakazam-mega'], pokemonSecondAbility: ['Ralts', 'Kirlia', 'Gardevoir'], pokemonHiddenAbility: [],), - Ability(id: 37, name: 'huge-power', description: 'Doubles Attack in battle.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Mawile-mega'], pokemonSecondAbility: ['Marill', 'Azumarill', 'Azurill'], pokemonHiddenAbility: ['Bunnelby', 'Diggersby'],), - Ability(id: 38, name: 'poison-point', description: 'Has a 30% chance of poisoning attacking Pokemon on contact.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Nidoran-f', 'Nidorina', 'Nidoqueen', 'Nidoran-m', 'Nidorino', 'Nidoking', 'Seadra', 'Qwilfish', 'Venipede', 'Whirlipede', 'Scolipede', 'Skrelp', 'Dragalge'], pokemonSecondAbility: ['Roselia', 'Budew', 'Roserade'], pokemonHiddenAbility: [],), - Ability(id: 39, name: 'inner-focus', description: 'Prevents flinching.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Zubat', 'Golbat', 'Dragonite', 'Crobat', 'Girafarig', 'Sneasel', 'Snorunt', 'Glalie', 'Mienfoo', 'Mienshao', 'Oranguru', 'Gallade-mega'], pokemonSecondAbility: ['Abra', 'Kadabra', 'Alakazam', 'Farfetchd', 'Riolu', 'Lucario', 'Throh', 'Sawk', 'Pawniard', 'Bisharp'], pokemonHiddenAbility: ['Drowzee', 'Hypno', 'Hitmonchan', 'Kangaskhan', 'Umbreon', 'Raikou', 'Entei', 'Suicune', 'Darumaka', 'Mudbray', 'Mudsdale'],), - Ability(id: 40, name: 'magma-armor', description: 'Prevents freezing.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Slugma', 'Magcargo', 'Camerupt'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 41, name: 'water-veil', description: 'Prevents burns.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Wailmer', 'Wailord'], pokemonSecondAbility: ['Goldeen', 'Seaking'], pokemonHiddenAbility: ['Mantine', 'Huntail', 'Buizel', 'Floatzel', 'Finneon', 'Lumineon', 'Mantyke'],), - Ability(id: 42, name: 'magnet-pull', description: 'Prevents steel opponents from fleeing or switching out.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Magnemite', 'Magneton', 'Magnezone', 'Geodude-alola', 'Graveler-alola', 'Golem-alola'], pokemonSecondAbility: ['Nosepass', 'Probopass'], pokemonHiddenAbility: [],), - Ability(id: 43, name: 'soundproof', description: 'Protects against sound-based moves.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Voltorb', 'Electrode', 'Mr-mime', 'Whismur', 'Loudred', 'Exploud', 'Mime-jr'], pokemonSecondAbility: ['Jangmo-o', 'Hakamo-o', 'Kommo-o', 'Kommo-o-totem'], pokemonHiddenAbility: ['Shieldon', 'Bastiodon', 'Snover', 'Abomasnow', 'Bouffalant'],), - Ability(id: 44, name: 'rain-dish', description: 'Heals for 1/16 max HP after each turn during rain.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: [], pokemonSecondAbility: ['Lotad', 'Lombre', 'Ludicolo'], pokemonHiddenAbility: ['Squirtle', 'Wartortle', 'Blastoise', 'Tentacool', 'Tentacruel', 'Wingull', 'Pelipper', 'Surskit', 'Morelull', 'Shiinotic'],), - Ability(id: 45, name: 'sand-stream', description: 'Summons a sandstorm that lasts indefinitely upon entering battle.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Tyranitar', 'Hippopotas', 'Hippowdon', 'Tyranitar-mega'], pokemonSecondAbility: ['Gigalith'], pokemonHiddenAbility: [],), - Ability(id: 46, name: 'pressure', description: 'Increases the PP cost of moves targetting the Pokemon by one.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Articuno', 'Zapdos', 'Moltres', 'Mewtwo', 'Raikou', 'Entei', 'Suicune', 'Lugia', 'Ho-oh', 'Dusclops', 'Absol', 'Deoxys-normal', 'Vespiquen', 'Spiritomb', 'Weavile', 'Dusknoir', 'Dialga', 'Palkia', 'Giratina-altered', 'Kyurem', 'Deoxys-attack', 'Deoxys-defense', 'Deoxys-speed'], pokemonSecondAbility: ['Aerodactyl'], pokemonHiddenAbility: ['Wailmer', 'Wailord', 'Pawniard', 'Bisharp'],), - Ability(id: 47, name: 'thick-fat', description: 'Halves damage from fire and ice moves.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Seel', 'Dewgong', 'Marill', 'Azumarill', 'Miltank', 'Makuhita', 'Hariyama', 'Azurill', 'Spoink', 'Grumpig', 'Spheal', 'Sealeo', 'Walrein', 'Purugly', 'Venusaur-mega'], pokemonSecondAbility: ['Snorlax', 'Munchlax'], pokemonHiddenAbility: ['Swinub', 'Piloswine', 'Mamoswine', 'Tepig', 'Pignite', 'Rattata-alola', 'Raticate-alola', 'Raticate-totem-alola'],), - Ability(id: 48, name: 'early-bird', description: 'Makes sleep pass twice as quickly.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Kangaskhan', 'Houndour', 'Houndoom'], pokemonSecondAbility: ['Doduo', 'Dodrio', 'Ledyba', 'Ledian', 'Natu', 'Xatu', 'Girafarig', 'Seedot', 'Nuzleaf', 'Shiftry'], pokemonHiddenAbility: ['Sunkern', 'Sunflora'],), - Ability(id: 49, name: 'flame-body', description: 'Has a 30% chance of burning attacking Pokemon on contact.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Magmar', 'Magby', 'Magmortar', 'Larvesta', 'Volcarona', 'Fletchinder', 'Talonflame'], pokemonSecondAbility: ['Slugma', 'Magcargo', 'Litwick', 'Lampent', 'Chandelure'], pokemonHiddenAbility: ['Ponyta', 'Rapidash', 'Moltres', 'Heatran'],), - Ability(id: 50, name: 'run-away', description: 'Ensures success fleeing from wild battles.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Rattata', 'Raticate', 'Ponyta', 'Rapidash', 'Doduo', 'Dodrio', 'Eevee', 'Sentret', 'Furret', 'Aipom', 'Poochyena', 'Pachirisu', 'Buneary', 'Patrat'], pokemonSecondAbility: ['Dunsparce', 'Snubbull'], pokemonHiddenAbility: ['Caterpie', 'Weedle', 'Oddish', 'Venonat', 'Wurmple', 'Nincada', 'Kricketot', 'Lillipup'],), - Ability(id: 51, name: 'keen-eye', description: 'Prevents accuracy from being lowered.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Pidgey', 'Pidgeotto', 'Pidgeot', 'Spearow', 'Fearow', 'Farfetchd', 'Hitmonchan', 'Skarmory', 'Wingull', 'Pelipper', 'Sableye', 'Starly', 'Chatot', 'Ducklett', 'Swanna', 'Rufflet', 'Braviary', 'Espurr', 'Meowstic-male', 'Pikipek', 'Trumbeak', 'Toucannon', 'Rockruff', 'Lycanroc-midday', 'Meowstic-female', 'Lycanroc-midnight'], pokemonSecondAbility: ['Sentret', 'Furret', 'Hoothoot', 'Noctowl', 'Sneasel', 'Patrat', 'Watchog'], pokemonHiddenAbility: ['Glameow', 'Stunky', 'Skuntank', 'Skorupi', 'Drapion'],), - Ability(id: 52, name: 'hyper-cutter', description: 'Prevents Attack from being lowered by other Pokemon.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Krabby', 'Kingler', 'Pinsir', 'Gligar', 'Mawile', 'Trapinch', 'Corphish', 'Crawdaunt', 'Gliscor', 'Crabrawler', 'Crabominable'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 53, name: 'pickup', description: 'Picks up other Pokemon\'s used and Flung held items. May also pick up an item after battle.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Meowth', 'Teddiursa', 'Phanpy', 'Zigzagoon', 'Linoone', 'Munchlax', 'Bunnelby', 'Diggersby', 'Pumpkaboo-average', 'Gourgeist-average', 'Pumpkaboo-small', 'Pumpkaboo-large', 'Pumpkaboo-super', 'Gourgeist-small', 'Gourgeist-large', 'Gourgeist-super', 'Meowth-alola'], pokemonSecondAbility: ['Aipom', 'Pachirisu', 'Ambipom', 'Lillipup', 'Dedenne'], pokemonHiddenAbility: ['Pikipek', 'Trumbeak'],), - Ability(id: 54, name: 'truant', description: 'Skips every second turn.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Slakoth', 'Slaking'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Durant'],), - Ability(id: 55, name: 'hustle', description: 'Strengthens physical moves to inflict 1.5x damage, but decreases their accuracy to 0.8x.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Togepi', 'Togetic', 'Corsola', 'Remoraid', 'Togekiss', 'Darumaka', 'Deino', 'Zweilous'], pokemonSecondAbility: ['Delibird', 'Durant', 'Rattata-alola', 'Raticate-alola', 'Raticate-totem-alola'], pokemonHiddenAbility: ['Rattata', 'Raticate', 'Nidoran-f', 'Nidorina', 'Nidoran-m', 'Nidorino', 'Combee', 'Rufflet'],), - Ability(id: 56, name: 'cute-charm', description: 'Has a 30% chance of infatuating attacking Pokemon on contact.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Clefairy', 'Clefable', 'Jigglypuff', 'Wigglytuff', 'Cleffa', 'Igglybuff', 'Skitty', 'Delcatty', 'Lopunny', 'Minccino', 'Cinccino', 'Sylveon'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Milotic', 'Stufful'],), - Ability(id: 57, name: 'plus', description: 'Increases Special Attack to 1.5x when a friendly Pokemon has plus or minus.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Plusle', 'Klink', 'Klang', 'Klinklang'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Mareep', 'Flaaffy', 'Ampharos', 'Dedenne'],), - Ability(id: 58, name: 'minus', description: 'Increases Special Attack to 1.5x when a friendly Pokemon has plus or minus.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Minun'], pokemonSecondAbility: ['Klink', 'Klang', 'Klinklang'], pokemonHiddenAbility: ['Electrike', 'Manectric'],), - Ability(id: 59, name: 'forecast', description: 'Changes castform\'s type and form to match the weather.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Castform', 'Castform-sunny', 'Castform-rainy', 'Castform-snowy'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 60, name: 'sticky-hold', description: 'Prevents a held item from being removed by other Pokemon.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Shellos', 'Gastrodon'], pokemonSecondAbility: ['Grimer', 'Muk', 'Gulpin', 'Swalot', 'Trubbish', 'Accelgor'], pokemonHiddenAbility: [],), - Ability(id: 61, name: 'shed-skin', description: 'Has a 33% chance of curing any major status ailment after each turn.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Metapod', 'Kakuna', 'Dratini', 'Dragonair', 'Pupitar', 'Silcoon', 'Cascoon', 'Seviper', 'Kricketot', 'Burmy', 'Scraggy', 'Scrafty', 'Spewpa'], pokemonSecondAbility: ['Ekans', 'Arbok', 'Karrablast'], pokemonHiddenAbility: [],), - Ability(id: 62, name: 'guts', description: 'Increases Attack to 1.5x with a major status ailment.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Machop', 'Machoke', 'Machamp', 'Ursaring', 'Tyrogue', 'Larvitar', 'Taillow', 'Swellow', 'Timburr', 'Gurdurr', 'Conkeldurr', 'Throh'], pokemonSecondAbility: ['Rattata', 'Raticate', 'Heracross', 'Makuhita', 'Hariyama'], pokemonHiddenAbility: ['Flareon', 'Shinx', 'Luxio', 'Luxray'],), - Ability(id: 63, name: 'marvel-scale', description: 'Increases Defense to 1.5x with a major status ailment.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Milotic'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Dratini', 'Dragonair'],), - Ability(id: 64, name: 'liquid-ooze', description: 'Damages opponents using leeching moves for as much as they would heal.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Gulpin', 'Swalot'], pokemonSecondAbility: ['Tentacool', 'Tentacruel'], pokemonHiddenAbility: [],), - Ability(id: 65, name: 'overgrow', description: 'Strengthens grass moves to inflict 1.5x damage at 1/3 max HP or less.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Bulbasaur', 'Ivysaur', 'Venusaur', 'Chikorita', 'Bayleef', 'Meganium', 'Treecko', 'Grovyle', 'Sceptile', 'Turtwig', 'Grotle', 'Torterra', 'Snivy', 'Servine', 'Serperior', 'Chespin', 'Quilladin', 'Chesnaught', 'Rowlet', 'Dartrix', 'Decidueye'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Pansage', 'Simisage'],), - Ability(id: 66, name: 'blaze', description: 'Strengthens fire moves to inflict 1.5x damage at 1/3 max HP or less.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Charmander', 'Charmeleon', 'Charizard', 'Cyndaquil', 'Quilava', 'Typhlosion', 'Torchic', 'Combusken', 'Blaziken', 'Chimchar', 'Monferno', 'Infernape', 'Tepig', 'Pignite', 'Emboar', 'Fennekin', 'Braixen', 'Delphox', 'Litten', 'Torracat', 'Incineroar'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Pansear', 'Simisear'],), - Ability(id: 67, name: 'torrent', description: 'Strengthens water moves to inflict 1.5x damage at 1/3 max HP or less.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Squirtle', 'Wartortle', 'Blastoise', 'Totodile', 'Croconaw', 'Feraligatr', 'Mudkip', 'Marshtomp', 'Swampert', 'Piplup', 'Prinplup', 'Empoleon', 'Oshawott', 'Dewott', 'Samurott', 'Froakie', 'Frogadier', 'Greninja', 'Popplio', 'Brionne', 'Primarina'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Panpour', 'Simipour'],), - Ability(id: 68, name: 'swarm', description: 'Strengthens bug moves to inflict 1.5x damage at 1/3 max HP or less.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Beedrill', 'Scyther', 'Ledyba', 'Ledian', 'Spinarak', 'Ariados', 'Scizor', 'Heracross', 'Beautifly', 'Kricketune', 'Mothim', 'Sewaddle', 'Leavanny', 'Karrablast', 'Escavalier', 'Durant', 'Grubbin'], pokemonSecondAbility: ['Volbeat', 'Venipede', 'Whirlipede', 'Scolipede'], pokemonHiddenAbility: ['Joltik', 'Galvantula', 'Larvesta', 'Volcarona'],), - Ability(id: 69, name: 'rock-head', description: 'Protects against recoil damage.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Geodude', 'Graveler', 'Golem', 'Onix', 'Cubone', 'Marowak', 'Aerodactyl', 'Steelix', 'Bagon', 'Shelgon', 'Basculin-blue-striped'], pokemonSecondAbility: ['Rhyhorn', 'Rhydon', 'Sudowoodo', 'Aron', 'Lairon', 'Aggron', 'Relicanth', 'Bonsly'], pokemonHiddenAbility: ['Tyrantrum', 'Marowak-alola', 'Marowak-totem'],), - Ability(id: 70, name: 'drought', description: 'Summons strong sunlight that lasts indefinitely upon entering battle.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Groudon', 'Charizard-mega-y'], pokemonSecondAbility: ['Torkoal'], pokemonHiddenAbility: ['Vulpix', 'Ninetales'],), - Ability(id: 71, name: 'arena-trap', description: 'Prevents opponents from fleeing or switching out. Eluded by flying-types and Pokemon in the air.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: [], pokemonSecondAbility: ['Diglett', 'Dugtrio', 'Trapinch'], pokemonHiddenAbility: [],), - Ability(id: 72, name: 'vital-spirit', description: 'Prevents sleep.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Mankey', 'Primeape', 'Delibird', 'Vigoroth', 'Lillipup'], pokemonSecondAbility: ['Rockruff', 'Lycanroc-midnight'], pokemonHiddenAbility: ['Electabuzz', 'Magmar', 'Tyrogue', 'Elekid', 'Magby', 'Electivire', 'Magmortar'],), - Ability(id: 73, name: 'white-smoke', description: 'Prevents stats from being lowered by other Pokemon.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Torkoal'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Heatmor'],), - Ability(id: 74, name: 'pure-power', description: 'Doubles Attack in battle.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Meditite', 'Medicham', 'Medicham-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 75, name: 'shell-armor', description: 'Protects against critical hits.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Shellder', 'Cloyster', 'Clamperl', 'Turtonator', 'Slowbro-mega'], pokemonSecondAbility: ['Krabby', 'Kingler', 'Lapras', 'Omanyte', 'Omastar', 'Corphish', 'Crawdaunt', 'Dwebble', 'Crustle', 'Escavalier', 'Shelmet'], pokemonHiddenAbility: ['Torkoal', 'Turtwig', 'Grotle', 'Torterra', 'Oshawott', 'Dewott', 'Samurott'],), - Ability(id: 76, name: 'air-lock', description: 'Negates all effects of weather, but does not prevent the weather itself.', longDescription: '', generationIntroduced: 3, pokemonFirstAbility: ['Rayquaza'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 77, name: 'tangled-feet', description: 'Doubles evasion when confused.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Pidgey', 'Pidgeotto', 'Pidgeot', 'Spinda', 'Chatot'], pokemonHiddenAbility: ['Doduo', 'Dodrio'],), - Ability(id: 78, name: 'motor-drive', description: 'Absorbs electric moves, raising Speed one stage.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Electivire'], pokemonSecondAbility: ['Blitzle', 'Zebstrika'], pokemonHiddenAbility: ['Emolga'],), - Ability(id: 79, name: 'rivalry', description: 'Increases damage inflicted to 1.25x against Pokemon of the same gender, but decreases damage to 0.75x against the opposite gender.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Shinx', 'Luxio', 'Luxray', 'Axew', 'Fraxure', 'Haxorus', 'Litleo', 'Pyroar'], pokemonSecondAbility: ['Nidoran-f', 'Nidorina', 'Nidoqueen', 'Nidoran-m', 'Nidorino', 'Nidoking'], pokemonHiddenAbility: ['Beautifly', 'Pidove', 'Tranquill', 'Unfezant'],), - Ability(id: 80, name: 'steadfast', description: 'Raises Speed one stage upon flinching.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Riolu', 'Lucario', 'Gallade', 'Mewtwo-mega-x'], pokemonSecondAbility: ['Tyrogue'], pokemonHiddenAbility: ['Machop', 'Machoke', 'Machamp', 'Scyther', 'Hitmontop', 'Rockruff', 'Lycanroc-midday'],), - Ability(id: 81, name: 'snow-cloak', description: 'Increases evasion to 1.25x during hail. Protects against hail damage.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Glaceon', 'Froslass', 'Cubchoo', 'Beartic', 'Sandshrew-alola', 'Sandslash-alola', 'Vulpix-alola', 'Ninetales-alola'], pokemonSecondAbility: ['Swinub', 'Piloswine', 'Mamoswine', 'Vanillite', 'Vanillish'], pokemonHiddenAbility: ['Articuno'],), - Ability(id: 82, name: 'gluttony', description: 'Makes the Pokemon eat any held Berry triggered by low HP below 1/2 its max HP.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Pansage', 'Simisage', 'Pansear', 'Simisear', 'Panpour', 'Simipour', 'Heatmor', 'Rattata-alola', 'Raticate-alola', 'Raticate-totem-alola'], pokemonSecondAbility: ['Shuckle', 'Zigzagoon', 'Linoone', 'Grimer-alola', 'Muk-alola'], pokemonHiddenAbility: ['Bellsprout', 'Weepinbell', 'Victreebel', 'Snorlax', 'Gulpin', 'Swalot', 'Spoink', 'Grumpig', 'Munchlax'],), - Ability(id: 83, name: 'anger-point', description: 'Raises Attack to the maximum of six stages upon receiving a critical hit.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Mankey', 'Primeape', 'Tauros'], pokemonHiddenAbility: ['Camerupt', 'Sandile', 'Krokorok', 'Krookodile', 'Crabrawler', 'Crabominable'],), - Ability(id: 84, name: 'unburden', description: 'Doubles Speed upon using or losing a held item.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Drifloon', 'Drifblim', 'Purrloin', 'Liepard', 'Hawlucha'], pokemonHiddenAbility: ['Hitmonlee', 'Treecko', 'Grovyle', 'Sceptile', 'Accelgor', 'Swirlix', 'Slurpuff'],), - Ability(id: 85, name: 'heatproof', description: 'Halves damage from fire moves and burns.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Bronzor', 'Bronzong'], pokemonHiddenAbility: [],), - Ability(id: 86, name: 'simple', description: 'Doubles the Pokemon\'s stat modifiers. These doubled modifiers are still capped at -6 or 6 stages.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Bidoof', 'Bibarel'], pokemonSecondAbility: ['Numel'], pokemonHiddenAbility: ['Woobat', 'Swoobat'],), - Ability(id: 87, name: 'dry-skin', description: 'Causes 1/8 max HP in damage each turn during strong sunlight, but heals for 1/8 max HP during rain. Increases damage from fire moves to 1.25x, but absorbs water moves, healing for 1/4 max HP.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Helioptile', 'Heliolisk'], pokemonSecondAbility: ['Paras', 'Parasect', 'Croagunk', 'Toxicroak'], pokemonHiddenAbility: ['Jynx'],), - Ability(id: 88, name: 'download', description: 'Raises the attack stat corresponding to the opponents\' weaker defense one stage upon entering battle.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Genesect'], pokemonSecondAbility: ['Porygon', 'Porygon2', 'Porygon-z'], pokemonHiddenAbility: [],), - Ability(id: 89, name: 'iron-fist', description: 'Strengthens punch-based moves to 1.2x their power.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Golett', 'Golurk', 'Pancham', 'Pangoro'], pokemonSecondAbility: ['Hitmonchan', 'Crabrawler', 'Crabominable'], pokemonHiddenAbility: ['Ledian', 'Chimchar', 'Monferno', 'Infernape', 'Timburr', 'Gurdurr', 'Conkeldurr'],), - Ability(id: 90, name: 'poison-heal', description: 'Heals for 1/8 max HP after each turn when poisoned in place of damage.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Shroomish', 'Breloom'], pokemonHiddenAbility: ['Gliscor'],), - Ability(id: 91, name: 'adaptability', description: 'Increases the same-type attack bonus from 1.5x to 2x.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Porygon-z', 'Lucario-mega', 'Beedrill-mega'], pokemonSecondAbility: ['Eevee', 'Basculin-red-striped', 'Basculin-blue-striped'], pokemonHiddenAbility: ['Corphish', 'Crawdaunt', 'Feebas', 'Skrelp', 'Dragalge', 'Yungoos', 'Gumshoos', 'Gumshoos-totem'],), - Ability(id: 92, name: 'skill-link', description: 'Extends two-to-five-hit moves and triple kick to their full length every time.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Heracross-mega'], pokemonSecondAbility: ['Shellder', 'Cloyster', 'Pikipek', 'Trumbeak', 'Toucannon'], pokemonHiddenAbility: ['Aipom', 'Ambipom', 'Minccino', 'Cinccino'],), - Ability(id: 93, name: 'hydration', description: 'Cures any major status ailment after each turn during rain.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Phione', 'Manaphy', 'Shelmet', 'Accelgor'], pokemonSecondAbility: ['Seel', 'Dewgong', 'Wingull', 'Tympole', 'Palpitoad', 'Alomomola', 'Goomy', 'Sliggoo', 'Goodra'], pokemonHiddenAbility: ['Lapras', 'Vaporeon', 'Smoochum', 'Barboach', 'Whiscash', 'Gorebyss', 'Luvdisc', 'Ducklett', 'Swanna'],), - Ability(id: 94, name: 'solar-power', description: 'Increases Special Attack to 1.5x but costs 1/8 max HP after each turn during strong sunlight.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Houndoom-mega'], pokemonSecondAbility: ['Sunkern', 'Sunflora', 'Tropius'], pokemonHiddenAbility: ['Charmander', 'Charmeleon', 'Charizard', 'Helioptile', 'Heliolisk'],), - Ability(id: 95, name: 'quick-feet', description: 'Increases Speed to 1.5x with a major status ailment.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Granbull', 'Teddiursa', 'Ursaring', 'Poochyena', 'Mightyena'], pokemonHiddenAbility: ['Jolteon', 'Zigzagoon', 'Linoone', 'Shroomish'],), - Ability(id: 96, name: 'normalize', description: 'Makes the Pokemon\'s moves all act normal-type.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Skitty', 'Delcatty'], pokemonHiddenAbility: [],), - Ability(id: 97, name: 'sniper', description: 'Strengthens critical hits to inflict 3x damage rather than 2x.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Horsea', 'Seadra', 'Remoraid', 'Octillery', 'Kingdra', 'Skorupi', 'Drapion', 'Binacle', 'Barbaracle'], pokemonHiddenAbility: ['Beedrill', 'Spearow', 'Fearow', 'Spinarak', 'Ariados'],), - Ability(id: 98, name: 'magic-guard', description: 'Protects against damage not directly caused by a move.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Clefairy', 'Clefable', 'Cleffa', 'Sigilyph', 'Solosis', 'Duosion', 'Reuniclus'], pokemonHiddenAbility: ['Abra', 'Kadabra', 'Alakazam'],), - Ability(id: 99, name: 'no-guard', description: 'Ensures all moves used by and against the Pokemon hit.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Honedge', 'Doublade', 'Pidgeot-mega'], pokemonSecondAbility: ['Machop', 'Machoke', 'Machamp'], pokemonHiddenAbility: ['Karrablast', 'Golett', 'Golurk', 'Lycanroc-midnight'],), - Ability(id: 100, name: 'stall', description: 'Makes the Pokemon move last within its move\'s priority bracket.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Sableye'], pokemonHiddenAbility: [],), - Ability(id: 101, name: 'technician', description: 'Strengthens moves of 60 base power or less to 1.5x their power.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Ambipom', 'Marshadow', 'Scizor-mega'], pokemonSecondAbility: ['Meowth', 'Persian', 'Scyther', 'Scizor', 'Smeargle', 'Hitmontop', 'Minccino', 'Cinccino', 'Meowth-alola', 'Persian-alola'], pokemonHiddenAbility: ['Mr-mime', 'Breloom', 'Kricketune', 'Roserade', 'Mime-jr'],), - Ability(id: 102, name: 'leaf-guard', description: 'Protects against major status ailments during strong sunlight.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Leafeon', 'Swadloon', 'Fomantis', 'Lurantis', 'Bounsweet', 'Steenee', 'Tsareena', 'Lurantis-totem'], pokemonSecondAbility: ['Tangela', 'Hoppip', 'Skiploom', 'Jumpluff', 'Tangrowth'], pokemonHiddenAbility: ['Chikorita', 'Bayleef', 'Meganium', 'Roselia', 'Budew', 'Petilil', 'Lilligant'],), - Ability(id: 103, name: 'klutz', description: 'Prevents the Pokemon from using its held item in battle.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Buneary', 'Lopunny', 'Woobat', 'Swoobat', 'Golett', 'Golurk', 'Stufful', 'Bewear'], pokemonHiddenAbility: ['Audino'],), - Ability(id: 104, name: 'mold-breaker', description: 'Bypasses targets\' abilities if they could hinder or prevent a move.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Cranidos', 'Rampardos', 'Gyarados-mega', 'Ampharos-mega'], pokemonSecondAbility: ['Pinsir', 'Axew', 'Fraxure', 'Haxorus', 'Pancham', 'Pangoro'], pokemonHiddenAbility: ['Drilbur', 'Excadrill', 'Throh', 'Sawk', 'Basculin-red-striped', 'Druddigon', 'Hawlucha', 'Basculin-blue-striped'],), - Ability(id: 105, name: 'super-luck', description: 'Raises moves\' critical hit rates one stage.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Murkrow', 'Absol', 'Honchkrow', 'Pidove', 'Tranquill', 'Unfezant'], pokemonHiddenAbility: ['Togepi', 'Togetic', 'Togekiss'],), - Ability(id: 106, name: 'aftermath', description: 'Damages the attacker for 1/4 its max HP when knocked out by a contact move.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Drifloon', 'Drifblim'], pokemonSecondAbility: ['Stunky', 'Skuntank'], pokemonHiddenAbility: ['Voltorb', 'Electrode', 'Trubbish', 'Garbodor'],), - Ability(id: 107, name: 'anticipation', description: 'Notifies all trainers upon entering battle if an opponent has a super-effective move, self destruct, explosion, or a one-hit KO move.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Wormadam-plant', 'Croagunk', 'Toxicroak', 'Wormadam-sandy', 'Wormadam-trash'], pokemonSecondAbility: ['Barboach', 'Whiscash'], pokemonHiddenAbility: ['Eevee', 'Ferrothorn'],), - Ability(id: 108, name: 'forewarn', description: 'Reveals the opponents\' strongest move upon entering battle.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Munna', 'Musharna'], pokemonSecondAbility: ['Drowzee', 'Hypno', 'Jynx', 'Smoochum'], pokemonHiddenAbility: [],), - Ability(id: 109, name: 'unaware', description: 'Ignores other Pokemon\'s stat modifiers for damage and accuracy calculation.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Woobat', 'Swoobat', 'Cosmog'], pokemonSecondAbility: ['Bidoof', 'Bibarel'], pokemonHiddenAbility: ['Clefable', 'Wooper', 'Quagsire', 'Pyukumuku'],), - Ability(id: 110, name: 'tinted-lens', description: 'Doubles damage inflicted with not-very-effective moves.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Venonat', 'Venomoth', 'Illumise', 'Yanmega'], pokemonHiddenAbility: ['Butterfree', 'Hoothoot', 'Noctowl', 'Mothim', 'Sigilyph'],), - Ability(id: 111, name: 'filter', description: 'Decreases damage taken from super-effective moves by 1/4.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Aggron-mega'], pokemonSecondAbility: ['Mr-mime', 'Mime-jr'], pokemonHiddenAbility: [],), - Ability(id: 112, name: 'slow-start', description: 'Halves Attack and Speed for five turns upon entering battle.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Regigigas'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 113, name: 'scrappy', description: 'Lets the Pokemon\'s normal and fighting moves hit ghost Pokemon.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Lopunny-mega'], pokemonSecondAbility: ['Kangaskhan', 'Miltank'], pokemonHiddenAbility: ['Taillow', 'Swellow', 'Loudred', 'Exploud', 'Herdier', 'Stoutland', 'Pancham', 'Pangoro'],), - Ability(id: 114, name: 'storm-drain', description: 'Redirects single-target water moves to this Pokemon where possible. Absorbs Water moves, raising Special Attack one stage.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: [], pokemonSecondAbility: ['Shellos', 'Gastrodon', 'Finneon', 'Lumineon'], pokemonHiddenAbility: ['Lileep', 'Cradily', 'Maractus'],), - Ability(id: 115, name: 'ice-body', description: 'Heals for 1/16 max HP after each turn during hail. Protects against hail damage.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Vanillite', 'Vanillish', 'Vanilluxe'], pokemonSecondAbility: ['Snorunt', 'Glalie', 'Spheal', 'Sealeo', 'Walrein', 'Bergmite', 'Avalugg'], pokemonHiddenAbility: ['Seel', 'Dewgong', 'Regice', 'Glaceon'],), - Ability(id: 116, name: 'solid-rock', description: 'Decreases damage taken from super-effective moves by 1/4.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Tirtouga', 'Carracosta'], pokemonSecondAbility: ['Camerupt', 'Rhyperior'], pokemonHiddenAbility: [],), - Ability(id: 117, name: 'snow-warning', description: 'Summons hail that lasts indefinitely upon entering battle.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Snover', 'Abomasnow', 'Abomasnow-mega'], pokemonSecondAbility: ['Vanilluxe'], pokemonHiddenAbility: ['Amaura', 'Aurorus', 'Vulpix-alola', 'Ninetales-alola'],), - Ability(id: 118, name: 'honey-gather', description: 'The Pokemon may pick up honey after battle.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Combee', 'Cutiefly', 'Ribombee', 'Ribombee-totem'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Teddiursa'],), - Ability(id: 119, name: 'frisk', description: 'Reveals an opponent\'s held item upon entering battle.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Gothita', 'Gothorita', 'Gothitelle', 'Noibat', 'Noivern', 'Exeggutor-alola'], pokemonSecondAbility: ['Stantler', 'Shuppet', 'Banette', 'Phantump', 'Trevenant', 'Pumpkaboo-average', 'Gourgeist-average', 'Pumpkaboo-small', 'Pumpkaboo-large', 'Pumpkaboo-super', 'Gourgeist-small', 'Gourgeist-large', 'Gourgeist-super'], pokemonHiddenAbility: ['Wigglytuff', 'Sentret', 'Furret', 'Yanma', 'Duskull', 'Dusclops', 'Yanmega', 'Dusknoir'],), - Ability(id: 120, name: 'reckless', description: 'Strengthens recoil moves to 1.2x their power.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Basculin-red-striped', 'Bouffalant'], pokemonSecondAbility: ['Hitmonlee'], pokemonHiddenAbility: ['Rhyhorn', 'Rhydon', 'Starly', 'Staravia', 'Staraptor', 'Rhyperior', 'Emboar', 'Mienfoo', 'Mienshao'],), - Ability(id: 121, name: 'multitype', description: 'Changes arceus\'s type and form to match its held Plate.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Arceus'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 122, name: 'flower-gift', description: 'Increases friendly Pokemon\'s Attack and Special Defense to 1.5x during strong sunlight.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Cherrim'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 123, name: 'bad-dreams', description: 'Damages sleeping opponents for 1/8 their max HP after each turn.', longDescription: '', generationIntroduced: 4, pokemonFirstAbility: ['Darkrai'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 124, name: 'pickpocket', description: 'Steals attacking Pokemon\'s held items on contact.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Sneasel', 'Seedot', 'Nuzleaf', 'Shiftry', 'Weavile', 'Binacle', 'Barbaracle'],), - Ability(id: 125, name: 'sheer-force', description: 'Strengthens moves with extra effects to 1.3x their power, but prevents their extra effects.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Darmanitan-standard', 'Darmanitan-zen', 'Camerupt-mega'], pokemonSecondAbility: ['Timburr', 'Gurdurr', 'Conkeldurr', 'Druddigon', 'Rufflet', 'Braviary'], pokemonHiddenAbility: ['Nidoqueen', 'Nidoking', 'Krabby', 'Kingler', 'Tauros', 'Totodile', 'Croconaw', 'Feraligatr', 'Steelix', 'Makuhita', 'Hariyama', 'Mawile', 'Trapinch', 'Bagon', 'Cranidos', 'Rampardos', 'Landorus-incarnate', 'Toucannon'],), - Ability(id: 126, name: 'contrary', description: 'Inverts stat changes.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Inkay', 'Malamar'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Shuckle', 'Spinda', 'Snivy', 'Servine', 'Serperior', 'Fomantis', 'Lurantis', 'Lurantis-totem'],), - Ability(id: 127, name: 'unnerve', description: 'Prevents opposing Pokemon from eating held Berries.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: ['Joltik', 'Galvantula', 'Litleo', 'Pyroar'], pokemonHiddenAbility: ['Ekans', 'Arbok', 'Meowth', 'Persian', 'Aerodactyl', 'Mewtwo', 'Ursaring', 'Houndour', 'Houndoom', 'Tyranitar', 'Masquerain', 'Vespiquen', 'Axew', 'Fraxure', 'Haxorus', 'Bewear'],), - Ability(id: 128, name: 'defiant', description: 'Raises Attack two stages upon having any stat lowered.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Pawniard', 'Bisharp'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Mankey', 'Primeape', 'Farfetchd', 'Piplup', 'Prinplup', 'Empoleon', 'Purugly', 'Braviary', 'Tornadus-incarnate', 'Thundurus-incarnate', 'Passimian'],), - Ability(id: 129, name: 'defeatist', description: 'Halves Attack and Special Attack at 50% max HP or less.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Archen', 'Archeops'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 130, name: 'cursed-body', description: 'Has a 30% chance of Disabling any move that hits the Pokemon.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Gengar', 'Marowak-alola', 'Marowak-totem'], pokemonSecondAbility: ['Frillish', 'Jellicent'], pokemonHiddenAbility: ['Shuppet', 'Banette', 'Froslass'],), - Ability(id: 131, name: 'healer', description: 'Has a 30% chance of curing each adjacent ally of any major status ailment after each turn.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Audino', 'Alomomola', 'Spritzee', 'Aromatisse', 'Audino-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Chansey', 'Bellossom', 'Blissey'],), - Ability(id: 132, name: 'friend-guard', description: 'Decreases all direct damage taken by friendly Pokemon to 0.75x.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Clefairy', 'Jigglypuff', 'Cleffa', 'Igglybuff', 'Happiny', 'Scatterbug', 'Spewpa', 'Vivillon'],), - Ability(id: 133, name: 'weak-armor', description: 'Raises Speed and lowers Defense by one stage each upon being hit by a physical move.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: ['Roggenrola', 'Boldore', 'Garbodor'], pokemonHiddenAbility: ['Onix', 'Omanyte', 'Omastar', 'Kabuto', 'Kabutops', 'Slugma', 'Magcargo', 'Skarmory', 'Dwebble', 'Crustle', 'Vanillite', 'Vanillish', 'Vanilluxe', 'Vullaby', 'Mandibuzz'],), - Ability(id: 134, name: 'heavy-metal', description: 'Doubles the Pokemon\'s weight.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Aron', 'Lairon', 'Aggron', 'Bronzor', 'Bronzong'],), - Ability(id: 135, name: 'light-metal', description: 'Halves the Pokemon\'s weight.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Scizor', 'Beldum', 'Metang', 'Metagross', 'Registeel'],), - Ability(id: 136, name: 'multiscale', description: 'Halves damage taken from full HP.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Dragonite', 'Lugia'],), - Ability(id: 137, name: 'toxic-boost', description: 'Increases Attack to 1.5x when poisoned.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Zangoose'],), - Ability(id: 138, name: 'flare-boost', description: 'Increases Special Attack to 1.5x when burned.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Drifloon', 'Drifblim'],), - Ability(id: 139, name: 'harvest', description: 'Has a 50% chance of restoring a used Berry after each turn if the Pokemon has held no items in the meantime.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Exeggcute', 'Exeggutor', 'Tropius', 'Phantump', 'Trevenant', 'Exeggutor-alola'],), - Ability(id: 140, name: 'telepathy', description: 'Protects against friendly Pokemon\'s damaging moves.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Elgyem', 'Beheeyem'], pokemonSecondAbility: ['Oranguru'], pokemonHiddenAbility: ['Wobbuffet', 'Ralts', 'Kirlia', 'Gardevoir', 'Meditite', 'Medicham', 'Wynaut', 'Dialga', 'Palkia', 'Giratina-altered', 'Munna', 'Musharna', 'Noibat', 'Noivern', 'Tapu-koko', 'Tapu-lele', 'Tapu-bulu', 'Tapu-fini'],), - Ability(id: 141, name: 'moody', description: 'Raises a random stat two stages and lowers another one stage after each turn.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Remoraid', 'Octillery', 'Smeargle', 'Snorunt', 'Glalie', 'Bidoof', 'Bibarel'],), - Ability(id: 142, name: 'overcoat', description: 'Protects against damage from weather.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Solosis', 'Duosion', 'Reuniclus'], pokemonSecondAbility: ['Vullaby', 'Mandibuzz'], pokemonHiddenAbility: ['Shellder', 'Cloyster', 'Pineco', 'Forretress', 'Shelgon', 'Burmy', 'Wormadam-plant', 'Sewaddle', 'Swadloon', 'Leavanny', 'Escavalier', 'Shelmet', 'Jangmo-o', 'Hakamo-o', 'Kommo-o', 'Wormadam-sandy', 'Wormadam-trash', 'Kommo-o-totem'],), - Ability(id: 143, name: 'poison-touch', description: 'Has a 30% chance of poisoning target Pokemon upon contact.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Grimer-alola', 'Muk-alola'], pokemonSecondAbility: ['Seismitoad', 'Skrelp', 'Dragalge'], pokemonHiddenAbility: ['Grimer', 'Muk', 'Croagunk', 'Toxicroak'],), - Ability(id: 144, name: 'regenerator', description: 'Heals for 1/3 max HP upon switching out.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Tornadus-therian'], pokemonSecondAbility: ['Audino', 'Mienfoo', 'Mienshao'], pokemonHiddenAbility: ['Slowpoke', 'Slowbro', 'Tangela', 'Slowking', 'Corsola', 'Ho-oh', 'Tangrowth', 'Solosis', 'Duosion', 'Reuniclus', 'Foongus', 'Amoonguss', 'Alomomola', 'Mareanie', 'Toxapex'],), - Ability(id: 145, name: 'big-pecks', description: 'Protects against Defense drops.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Pidove', 'Tranquill', 'Unfezant', 'Vullaby', 'Mandibuzz', 'Fletchling'], pokemonSecondAbility: ['Ducklett', 'Swanna'], pokemonHiddenAbility: ['Pidgey', 'Pidgeotto', 'Pidgeot', 'Chatot'],), - Ability(id: 146, name: 'sand-rush', description: 'Doubles Speed during a sandstorm. Protects against sandstorm damage.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Drilbur', 'Excadrill'], pokemonSecondAbility: ['Herdier', 'Stoutland', 'Lycanroc-midday'], pokemonHiddenAbility: ['Sandshrew', 'Sandslash'],), - Ability(id: 147, name: 'wonder-skin', description: 'Lowers incoming non-damaging moves\' base accuracy to exactly 50%.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Sigilyph'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Venomoth', 'Skitty', 'Delcatty', 'Bruxish'],), - Ability(id: 148, name: 'analytic', description: 'Strengthens moves to 1.3x their power when moving last.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Magnemite', 'Magneton', 'Staryu', 'Starmie', 'Porygon', 'Porygon2', 'Magnezone', 'Porygon-z', 'Patrat', 'Watchog', 'Elgyem', 'Beheeyem'],), - Ability(id: 149, name: 'illusion', description: 'Takes the appearance of the last conscious party Pokemon upon being sent out until hit by a damaging move.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Zorua', 'Zoroark'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 150, name: 'imposter', description: 'Transforms upon entering battle.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Ditto'],), - Ability(id: 151, name: 'infiltrator', description: 'Bypasses light screen, reflect, and safeguard.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: ['Cottonee', 'Whimsicott', 'Espurr', 'Meowstic-male', 'Noibat', 'Noivern', 'Meowstic-female'], pokemonHiddenAbility: ['Zubat', 'Golbat', 'Crobat', 'Hoppip', 'Skiploom', 'Jumpluff', 'Ninjask', 'Seviper', 'Spiritomb', 'Litwick', 'Lampent', 'Chandelure', 'Inkay', 'Malamar'],), - Ability(id: 152, name: 'mummy', description: 'Changes attacking Pokemon\'s abilities to Mummy on contact.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Yamask', 'Cofagrigus'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 153, name: 'moxie', description: 'Raises Attack one stage upon KOing a Pokemon.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: ['Sandile', 'Krokorok', 'Krookodile', 'Scraggy', 'Scrafty'], pokemonHiddenAbility: ['Pinsir', 'Gyarados', 'Heracross', 'Mightyena', 'Salamence', 'Honchkrow', 'Litleo', 'Pyroar'],), - Ability(id: 154, name: 'justified', description: 'Raises Attack one stage upon taking damage from a dark move.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Cobalion', 'Terrakion', 'Virizion', 'Keldeo-ordinary', 'Keldeo-resolute'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Growlithe', 'Arcanine', 'Absol', 'Lucario', 'Gallade'],), - Ability(id: 155, name: 'rattled', description: 'Raises Speed one stage upon being hit by a dark, ghost, or bug move.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Magikarp', 'Ledyba', 'Sudowoodo', 'Dunsparce', 'Snubbull', 'Granbull', 'Poochyena', 'Whismur', 'Clamperl', 'Bonsly', 'Cubchoo', 'Meowth-alola', 'Persian-alola'],), - Ability(id: 156, name: 'magic-bounce', description: 'Reflects most non-damaging moves back at their user.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Absol-mega', 'Sableye-mega', 'Diancie-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Natu', 'Xatu', 'Espeon'],), - Ability(id: 157, name: 'sap-sipper', description: 'Absorbs grass moves, raising Attack one stage.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Skiddo', 'Gogoat', 'Goomy', 'Sliggoo', 'Goodra'], pokemonSecondAbility: ['Deerling', 'Sawsbuck', 'Bouffalant', 'Drampa'], pokemonHiddenAbility: ['Marill', 'Azumarill', 'Girafarig', 'Stantler', 'Miltank', 'Azurill', 'Blitzle', 'Zebstrika'],), - Ability(id: 158, name: 'prankster', description: 'Raises non-damaging moves\' priority by one stage.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Cottonee', 'Whimsicott', 'Tornadus-incarnate', 'Thundurus-incarnate', 'Klefki', 'Banette-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Murkrow', 'Sableye', 'Volbeat', 'Illumise', 'Riolu', 'Purrloin', 'Liepard', 'Meowstic-male'],), - Ability(id: 159, name: 'sand-force', description: 'Strengthens rock, ground, and steel moves to 1.3x their power during a sandstorm. Protects against sandstorm damage.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Landorus-incarnate', 'Garchomp-mega', 'Steelix-mega'], pokemonSecondAbility: ['Drilbur', 'Excadrill'], pokemonHiddenAbility: ['Diglett', 'Dugtrio', 'Nosepass', 'Shellos', 'Gastrodon', 'Hippopotas', 'Hippowdon', 'Probopass', 'Roggenrola', 'Boldore', 'Gigalith', 'Diglett-alola', 'Dugtrio-alola'],), - Ability(id: 160, name: 'iron-barbs', description: 'Damages attacking Pokemon for 1/8 their max HP on contact.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Ferroseed', 'Ferrothorn', 'Togedemaru', 'Togedemaru-totem'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 161, name: 'zen-mode', description: 'Changes darmanitan\'s form after each turn depending on its HP: Zen Mode below 50% max HP, and Standard Mode otherwise.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Darmanitan-standard', 'Darmanitan-zen'],), - Ability(id: 162, name: 'victory-star', description: 'Increases moves\' accuracy to 1.1x for friendly Pokemon.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Victini'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 163, name: 'turboblaze', description: 'Bypasses targets\' abilities if they could hinder or prevent moves.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Reshiram', 'Kyurem-white'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 164, name: 'teravolt', description: 'Bypasses targets\' abilities if they could hinder or prevent moves.', longDescription: '', generationIntroduced: 5, pokemonFirstAbility: ['Zekrom', 'Kyurem-black'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 165, name: 'aroma-veil', description: 'Protects allies against moves that affect their mental state.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Spritzee', 'Aromatisse'],), - Ability(id: 166, name: 'flower-veil', description: 'Protects friendly grass Pokemon from having their stats lowered by other Pokemon.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Flabebe', 'Floette', 'Florges', 'Comfey', 'Floette-eternal'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 167, name: 'cheek-pouch', description: 'Restores HP upon eating a Berry, in addition to the Berry\'s effect.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Dedenne'], pokemonSecondAbility: ['Bunnelby', 'Diggersby'], pokemonHiddenAbility: [],), - Ability(id: 168, name: 'protean', description: 'Changes the bearer\'s type to match each move it uses.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Kecleon', 'Froakie', 'Frogadier', 'Greninja'],), - Ability(id: 169, name: 'fur-coat', description: 'Halves damage from physical attacks.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Furfrou', 'Persian-alola'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 170, name: 'magician', description: 'Steals the target\'s held item when the bearer uses a damaging move.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Hoopa', 'Hoopa-unbound'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Fennekin', 'Braixen', 'Delphox', 'Klefki'],), - Ability(id: 171, name: 'bulletproof', description: 'Protects against bullet, ball, and bomb-based moves.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Jangmo-o', 'Hakamo-o', 'Kommo-o', 'Kommo-o-totem'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Chespin', 'Quilladin', 'Chesnaught'],), - Ability(id: 172, name: 'competitive', description: 'Raises Special Attack by two stages upon having any stat lowered.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: [], pokemonSecondAbility: ['Jigglypuff', 'Wigglytuff', 'Igglybuff', 'Milotic', 'Gothita', 'Gothorita', 'Gothitelle'], pokemonHiddenAbility: ['Meowstic-female'],), - Ability(id: 173, name: 'strong-jaw', description: 'Strengthens biting moves to 1.5x their power.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Tyrunt', 'Tyrantrum', 'Sharpedo-mega'], pokemonSecondAbility: ['Yungoos', 'Gumshoos', 'Bruxish', 'Gumshoos-totem'], pokemonHiddenAbility: [],), - Ability(id: 174, name: 'refrigerate', description: 'Turns the bearer\'s normal moves into ice moves and strengthens them to 1.3x their power.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Amaura', 'Aurorus', 'Glalie-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 175, name: 'sweet-veil', description: 'Prevents friendly Pokemon from sleeping.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Swirlix', 'Slurpuff'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Cutiefly', 'Ribombee', 'Bounsweet', 'Steenee', 'Tsareena', 'Ribombee-totem'],), - Ability(id: 176, name: 'stance-change', description: 'Changes aegislash to Blade Forme before using a damaging move, or Shield Forme before using kings shield.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Aegislash-shield', 'Aegislash-blade'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 177, name: 'gale-wings', description: 'Raises flying moves\' priority by one stage.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Fletchling', 'Fletchinder', 'Talonflame'],), - Ability(id: 178, name: 'mega-launcher', description: 'Strengthens aura and pulse moves to 1.5x their power.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Clauncher', 'Clawitzer', 'Blastoise-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 179, name: 'grass-pelt', description: 'Boosts Defense while grassy terrain is in effect.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Skiddo', 'Gogoat'],), - Ability(id: 180, name: 'symbiosis', description: 'Passes the bearer\'s held item to an ally when the ally uses up its item.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Flabebe', 'Floette', 'Florges', 'Oranguru', 'Floette-eternal'],), - Ability(id: 181, name: 'tough-claws', description: 'Strengthens moves that make contact to 1.33x their power.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Binacle', 'Barbaracle', 'Charizard-mega-x', 'Aerodactyl-mega', 'Metagross-mega', 'Lycanroc-dusk'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 182, name: 'pixilate', description: 'Turns the bearer\'s normal moves into fairy moves and strengthens them to 1.3x their power.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Gardevoir-mega', 'Altaria-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: ['Sylveon'],), - Ability(id: 183, name: 'gooey', description: 'Lowers attacking Pokemon\'s Speed by one stage on contact.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Goomy', 'Sliggoo', 'Goodra'],), - Ability(id: 184, name: 'aerilate', description: 'Turns the bearer\'s normal moves into flying moves and strengthens them to 1.3x their power.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Pinsir-mega', 'Salamence-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 185, name: 'parental-bond', description: 'Lets the bearer hit twice with damaging moves. The second hit has half power.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Kangaskhan-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 186, name: 'dark-aura', description: 'Strengthens dark moves to 1.33x their power for all friendly and opposing Pokemon.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Yveltal'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 187, name: 'fairy-aura', description: 'Strengthens fairy moves to 1.33x their power for all friendly and opposing Pokemon.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Xerneas'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 188, name: 'aura-break', description: 'Makes dark aura and fairy aura weaken moves of their respective types.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Zygarde'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 189, name: 'primordial-sea', description: 'Creates heavy rain, which has all the properties of Rain Dance, cannot be replaced, and causes damaging Fire moves to fail.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Kyogre-primal'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 190, name: 'desolate-land', description: 'Creates extremely harsh sunlight, which has all the properties of Sunny Day, cannot be replaced, and causes damaging Water moves to fail.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Groudon-primal'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 191, name: 'delta-stream', description: 'Creates a mysterious air current, which cannot be replaced and causes moves to never be super effective against Flying Pokemon.', longDescription: '', generationIntroduced: 6, pokemonFirstAbility: ['Rayquaza-mega'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 192, name: 'stamina', description: 'Raises this Pokemon\'s Defense by one stage when it takes damage from a move.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: [], pokemonSecondAbility: ['Mudbray', 'Mudsdale'], pokemonHiddenAbility: [],), - Ability(id: 193, name: 'wimp-out', description: 'This Pokemon automatically switches out when its HP drops below half.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Wimpod'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 194, name: 'emergency-exit', description: 'This Pokemon automatically switches out when its HP drops below half.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Golisopod'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 195, name: 'water-compaction', description: 'Raises this Pokemon\'s Defense by two stages when it\'s hit by a Water move.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Sandygast', 'Palossand'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 196, name: 'merciless', description: 'This Pokemon\'s moves critical hit against poisoned targets.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Mareanie', 'Toxapex'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 197, name: 'shields-down', description: 'Transforms this Minior between Core Form and Meteor Form. Prevents major status ailments and drowsiness while in Meteor Form.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Minior-red-meteor', 'Minior-orange-meteor', 'Minior-yellow-meteor', 'Minior-green-meteor', 'Minior-blue-meteor', 'Minior-indigo-meteor', 'Minior-violet-meteor', 'Minior-red', 'Minior-orange', 'Minior-yellow', 'Minior-green', 'Minior-blue', 'Minior-indigo', 'Minior-violet'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 198, name: 'stakeout', description: 'This Pokemon\'s moves have double power against Pokemon that switched in this turn.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Yungoos', 'Gumshoos', 'Gumshoos-totem'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 199, name: 'water-bubble', description: 'Halves damage from Fire moves, doubles damage of Water moves, and prevents burns.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Dewpider', 'Araquanid', 'Araquanid-totem'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 200, name: 'steelworker', description: 'This Pokemon\'s Steel moves have 1.5x power.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Dhelmise'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 201, name: 'berserk', description: 'Raises this Pokemon\'s Special Attack by one stage every time its HP drops below half.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Drampa'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 202, name: 'slush-rush', description: 'During Hail, this Pokemon has double Speed.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: [], pokemonSecondAbility: ['Cubchoo', 'Beartic'], pokemonHiddenAbility: ['Sandshrew-alola', 'Sandslash-alola'],), - Ability(id: 203, name: 'long-reach', description: 'This Pokemon\'s moves do not make contact.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Rowlet', 'Dartrix', 'Decidueye'],), - Ability(id: 204, name: 'liquid-voice', description: 'Sound-based moves become Water-type.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Popplio', 'Brionne', 'Primarina'],), - Ability(id: 205, name: 'triage', description: 'This Pokemon\'s healing moves have their priority increased by 3.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: [], pokemonSecondAbility: ['Comfey'], pokemonHiddenAbility: [],), - Ability(id: 206, name: 'galvanize', description: 'This Pokemon\'s Normal moves are Electric and have their power increased to 1.2x.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Geodude-alola', 'Graveler-alola', 'Golem-alola'],), - Ability(id: 207, name: 'surge-surfer', description: 'Doubles this Pokemon\'s Speed on Electric Terrain.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Raichu-alola'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 208, name: 'schooling', description: 'Wishiwashi becomes Schooling Form when its HP is 25% or higher.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Wishiwashi-solo', 'Wishiwashi-school'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 209, name: 'disguise', description: 'Prevents the first instance of battle damage.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Mimikyu-disguised', 'Mimikyu-busted', 'Mimikyu-totem-disguised', 'Mimikyu-totem-busted'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 210, name: 'battle-bond', description: 'Transforms this Pokemon into Ash-Greninja after fainting an opponent. Water Shuriken\'s power is 20 and always hits three times.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Greninja-battle-bond', 'Greninja-ash'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 211, name: 'power-construct', description: 'Transforms 10% or 50% Zygarde into Complete Forme when its HP is below 50%.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Zygarde-10', 'Zygarde-50', 'Zygarde-complete'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 212, name: 'corrosion', description: 'This Pokemon can inflict poison on Poison and Steel Pokemon.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Salandit', 'Salazzle', 'Salazzle-totem'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 213, name: 'comatose', description: 'This Pokemon always acts as though it were Asleep.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Komala'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 214, name: 'queenly-majesty', description: 'Opposing Pokemon cannot use priority attacks.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: [], pokemonSecondAbility: ['Tsareena'], pokemonHiddenAbility: [],), - Ability(id: 215, name: 'innards-out', description: 'When this Pokemon faints from an opponent\'s move, that opponent takes damage equal to the HP this Pokemon had remaining.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Pyukumuku'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 216, name: 'dancer', description: 'Whenever another Pokemon uses a dance move, this Pokemon will use the same move immediately afterwards.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Oricorio-baile', 'Oricorio-pom-pom', 'Oricorio-pau', 'Oricorio-sensu'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 217, name: 'battery', description: 'Ally Pokemon\'s moves have their power increased to 1.3x.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Charjabug'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 218, name: 'fluffy', description: 'Damage from contact moves is halved. Damage from Fire moves is doubled.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Stufful', 'Bewear'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 219, name: 'dazzling', description: 'Opposing Pokemon cannot use priority attacks.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Bruxish'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 220, name: 'soul-heart', description: 'This Pokemon\'s Special Attack rises by one stage every time any Pokemon faints.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Magearna', 'Magearna-original'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 221, name: 'tangling-hair', description: 'When this Pokemon takes regular damage from a contact move, the attacking Pokemon\'s Speed lowers by one stage.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: [], pokemonSecondAbility: ['Diglett-alola', 'Dugtrio-alola'], pokemonHiddenAbility: [],), - Ability(id: 222, name: 'receiver', description: 'When an ally faints, this Pokemon gains its Ability.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Passimian'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 223, name: 'power-of-alchemy', description: 'When an ally faints, this Pokemon gains its Ability.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: [], pokemonSecondAbility: [], pokemonHiddenAbility: ['Grimer-alola', 'Muk-alola'],), - Ability(id: 224, name: 'beast-boost', description: 'Raises this Pokemon\'s highest stat by one stage when it faints another Pokemon.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Nihilego', 'Buzzwole', 'Pheromosa', 'Xurkitree', 'Celesteela', 'Kartana', 'Guzzlord', 'Poipole', 'Naganadel', 'Stakataka', 'Blacephalon'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 225, name: 'rks-system', description: 'Changes this Pokemon\'s type to match its held Memory.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Silvally'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 226, name: 'electric-surge', description: 'When this Pokemon enters battle, it changes the terrain to Electric Terrain.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Tapu-koko'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 227, name: 'psychic-surge', description: 'When this Pokemon enters battle, it changes the terrain to Psychic Terrain.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Tapu-lele'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 228, name: 'misty-surge', description: 'When this Pokemon enters battle, it changes the terrain to Misty Terrain.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Tapu-fini'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 229, name: 'grassy-surge', description: 'When this Pokemon enters battle, it changes the terrain to Grassy Terrain.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Tapu-bulu'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 230, name: 'full-metal-body', description: 'Other Pokemon cannot lower this Pokemon\'s stats.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Solgaleo'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 231, name: 'shadow-shield', description: 'When this Pokemon has full HP, regular damage from moves is halved.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Lunala'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 232, name: 'prism-armor', description: 'Reduces super-effective damage to 0.75x.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Necrozma', 'Necrozma-dusk', 'Necrozma-dawn'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - Ability(id: 233, name: 'neuroforce', description: 'Powers up moves that are super effective.', longDescription: '', generationIntroduced: 7, pokemonFirstAbility: ['Necrozma-ultra'], pokemonSecondAbility: [], pokemonHiddenAbility: [],), - + Ability( + id: 1, + name: 'stench', + description: + 'Has a 10% chance of making target Pokemon flinch with each hit.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Grimer', + 'Muk', + 'Stunky', + 'Skuntank', + 'Trubbish', + 'Garbodor' + ], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Gloom'], + ), + Ability( + id: 2, + name: 'drizzle', + description: 'Summons rain that lasts indefinitely upon entering battle.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Kyogre'], + pokemonSecondAbility: ['Pelipper'], + pokemonHiddenAbility: ['Politoed'], + ), + Ability( + id: 3, + name: 'speed-boost', + description: 'Raises Speed one stage after each turn.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Yanma', 'Ninjask', 'Yanmega', 'Blaziken-mega'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [ + 'Torchic', + 'Combusken', + 'Blaziken', + 'Carvanha', + 'Sharpedo', + 'Venipede', + 'Whirlipede', + 'Scolipede' + ], + ), + Ability( + id: 4, + name: 'battle-armor', + description: 'Protects against critical hits.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Anorith', + 'Armaldo', + 'Skorupi', + 'Drapion', + 'Type-null' + ], + pokemonSecondAbility: ['Kabuto', 'Kabutops'], + pokemonHiddenAbility: ['Cubone', 'Marowak'], + ), + Ability( + id: 5, + name: 'sturdy', + description: + 'Prevents being KOed from full HP, leaving 1 HP instead. Protects against the one-hit KO moves regardless of HP.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Sudowoodo', + 'Pineco', + 'Forretress', + 'Shuckle', + 'Donphan', + 'Nosepass', + 'Aron', + 'Lairon', + 'Aggron', + 'Shieldon', + 'Bastiodon', + 'Bonsly', + 'Probopass', + 'Roggenrola', + 'Boldore', + 'Gigalith', + 'Sawk', + 'Dwebble', + 'Crustle', + 'Cosmoem' + ], + pokemonSecondAbility: [ + 'Geodude', + 'Graveler', + 'Golem', + 'Magnemite', + 'Magneton', + 'Onix', + 'Steelix', + 'Skarmory', + 'Magnezone', + 'Tirtouga', + 'Carracosta', + 'Geodude-alola', + 'Graveler-alola', + 'Golem-alola' + ], + pokemonHiddenAbility: [ + 'Relicanth', + 'Regirock', + 'Tyrunt', + 'Carbink', + 'Bergmite', + 'Avalugg', + 'Togedemaru', + 'Togedemaru-totem' + ], + ), + Ability( + id: 6, + name: 'damp', + description: + 'Prevents self destruct, explosion, and aftermath from working while the Pokemon is in battle.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Psyduck', 'Golduck', 'Wooper', 'Quagsire'], + pokemonSecondAbility: ['Poliwag', 'Poliwhirl', 'Poliwrath', 'Politoed'], + pokemonHiddenAbility: [ + 'Paras', + 'Parasect', + 'Horsea', + 'Seadra', + 'Kingdra', + 'Mudkip', + 'Marshtomp', + 'Swampert', + 'Frillish', + 'Jellicent' + ], + ), + Ability( + id: 7, + name: 'limber', + description: 'Prevents paralysis.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Persian', + 'Hitmonlee', + 'Ditto', + 'Glameow', + 'Purrloin', + 'Liepard', + 'Hawlucha' + ], + pokemonSecondAbility: ['Stunfisk', 'Mareanie', 'Toxapex'], + pokemonHiddenAbility: ['Buneary', 'Lopunny'], + ), + Ability( + id: 8, + name: 'sand-veil', + description: + 'Increases evasion to 1.25x during a sandstorm. Protects against sandstorm damage.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Sandshrew', + 'Sandslash', + 'Diglett', + 'Dugtrio', + 'Cacnea', + 'Cacturne', + 'Gible', + 'Gabite', + 'Garchomp', + 'Diglett-alola', + 'Dugtrio-alola' + ], + pokemonSecondAbility: ['Gligar', 'Gliscor', 'Helioptile', 'Heliolisk'], + pokemonHiddenAbility: [ + 'Geodude', + 'Graveler', + 'Golem', + 'Phanpy', + 'Donphan', + 'Larvitar', + 'Stunfisk', + 'Sandygast', + 'Palossand' + ], + ), + Ability( + id: 9, + name: 'static', + description: 'Has a 30% chance of paralyzing attacking Pokemon on contact.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Pikachu', + 'Raichu', + 'Electabuzz', + 'Pichu', + 'Mareep', + 'Flaaffy', + 'Ampharos', + 'Elekid', + 'Electrike', + 'Manectric', + 'Emolga', + 'Stunfisk', + 'Pikachu-rock-star', + 'Pikachu-belle', + 'Pikachu-pop-star', + 'Pikachu-phd', + 'Pikachu-libre', + 'Pikachu-cosplay', + 'Pikachu-original-cap', + 'Pikachu-hoenn-cap', + 'Pikachu-sinnoh-cap', + 'Pikachu-unova-cap', + 'Pikachu-kalos-cap', + 'Pikachu-alola-cap', + 'Pikachu-partner-cap' + ], + pokemonSecondAbility: ['Voltorb', 'Electrode'], + pokemonHiddenAbility: ['Zapdos'], + ), + Ability( + id: 10, + name: 'volt-absorb', + description: 'Absorbs electric moves, healing for 1/4 max HP.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Jolteon', + 'Chinchou', + 'Lanturn', + 'Zeraora', + 'Thundurus-therian' + ], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Minun', 'Pachirisu'], + ), + Ability( + id: 11, + name: 'water-absorb', + description: 'Absorbs water moves, healing for 1/4 max HP.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Poliwag', + 'Poliwhirl', + 'Poliwrath', + 'Lapras', + 'Vaporeon', + 'Politoed', + 'Maractus', + 'Frillish', + 'Jellicent', + 'Volcanion' + ], + pokemonSecondAbility: ['Wooper', 'Quagsire', 'Mantine', 'Mantyke'], + pokemonHiddenAbility: [ + 'Chinchou', + 'Lanturn', + 'Cacnea', + 'Cacturne', + 'Tympole', + 'Palpitoad', + 'Seismitoad', + 'Dewpider', + 'Araquanid', + 'Araquanid-totem' + ], + ), + Ability( + id: 12, + name: 'oblivious', + description: 'Prevents infatuation and protects against captivate.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Slowpoke', + 'Slowbro', + 'Jynx', + 'Slowking', + 'Swinub', + 'Piloswine', + 'Smoochum', + 'Illumise', + 'Numel', + 'Barboach', + 'Whiscash', + 'Mamoswine' + ], + pokemonSecondAbility: [ + 'Lickitung', + 'Wailmer', + 'Wailord', + 'Feebas', + 'Lickilicky', + 'Bounsweet', + 'Steenee' + ], + pokemonHiddenAbility: [ + 'Spheal', + 'Sealeo', + 'Walrein', + 'Salandit', + 'Salazzle', + 'Salazzle-totem' + ], + ), + Ability( + id: 13, + name: 'cloud-nine', + description: + 'Negates all effects of weather, but does not prevent the weather itself.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [], + pokemonSecondAbility: ['Psyduck', 'Golduck'], + pokemonHiddenAbility: [ + 'Lickitung', + 'Swablu', + 'Altaria', + 'Lickilicky', + 'Drampa' + ], + ), + Ability( + id: 14, + name: 'compound-eyes', + description: 'Increases moves accuracy to 1.3x.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Butterfree', + 'Venonat', + 'Nincada', + 'Joltik', + 'Galvantula' + ], + pokemonSecondAbility: ['Yanma', 'Scatterbug', 'Vivillon'], + pokemonHiddenAbility: ['Dustox'], + ), + Ability( + id: 15, + name: 'insomnia', + description: 'Prevents sleep.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Drowzee', + 'Hypno', + 'Hoothoot', + 'Noctowl', + 'Murkrow', + 'Shuppet', + 'Banette', + 'Honchkrow', + 'Mewtwo-mega-y' + ], + pokemonSecondAbility: ['Spinarak', 'Ariados'], + pokemonHiddenAbility: [ + 'Delibird', + 'Pumpkaboo-average', + 'Gourgeist-average', + 'Pumpkaboo-small', + 'Pumpkaboo-large', + 'Pumpkaboo-super', + 'Gourgeist-small', + 'Gourgeist-large', + 'Gourgeist-super' + ], + ), + Ability( + id: 16, + name: 'color-change', + description: 'Changes type to match when hit by a damaging move.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Kecleon'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 17, + name: 'immunity', + description: 'Prevents poison.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Snorlax', 'Zangoose'], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Gligar'], + ), + Ability( + id: 18, + name: 'flash-fire', + description: + 'Protects against fire moves. Once one has been blocked, the Pokemon\'s own Fire moves inflict 1.5x damage until it leaves battle.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Vulpix', + 'Ninetales', + 'Flareon', + 'Heatran', + 'Litwick', + 'Lampent', + 'Chandelure' + ], + pokemonSecondAbility: [ + 'Growlithe', + 'Arcanine', + 'Ponyta', + 'Rapidash', + 'Houndour', + 'Houndoom', + 'Heatmor' + ], + pokemonHiddenAbility: ['Cyndaquil', 'Quilava', 'Typhlosion'], + ), + Ability( + id: 19, + name: 'shield-dust', + description: 'Protects against incoming moves\' extra effects.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Caterpie', + 'Weedle', + 'Venomoth', + 'Wurmple', + 'Dustox', + 'Scatterbug', + 'Vivillon' + ], + pokemonSecondAbility: ['Cutiefly', 'Ribombee', 'Ribombee-totem'], + pokemonHiddenAbility: [], + ), + Ability( + id: 20, + name: 'own-tempo', + description: 'Prevents confusion.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Lickitung', + 'Smeargle', + 'Spinda', + 'Lickilicky', + 'Bergmite', + 'Avalugg', + 'Mudbray', + 'Mudsdale', + 'Rockruff-own-tempo' + ], + pokemonSecondAbility: [ + 'Slowpoke', + 'Slowbro', + 'Slowking', + 'Spoink', + 'Grumpig', + 'Glameow', + 'Purugly', + 'Petilil', + 'Lilligant' + ], + pokemonHiddenAbility: ['Lotad', 'Lombre', 'Ludicolo', 'Numel', 'Espurr'], + ), + Ability( + id: 21, + name: 'suction-cups', + description: + 'Prevents being forced out of battle by other Pokemon\'s moves.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Octillery', 'Lileep', 'Cradily'], + pokemonSecondAbility: ['Inkay', 'Malamar'], + pokemonHiddenAbility: [], + ), + Ability( + id: 22, + name: 'intimidate', + description: 'Lowers opponents\' Attack one stage upon entering battle.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Ekans', + 'Arbok', + 'Growlithe', + 'Arcanine', + 'Tauros', + 'Gyarados', + 'Snubbull', + 'Granbull', + 'Stantler', + 'Hitmontop', + 'Mightyena', + 'Masquerain', + 'Salamence', + 'Staravia', + 'Staraptor', + 'Herdier', + 'Stoutland', + 'Sandile', + 'Krokorok', + 'Krookodile', + 'Landorus-therian', + 'Manectric-mega' + ], + pokemonSecondAbility: ['Mawile', 'Shinx', 'Luxio', 'Luxray'], + pokemonHiddenAbility: [ + 'Qwilfish', + 'Scraggy', + 'Scrafty', + 'Litten', + 'Torracat', + 'Incineroar' + ], + ), + Ability( + id: 23, + name: 'shadow-tag', + description: 'Prevents opponents from fleeing or switching out.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Wobbuffet', 'Wynaut', 'Gengar-mega'], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Gothita', 'Gothorita', 'Gothitelle'], + ), + Ability( + id: 24, + name: 'rough-skin', + description: 'Damages attacking Pokemon for 1/8 their max HP on contact.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Carvanha', 'Sharpedo', 'Druddigon'], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Gible', 'Gabite', 'Garchomp'], + ), + Ability( + id: 25, + name: 'wonder-guard', + description: + 'Protects against damaging moves that are not super effective.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Shedinja'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 26, + name: 'levitate', + description: 'Evades ground moves.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Gastly', + 'Haunter', + 'Koffing', + 'Weezing', + 'Misdreavus', + 'Unown', + 'Vibrava', + 'Flygon', + 'Lunatone', + 'Solrock', + 'Baltoy', + 'Claydol', + 'Duskull', + 'Chimecho', + 'Latias', + 'Latios', + 'Mismagius', + 'Chingling', + 'Bronzor', + 'Bronzong', + 'Carnivine', + 'Rotom', + 'Uxie', + 'Mesprit', + 'Azelf', + 'Cresselia', + 'Tynamo', + 'Eelektrik', + 'Eelektross', + 'Cryogonal', + 'Hydreigon', + 'Vikavolt', + 'Giratina-origin', + 'Rotom-heat', + 'Rotom-wash', + 'Rotom-frost', + 'Rotom-fan', + 'Rotom-mow', + 'Latias-mega', + 'Latios-mega', + 'Vikavolt-totem' + ], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 27, + name: 'effect-spore', + description: + 'Has a 30% chance of inflcting either paralysis, poison, or sleep on attacking Pokemon on contact.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Paras', + 'Parasect', + 'Shroomish', + 'Breloom', + 'Foongus', + 'Amoonguss' + ], + pokemonSecondAbility: ['Morelull', 'Shiinotic'], + pokemonHiddenAbility: ['Vileplume'], + ), + Ability( + id: 28, + name: 'synchronize', + description: + 'Copies burns, paralysis, and poison received onto the Pokemon that inflicted them.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Abra', + 'Kadabra', + 'Alakazam', + 'Mew', + 'Natu', + 'Xatu', + 'Espeon', + 'Umbreon', + 'Ralts', + 'Kirlia', + 'Gardevoir' + ], + pokemonSecondAbility: ['Munna', 'Musharna', 'Elgyem', 'Beheeyem'], + pokemonHiddenAbility: [], + ), + Ability( + id: 29, + name: 'clear-body', + description: 'Prevents stats from being lowered by other Pokemon.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Tentacool', + 'Tentacruel', + 'Beldum', + 'Metang', + 'Metagross', + 'Regirock', + 'Regice', + 'Registeel', + 'Carbink', + 'Diancie' + ], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Klink', 'Klang', 'Klinklang'], + ), + Ability( + id: 30, + name: 'natural-cure', + description: 'Cures any major status ailment upon switching out.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Chansey', + 'Blissey', + 'Celebi', + 'Roselia', + 'Swablu', + 'Altaria', + 'Budew', + 'Roserade', + 'Happiny', + 'Shaymin-land', + 'Phantump', + 'Trevenant' + ], + pokemonSecondAbility: ['Staryu', 'Starmie', 'Corsola'], + pokemonHiddenAbility: ['Comfey'], + ), + Ability( + id: 31, + name: 'lightning-rod', + description: + 'Redirects single-target electric moves to this Pokemon where possible. Absorbs Electric moves, raising Special Attack one stage.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Rhyhorn', + 'Rhydon', + 'Rhyperior', + 'Blitzle', + 'Zebstrika', + 'Sceptile-mega' + ], + pokemonSecondAbility: [ + 'Cubone', + 'Marowak', + 'Electrike', + 'Manectric', + 'Togedemaru', + 'Marowak-alola', + 'Marowak-totem', + 'Togedemaru-totem' + ], + pokemonHiddenAbility: [ + 'Pikachu', + 'Raichu', + 'Goldeen', + 'Seaking', + 'Pichu', + 'Plusle', + 'Pikachu-rock-star', + 'Pikachu-belle', + 'Pikachu-pop-star', + 'Pikachu-phd', + 'Pikachu-libre', + 'Pikachu-cosplay', + 'Pikachu-original-cap', + 'Pikachu-hoenn-cap', + 'Pikachu-sinnoh-cap', + 'Pikachu-unova-cap', + 'Pikachu-kalos-cap', + 'Pikachu-alola-cap', + 'Pikachu-partner-cap' + ], + ), + Ability( + id: 32, + name: 'serene-grace', + description: 'Doubles the chance of moves\' extra effects occurring.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Dunsparce', + 'Jirachi', + 'Meloetta-aria', + 'Shaymin-sky', + 'Meloetta-pirouette' + ], + pokemonSecondAbility: [ + 'Chansey', + 'Togepi', + 'Togetic', + 'Blissey', + 'Happiny', + 'Togekiss' + ], + pokemonHiddenAbility: ['Deerling', 'Sawsbuck'], + ), + Ability( + id: 33, + name: 'swift-swim', + description: 'Doubles Speed during rain.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Horsea', + 'Goldeen', + 'Seaking', + 'Magikarp', + 'Omanyte', + 'Omastar', + 'Kabuto', + 'Kabutops', + 'Mantine', + 'Kingdra', + 'Lotad', + 'Lombre', + 'Ludicolo', + 'Surskit', + 'Feebas', + 'Huntail', + 'Gorebyss', + 'Relicanth', + 'Luvdisc', + 'Buizel', + 'Floatzel', + 'Finneon', + 'Lumineon', + 'Mantyke', + 'Tympole', + 'Palpitoad', + 'Seismitoad', + 'Swampert-mega' + ], + pokemonSecondAbility: ['Qwilfish'], + pokemonHiddenAbility: [ + 'Psyduck', + 'Golduck', + 'Poliwag', + 'Poliwhirl', + 'Poliwrath', + 'Anorith', + 'Armaldo', + 'Tirtouga', + 'Carracosta', + 'Beartic' + ], + ), + Ability( + id: 34, + name: 'chlorophyll', + description: 'Doubles Speed during strong sunlight.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Oddish', + 'Gloom', + 'Vileplume', + 'Bellsprout', + 'Weepinbell', + 'Victreebel', + 'Exeggcute', + 'Exeggutor', + 'Tangela', + 'Bellossom', + 'Hoppip', + 'Skiploom', + 'Jumpluff', + 'Sunkern', + 'Sunflora', + 'Seedot', + 'Nuzleaf', + 'Shiftry', + 'Tropius', + 'Cherubi', + 'Tangrowth', + 'Petilil', + 'Lilligant', + 'Deerling', + 'Sawsbuck' + ], + pokemonSecondAbility: ['Sewaddle', 'Swadloon', 'Leavanny', 'Maractus'], + pokemonHiddenAbility: [ + 'Bulbasaur', + 'Ivysaur', + 'Venusaur', + 'Leafeon', + 'Cottonee', + 'Whimsicott' + ], + ), + Ability( + id: 35, + name: 'illuminate', + description: 'Doubles the wild encounter rate.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Staryu', + 'Starmie', + 'Volbeat', + 'Watchog', + 'Morelull', + 'Shiinotic' + ], + pokemonSecondAbility: ['Chinchou', 'Lanturn'], + pokemonHiddenAbility: [], + ), + Ability( + id: 36, + name: 'trace', + description: 'Copies an opponent\'s ability upon entering battle.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Porygon', 'Porygon2', 'Alakazam-mega'], + pokemonSecondAbility: ['Ralts', 'Kirlia', 'Gardevoir'], + pokemonHiddenAbility: [], + ), + Ability( + id: 37, + name: 'huge-power', + description: 'Doubles Attack in battle.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Mawile-mega'], + pokemonSecondAbility: ['Marill', 'Azumarill', 'Azurill'], + pokemonHiddenAbility: ['Bunnelby', 'Diggersby'], + ), + Ability( + id: 38, + name: 'poison-point', + description: 'Has a 30% chance of poisoning attacking Pokemon on contact.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Nidoran-f', + 'Nidorina', + 'Nidoqueen', + 'Nidoran-m', + 'Nidorino', + 'Nidoking', + 'Seadra', + 'Qwilfish', + 'Venipede', + 'Whirlipede', + 'Scolipede', + 'Skrelp', + 'Dragalge' + ], + pokemonSecondAbility: ['Roselia', 'Budew', 'Roserade'], + pokemonHiddenAbility: [], + ), + Ability( + id: 39, + name: 'inner-focus', + description: 'Prevents flinching.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Zubat', + 'Golbat', + 'Dragonite', + 'Crobat', + 'Girafarig', + 'Sneasel', + 'Snorunt', + 'Glalie', + 'Mienfoo', + 'Mienshao', + 'Oranguru', + 'Gallade-mega' + ], + pokemonSecondAbility: [ + 'Abra', + 'Kadabra', + 'Alakazam', + 'Farfetchd', + 'Riolu', + 'Lucario', + 'Throh', + 'Sawk', + 'Pawniard', + 'Bisharp' + ], + pokemonHiddenAbility: [ + 'Drowzee', + 'Hypno', + 'Hitmonchan', + 'Kangaskhan', + 'Umbreon', + 'Raikou', + 'Entei', + 'Suicune', + 'Darumaka', + 'Mudbray', + 'Mudsdale' + ], + ), + Ability( + id: 40, + name: 'magma-armor', + description: 'Prevents freezing.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Slugma', 'Magcargo', 'Camerupt'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 41, + name: 'water-veil', + description: 'Prevents burns.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Wailmer', 'Wailord'], + pokemonSecondAbility: ['Goldeen', 'Seaking'], + pokemonHiddenAbility: [ + 'Mantine', + 'Huntail', + 'Buizel', + 'Floatzel', + 'Finneon', + 'Lumineon', + 'Mantyke' + ], + ), + Ability( + id: 42, + name: 'magnet-pull', + description: 'Prevents steel opponents from fleeing or switching out.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Magnemite', + 'Magneton', + 'Magnezone', + 'Geodude-alola', + 'Graveler-alola', + 'Golem-alola' + ], + pokemonSecondAbility: ['Nosepass', 'Probopass'], + pokemonHiddenAbility: [], + ), + Ability( + id: 43, + name: 'soundproof', + description: 'Protects against sound-based moves.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Voltorb', + 'Electrode', + 'Mr-mime', + 'Whismur', + 'Loudred', + 'Exploud', + 'Mime-jr' + ], + pokemonSecondAbility: ['Jangmo-o', 'Hakamo-o', 'Kommo-o', 'Kommo-o-totem'], + pokemonHiddenAbility: [ + 'Shieldon', + 'Bastiodon', + 'Snover', + 'Abomasnow', + 'Bouffalant' + ], + ), + Ability( + id: 44, + name: 'rain-dish', + description: 'Heals for 1/16 max HP after each turn during rain.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [], + pokemonSecondAbility: ['Lotad', 'Lombre', 'Ludicolo'], + pokemonHiddenAbility: [ + 'Squirtle', + 'Wartortle', + 'Blastoise', + 'Tentacool', + 'Tentacruel', + 'Wingull', + 'Pelipper', + 'Surskit', + 'Morelull', + 'Shiinotic' + ], + ), + Ability( + id: 45, + name: 'sand-stream', + description: + 'Summons a sandstorm that lasts indefinitely upon entering battle.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Tyranitar', + 'Hippopotas', + 'Hippowdon', + 'Tyranitar-mega' + ], + pokemonSecondAbility: ['Gigalith'], + pokemonHiddenAbility: [], + ), + Ability( + id: 46, + name: 'pressure', + description: + 'Increases the PP cost of moves targetting the Pokemon by one.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Articuno', + 'Zapdos', + 'Moltres', + 'Mewtwo', + 'Raikou', + 'Entei', + 'Suicune', + 'Lugia', + 'Ho-oh', + 'Dusclops', + 'Absol', + 'Deoxys-normal', + 'Vespiquen', + 'Spiritomb', + 'Weavile', + 'Dusknoir', + 'Dialga', + 'Palkia', + 'Giratina-altered', + 'Kyurem', + 'Deoxys-attack', + 'Deoxys-defense', + 'Deoxys-speed' + ], + pokemonSecondAbility: ['Aerodactyl'], + pokemonHiddenAbility: ['Wailmer', 'Wailord', 'Pawniard', 'Bisharp'], + ), + Ability( + id: 47, + name: 'thick-fat', + description: 'Halves damage from fire and ice moves.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Seel', + 'Dewgong', + 'Marill', + 'Azumarill', + 'Miltank', + 'Makuhita', + 'Hariyama', + 'Azurill', + 'Spoink', + 'Grumpig', + 'Spheal', + 'Sealeo', + 'Walrein', + 'Purugly', + 'Venusaur-mega' + ], + pokemonSecondAbility: ['Snorlax', 'Munchlax'], + pokemonHiddenAbility: [ + 'Swinub', + 'Piloswine', + 'Mamoswine', + 'Tepig', + 'Pignite', + 'Rattata-alola', + 'Raticate-alola', + 'Raticate-totem-alola' + ], + ), + Ability( + id: 48, + name: 'early-bird', + description: 'Makes sleep pass twice as quickly.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Kangaskhan', 'Houndour', 'Houndoom'], + pokemonSecondAbility: [ + 'Doduo', + 'Dodrio', + 'Ledyba', + 'Ledian', + 'Natu', + 'Xatu', + 'Girafarig', + 'Seedot', + 'Nuzleaf', + 'Shiftry' + ], + pokemonHiddenAbility: ['Sunkern', 'Sunflora'], + ), + Ability( + id: 49, + name: 'flame-body', + description: 'Has a 30% chance of burning attacking Pokemon on contact.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Magmar', + 'Magby', + 'Magmortar', + 'Larvesta', + 'Volcarona', + 'Fletchinder', + 'Talonflame' + ], + pokemonSecondAbility: [ + 'Slugma', + 'Magcargo', + 'Litwick', + 'Lampent', + 'Chandelure' + ], + pokemonHiddenAbility: ['Ponyta', 'Rapidash', 'Moltres', 'Heatran'], + ), + Ability( + id: 50, + name: 'run-away', + description: 'Ensures success fleeing from wild battles.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Rattata', + 'Raticate', + 'Ponyta', + 'Rapidash', + 'Doduo', + 'Dodrio', + 'Eevee', + 'Sentret', + 'Furret', + 'Aipom', + 'Poochyena', + 'Pachirisu', + 'Buneary', + 'Patrat' + ], + pokemonSecondAbility: ['Dunsparce', 'Snubbull'], + pokemonHiddenAbility: [ + 'Caterpie', + 'Weedle', + 'Oddish', + 'Venonat', + 'Wurmple', + 'Nincada', + 'Kricketot', + 'Lillipup' + ], + ), + Ability( + id: 51, + name: 'keen-eye', + description: 'Prevents accuracy from being lowered.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Pidgey', + 'Pidgeotto', + 'Pidgeot', + 'Spearow', + 'Fearow', + 'Farfetchd', + 'Hitmonchan', + 'Skarmory', + 'Wingull', + 'Pelipper', + 'Sableye', + 'Starly', + 'Chatot', + 'Ducklett', + 'Swanna', + 'Rufflet', + 'Braviary', + 'Espurr', + 'Meowstic-male', + 'Pikipek', + 'Trumbeak', + 'Toucannon', + 'Rockruff', + 'Lycanroc-midday', + 'Meowstic-female', + 'Lycanroc-midnight' + ], + pokemonSecondAbility: [ + 'Sentret', + 'Furret', + 'Hoothoot', + 'Noctowl', + 'Sneasel', + 'Patrat', + 'Watchog' + ], + pokemonHiddenAbility: [ + 'Glameow', + 'Stunky', + 'Skuntank', + 'Skorupi', + 'Drapion' + ], + ), + Ability( + id: 52, + name: 'hyper-cutter', + description: 'Prevents Attack from being lowered by other Pokemon.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Krabby', + 'Kingler', + 'Pinsir', + 'Gligar', + 'Mawile', + 'Trapinch', + 'Corphish', + 'Crawdaunt', + 'Gliscor', + 'Crabrawler', + 'Crabominable' + ], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 53, + name: 'pickup', + description: + 'Picks up other Pokemon\'s used and Flung held items. May also pick up an item after battle.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Meowth', + 'Teddiursa', + 'Phanpy', + 'Zigzagoon', + 'Linoone', + 'Munchlax', + 'Bunnelby', + 'Diggersby', + 'Pumpkaboo-average', + 'Gourgeist-average', + 'Pumpkaboo-small', + 'Pumpkaboo-large', + 'Pumpkaboo-super', + 'Gourgeist-small', + 'Gourgeist-large', + 'Gourgeist-super', + 'Meowth-alola' + ], + pokemonSecondAbility: [ + 'Aipom', + 'Pachirisu', + 'Ambipom', + 'Lillipup', + 'Dedenne' + ], + pokemonHiddenAbility: ['Pikipek', 'Trumbeak'], + ), + Ability( + id: 54, + name: 'truant', + description: 'Skips every second turn.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Slakoth', 'Slaking'], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Durant'], + ), + Ability( + id: 55, + name: 'hustle', + description: + 'Strengthens physical moves to inflict 1.5x damage, but decreases their accuracy to 0.8x.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Togepi', + 'Togetic', + 'Corsola', + 'Remoraid', + 'Togekiss', + 'Darumaka', + 'Deino', + 'Zweilous' + ], + pokemonSecondAbility: [ + 'Delibird', + 'Durant', + 'Rattata-alola', + 'Raticate-alola', + 'Raticate-totem-alola' + ], + pokemonHiddenAbility: [ + 'Rattata', + 'Raticate', + 'Nidoran-f', + 'Nidorina', + 'Nidoran-m', + 'Nidorino', + 'Combee', + 'Rufflet' + ], + ), + Ability( + id: 56, + name: 'cute-charm', + description: + 'Has a 30% chance of infatuating attacking Pokemon on contact.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Clefairy', + 'Clefable', + 'Jigglypuff', + 'Wigglytuff', + 'Cleffa', + 'Igglybuff', + 'Skitty', + 'Delcatty', + 'Lopunny', + 'Minccino', + 'Cinccino', + 'Sylveon' + ], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Milotic', 'Stufful'], + ), + Ability( + id: 57, + name: 'plus', + description: + 'Increases Special Attack to 1.5x when a friendly Pokemon has plus or minus.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Plusle', 'Klink', 'Klang', 'Klinklang'], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Mareep', 'Flaaffy', 'Ampharos', 'Dedenne'], + ), + Ability( + id: 58, + name: 'minus', + description: + 'Increases Special Attack to 1.5x when a friendly Pokemon has plus or minus.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Minun'], + pokemonSecondAbility: ['Klink', 'Klang', 'Klinklang'], + pokemonHiddenAbility: ['Electrike', 'Manectric'], + ), + Ability( + id: 59, + name: 'forecast', + description: 'Changes castform\'s type and form to match the weather.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Castform', + 'Castform-sunny', + 'Castform-rainy', + 'Castform-snowy' + ], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 60, + name: 'sticky-hold', + description: 'Prevents a held item from being removed by other Pokemon.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Shellos', 'Gastrodon'], + pokemonSecondAbility: [ + 'Grimer', + 'Muk', + 'Gulpin', + 'Swalot', + 'Trubbish', + 'Accelgor' + ], + pokemonHiddenAbility: [], + ), + Ability( + id: 61, + name: 'shed-skin', + description: + 'Has a 33% chance of curing any major status ailment after each turn.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Metapod', + 'Kakuna', + 'Dratini', + 'Dragonair', + 'Pupitar', + 'Silcoon', + 'Cascoon', + 'Seviper', + 'Kricketot', + 'Burmy', + 'Scraggy', + 'Scrafty', + 'Spewpa' + ], + pokemonSecondAbility: ['Ekans', 'Arbok', 'Karrablast'], + pokemonHiddenAbility: [], + ), + Ability( + id: 62, + name: 'guts', + description: 'Increases Attack to 1.5x with a major status ailment.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Machop', + 'Machoke', + 'Machamp', + 'Ursaring', + 'Tyrogue', + 'Larvitar', + 'Taillow', + 'Swellow', + 'Timburr', + 'Gurdurr', + 'Conkeldurr', + 'Throh' + ], + pokemonSecondAbility: [ + 'Rattata', + 'Raticate', + 'Heracross', + 'Makuhita', + 'Hariyama' + ], + pokemonHiddenAbility: ['Flareon', 'Shinx', 'Luxio', 'Luxray'], + ), + Ability( + id: 63, + name: 'marvel-scale', + description: 'Increases Defense to 1.5x with a major status ailment.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Milotic'], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Dratini', 'Dragonair'], + ), + Ability( + id: 64, + name: 'liquid-ooze', + description: + 'Damages opponents using leeching moves for as much as they would heal.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Gulpin', 'Swalot'], + pokemonSecondAbility: ['Tentacool', 'Tentacruel'], + pokemonHiddenAbility: [], + ), + Ability( + id: 65, + name: 'overgrow', + description: + 'Strengthens grass moves to inflict 1.5x damage at 1/3 max HP or less.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Bulbasaur', + 'Ivysaur', + 'Venusaur', + 'Chikorita', + 'Bayleef', + 'Meganium', + 'Treecko', + 'Grovyle', + 'Sceptile', + 'Turtwig', + 'Grotle', + 'Torterra', + 'Snivy', + 'Servine', + 'Serperior', + 'Chespin', + 'Quilladin', + 'Chesnaught', + 'Rowlet', + 'Dartrix', + 'Decidueye' + ], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Pansage', 'Simisage'], + ), + Ability( + id: 66, + name: 'blaze', + description: + 'Strengthens fire moves to inflict 1.5x damage at 1/3 max HP or less.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Charmander', + 'Charmeleon', + 'Charizard', + 'Cyndaquil', + 'Quilava', + 'Typhlosion', + 'Torchic', + 'Combusken', + 'Blaziken', + 'Chimchar', + 'Monferno', + 'Infernape', + 'Tepig', + 'Pignite', + 'Emboar', + 'Fennekin', + 'Braixen', + 'Delphox', + 'Litten', + 'Torracat', + 'Incineroar' + ], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Pansear', 'Simisear'], + ), + Ability( + id: 67, + name: 'torrent', + description: + 'Strengthens water moves to inflict 1.5x damage at 1/3 max HP or less.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Squirtle', + 'Wartortle', + 'Blastoise', + 'Totodile', + 'Croconaw', + 'Feraligatr', + 'Mudkip', + 'Marshtomp', + 'Swampert', + 'Piplup', + 'Prinplup', + 'Empoleon', + 'Oshawott', + 'Dewott', + 'Samurott', + 'Froakie', + 'Frogadier', + 'Greninja', + 'Popplio', + 'Brionne', + 'Primarina' + ], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Panpour', 'Simipour'], + ), + Ability( + id: 68, + name: 'swarm', + description: + 'Strengthens bug moves to inflict 1.5x damage at 1/3 max HP or less.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Beedrill', + 'Scyther', + 'Ledyba', + 'Ledian', + 'Spinarak', + 'Ariados', + 'Scizor', + 'Heracross', + 'Beautifly', + 'Kricketune', + 'Mothim', + 'Sewaddle', + 'Leavanny', + 'Karrablast', + 'Escavalier', + 'Durant', + 'Grubbin' + ], + pokemonSecondAbility: ['Volbeat', 'Venipede', 'Whirlipede', 'Scolipede'], + pokemonHiddenAbility: ['Joltik', 'Galvantula', 'Larvesta', 'Volcarona'], + ), + Ability( + id: 69, + name: 'rock-head', + description: 'Protects against recoil damage.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Geodude', + 'Graveler', + 'Golem', + 'Onix', + 'Cubone', + 'Marowak', + 'Aerodactyl', + 'Steelix', + 'Bagon', + 'Shelgon', + 'Basculin-blue-striped' + ], + pokemonSecondAbility: [ + 'Rhyhorn', + 'Rhydon', + 'Sudowoodo', + 'Aron', + 'Lairon', + 'Aggron', + 'Relicanth', + 'Bonsly' + ], + pokemonHiddenAbility: ['Tyrantrum', 'Marowak-alola', 'Marowak-totem'], + ), + Ability( + id: 70, + name: 'drought', + description: + 'Summons strong sunlight that lasts indefinitely upon entering battle.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Groudon', 'Charizard-mega-y'], + pokemonSecondAbility: ['Torkoal'], + pokemonHiddenAbility: ['Vulpix', 'Ninetales'], + ), + Ability( + id: 71, + name: 'arena-trap', + description: + 'Prevents opponents from fleeing or switching out. Eluded by flying-types and Pokemon in the air.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [], + pokemonSecondAbility: ['Diglett', 'Dugtrio', 'Trapinch'], + pokemonHiddenAbility: [], + ), + Ability( + id: 72, + name: 'vital-spirit', + description: 'Prevents sleep.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Mankey', + 'Primeape', + 'Delibird', + 'Vigoroth', + 'Lillipup' + ], + pokemonSecondAbility: ['Rockruff', 'Lycanroc-midnight'], + pokemonHiddenAbility: [ + 'Electabuzz', + 'Magmar', + 'Tyrogue', + 'Elekid', + 'Magby', + 'Electivire', + 'Magmortar' + ], + ), + Ability( + id: 73, + name: 'white-smoke', + description: 'Prevents stats from being lowered by other Pokemon.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Torkoal'], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Heatmor'], + ), + Ability( + id: 74, + name: 'pure-power', + description: 'Doubles Attack in battle.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Meditite', 'Medicham', 'Medicham-mega'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 75, + name: 'shell-armor', + description: 'Protects against critical hits.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: [ + 'Shellder', + 'Cloyster', + 'Clamperl', + 'Turtonator', + 'Slowbro-mega' + ], + pokemonSecondAbility: [ + 'Krabby', + 'Kingler', + 'Lapras', + 'Omanyte', + 'Omastar', + 'Corphish', + 'Crawdaunt', + 'Dwebble', + 'Crustle', + 'Escavalier', + 'Shelmet' + ], + pokemonHiddenAbility: [ + 'Torkoal', + 'Turtwig', + 'Grotle', + 'Torterra', + 'Oshawott', + 'Dewott', + 'Samurott' + ], + ), + Ability( + id: 76, + name: 'air-lock', + description: + 'Negates all effects of weather, but does not prevent the weather itself.', + longDescription: '', + generationIntroduced: 3, + pokemonFirstAbility: ['Rayquaza'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 77, + name: 'tangled-feet', + description: 'Doubles evasion when confused.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: [], + pokemonSecondAbility: [ + 'Pidgey', + 'Pidgeotto', + 'Pidgeot', + 'Spinda', + 'Chatot' + ], + pokemonHiddenAbility: ['Doduo', 'Dodrio'], + ), + Ability( + id: 78, + name: 'motor-drive', + description: 'Absorbs electric moves, raising Speed one stage.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Electivire'], + pokemonSecondAbility: ['Blitzle', 'Zebstrika'], + pokemonHiddenAbility: ['Emolga'], + ), + Ability( + id: 79, + name: 'rivalry', + description: + 'Increases damage inflicted to 1.25x against Pokemon of the same gender, but decreases damage to 0.75x against the opposite gender.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: [ + 'Shinx', + 'Luxio', + 'Luxray', + 'Axew', + 'Fraxure', + 'Haxorus', + 'Litleo', + 'Pyroar' + ], + pokemonSecondAbility: [ + 'Nidoran-f', + 'Nidorina', + 'Nidoqueen', + 'Nidoran-m', + 'Nidorino', + 'Nidoking' + ], + pokemonHiddenAbility: ['Beautifly', 'Pidove', 'Tranquill', 'Unfezant'], + ), + Ability( + id: 80, + name: 'steadfast', + description: 'Raises Speed one stage upon flinching.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Riolu', 'Lucario', 'Gallade', 'Mewtwo-mega-x'], + pokemonSecondAbility: ['Tyrogue'], + pokemonHiddenAbility: [ + 'Machop', + 'Machoke', + 'Machamp', + 'Scyther', + 'Hitmontop', + 'Rockruff', + 'Lycanroc-midday' + ], + ), + Ability( + id: 81, + name: 'snow-cloak', + description: + 'Increases evasion to 1.25x during hail. Protects against hail damage.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: [ + 'Glaceon', + 'Froslass', + 'Cubchoo', + 'Beartic', + 'Sandshrew-alola', + 'Sandslash-alola', + 'Vulpix-alola', + 'Ninetales-alola' + ], + pokemonSecondAbility: [ + 'Swinub', + 'Piloswine', + 'Mamoswine', + 'Vanillite', + 'Vanillish' + ], + pokemonHiddenAbility: ['Articuno'], + ), + Ability( + id: 82, + name: 'gluttony', + description: + 'Makes the Pokemon eat any held Berry triggered by low HP below 1/2 its max HP.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: [ + 'Pansage', + 'Simisage', + 'Pansear', + 'Simisear', + 'Panpour', + 'Simipour', + 'Heatmor', + 'Rattata-alola', + 'Raticate-alola', + 'Raticate-totem-alola' + ], + pokemonSecondAbility: [ + 'Shuckle', + 'Zigzagoon', + 'Linoone', + 'Grimer-alola', + 'Muk-alola' + ], + pokemonHiddenAbility: [ + 'Bellsprout', + 'Weepinbell', + 'Victreebel', + 'Snorlax', + 'Gulpin', + 'Swalot', + 'Spoink', + 'Grumpig', + 'Munchlax' + ], + ), + Ability( + id: 83, + name: 'anger-point', + description: + 'Raises Attack to the maximum of six stages upon receiving a critical hit.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: [], + pokemonSecondAbility: ['Mankey', 'Primeape', 'Tauros'], + pokemonHiddenAbility: [ + 'Camerupt', + 'Sandile', + 'Krokorok', + 'Krookodile', + 'Crabrawler', + 'Crabominable' + ], + ), + Ability( + id: 84, + name: 'unburden', + description: 'Doubles Speed upon using or losing a held item.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: [], + pokemonSecondAbility: [ + 'Drifloon', + 'Drifblim', + 'Purrloin', + 'Liepard', + 'Hawlucha' + ], + pokemonHiddenAbility: [ + 'Hitmonlee', + 'Treecko', + 'Grovyle', + 'Sceptile', + 'Accelgor', + 'Swirlix', + 'Slurpuff' + ], + ), + Ability( + id: 85, + name: 'heatproof', + description: 'Halves damage from fire moves and burns.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: [], + pokemonSecondAbility: ['Bronzor', 'Bronzong'], + pokemonHiddenAbility: [], + ), + Ability( + id: 86, + name: 'simple', + description: + 'Doubles the Pokemon\'s stat modifiers. These doubled modifiers are still capped at -6 or 6 stages.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Bidoof', 'Bibarel'], + pokemonSecondAbility: ['Numel'], + pokemonHiddenAbility: ['Woobat', 'Swoobat'], + ), + Ability( + id: 87, + name: 'dry-skin', + description: + 'Causes 1/8 max HP in damage each turn during strong sunlight, but heals for 1/8 max HP during rain. Increases damage from fire moves to 1.25x, but absorbs water moves, healing for 1/4 max HP.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Helioptile', 'Heliolisk'], + pokemonSecondAbility: ['Paras', 'Parasect', 'Croagunk', 'Toxicroak'], + pokemonHiddenAbility: ['Jynx'], + ), + Ability( + id: 88, + name: 'download', + description: + 'Raises the attack stat corresponding to the opponents\' weaker defense one stage upon entering battle.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Genesect'], + pokemonSecondAbility: ['Porygon', 'Porygon2', 'Porygon-z'], + pokemonHiddenAbility: [], + ), + Ability( + id: 89, + name: 'iron-fist', + description: 'Strengthens punch-based moves to 1.2x their power.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Golett', 'Golurk', 'Pancham', 'Pangoro'], + pokemonSecondAbility: ['Hitmonchan', 'Crabrawler', 'Crabominable'], + pokemonHiddenAbility: [ + 'Ledian', + 'Chimchar', + 'Monferno', + 'Infernape', + 'Timburr', + 'Gurdurr', + 'Conkeldurr' + ], + ), + Ability( + id: 90, + name: 'poison-heal', + description: + 'Heals for 1/8 max HP after each turn when poisoned in place of damage.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: [], + pokemonSecondAbility: ['Shroomish', 'Breloom'], + pokemonHiddenAbility: ['Gliscor'], + ), + Ability( + id: 91, + name: 'adaptability', + description: 'Increases the same-type attack bonus from 1.5x to 2x.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Porygon-z', 'Lucario-mega', 'Beedrill-mega'], + pokemonSecondAbility: [ + 'Eevee', + 'Basculin-red-striped', + 'Basculin-blue-striped' + ], + pokemonHiddenAbility: [ + 'Corphish', + 'Crawdaunt', + 'Feebas', + 'Skrelp', + 'Dragalge', + 'Yungoos', + 'Gumshoos', + 'Gumshoos-totem' + ], + ), + Ability( + id: 92, + name: 'skill-link', + description: + 'Extends two-to-five-hit moves and triple kick to their full length every time.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Heracross-mega'], + pokemonSecondAbility: [ + 'Shellder', + 'Cloyster', + 'Pikipek', + 'Trumbeak', + 'Toucannon' + ], + pokemonHiddenAbility: ['Aipom', 'Ambipom', 'Minccino', 'Cinccino'], + ), + Ability( + id: 93, + name: 'hydration', + description: 'Cures any major status ailment after each turn during rain.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Phione', 'Manaphy', 'Shelmet', 'Accelgor'], + pokemonSecondAbility: [ + 'Seel', + 'Dewgong', + 'Wingull', + 'Tympole', + 'Palpitoad', + 'Alomomola', + 'Goomy', + 'Sliggoo', + 'Goodra' + ], + pokemonHiddenAbility: [ + 'Lapras', + 'Vaporeon', + 'Smoochum', + 'Barboach', + 'Whiscash', + 'Gorebyss', + 'Luvdisc', + 'Ducklett', + 'Swanna' + ], + ), + Ability( + id: 94, + name: 'solar-power', + description: + 'Increases Special Attack to 1.5x but costs 1/8 max HP after each turn during strong sunlight.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Houndoom-mega'], + pokemonSecondAbility: ['Sunkern', 'Sunflora', 'Tropius'], + pokemonHiddenAbility: [ + 'Charmander', + 'Charmeleon', + 'Charizard', + 'Helioptile', + 'Heliolisk' + ], + ), + Ability( + id: 95, + name: 'quick-feet', + description: 'Increases Speed to 1.5x with a major status ailment.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: [], + pokemonSecondAbility: [ + 'Granbull', + 'Teddiursa', + 'Ursaring', + 'Poochyena', + 'Mightyena' + ], + pokemonHiddenAbility: ['Jolteon', 'Zigzagoon', 'Linoone', 'Shroomish'], + ), + Ability( + id: 96, + name: 'normalize', + description: 'Makes the Pokemon\'s moves all act normal-type.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: [], + pokemonSecondAbility: ['Skitty', 'Delcatty'], + pokemonHiddenAbility: [], + ), + Ability( + id: 97, + name: 'sniper', + description: + 'Strengthens critical hits to inflict 3x damage rather than 2x.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: [], + pokemonSecondAbility: [ + 'Horsea', + 'Seadra', + 'Remoraid', + 'Octillery', + 'Kingdra', + 'Skorupi', + 'Drapion', + 'Binacle', + 'Barbaracle' + ], + pokemonHiddenAbility: [ + 'Beedrill', + 'Spearow', + 'Fearow', + 'Spinarak', + 'Ariados' + ], + ), + Ability( + id: 98, + name: 'magic-guard', + description: 'Protects against damage not directly caused by a move.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: [], + pokemonSecondAbility: [ + 'Clefairy', + 'Clefable', + 'Cleffa', + 'Sigilyph', + 'Solosis', + 'Duosion', + 'Reuniclus' + ], + pokemonHiddenAbility: ['Abra', 'Kadabra', 'Alakazam'], + ), + Ability( + id: 99, + name: 'no-guard', + description: 'Ensures all moves used by and against the Pokemon hit.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Honedge', 'Doublade', 'Pidgeot-mega'], + pokemonSecondAbility: ['Machop', 'Machoke', 'Machamp'], + pokemonHiddenAbility: [ + 'Karrablast', + 'Golett', + 'Golurk', + 'Lycanroc-midnight' + ], + ), + Ability( + id: 100, + name: 'stall', + description: + 'Makes the Pokemon move last within its move\'s priority bracket.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: [], + pokemonSecondAbility: ['Sableye'], + pokemonHiddenAbility: [], + ), + Ability( + id: 101, + name: 'technician', + description: + 'Strengthens moves of 60 base power or less to 1.5x their power.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Ambipom', 'Marshadow', 'Scizor-mega'], + pokemonSecondAbility: [ + 'Meowth', + 'Persian', + 'Scyther', + 'Scizor', + 'Smeargle', + 'Hitmontop', + 'Minccino', + 'Cinccino', + 'Meowth-alola', + 'Persian-alola' + ], + pokemonHiddenAbility: [ + 'Mr-mime', + 'Breloom', + 'Kricketune', + 'Roserade', + 'Mime-jr' + ], + ), + Ability( + id: 102, + name: 'leaf-guard', + description: + 'Protects against major status ailments during strong sunlight.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: [ + 'Leafeon', + 'Swadloon', + 'Fomantis', + 'Lurantis', + 'Bounsweet', + 'Steenee', + 'Tsareena', + 'Lurantis-totem' + ], + pokemonSecondAbility: [ + 'Tangela', + 'Hoppip', + 'Skiploom', + 'Jumpluff', + 'Tangrowth' + ], + pokemonHiddenAbility: [ + 'Chikorita', + 'Bayleef', + 'Meganium', + 'Roselia', + 'Budew', + 'Petilil', + 'Lilligant' + ], + ), + Ability( + id: 103, + name: 'klutz', + description: 'Prevents the Pokemon from using its held item in battle.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: [], + pokemonSecondAbility: [ + 'Buneary', + 'Lopunny', + 'Woobat', + 'Swoobat', + 'Golett', + 'Golurk', + 'Stufful', + 'Bewear' + ], + pokemonHiddenAbility: ['Audino'], + ), + Ability( + id: 104, + name: 'mold-breaker', + description: + 'Bypasses targets\' abilities if they could hinder or prevent a move.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: [ + 'Cranidos', + 'Rampardos', + 'Gyarados-mega', + 'Ampharos-mega' + ], + pokemonSecondAbility: [ + 'Pinsir', + 'Axew', + 'Fraxure', + 'Haxorus', + 'Pancham', + 'Pangoro' + ], + pokemonHiddenAbility: [ + 'Drilbur', + 'Excadrill', + 'Throh', + 'Sawk', + 'Basculin-red-striped', + 'Druddigon', + 'Hawlucha', + 'Basculin-blue-striped' + ], + ), + Ability( + id: 105, + name: 'super-luck', + description: 'Raises moves\' critical hit rates one stage.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: [], + pokemonSecondAbility: [ + 'Murkrow', + 'Absol', + 'Honchkrow', + 'Pidove', + 'Tranquill', + 'Unfezant' + ], + pokemonHiddenAbility: ['Togepi', 'Togetic', 'Togekiss'], + ), + Ability( + id: 106, + name: 'aftermath', + description: + 'Damages the attacker for 1/4 its max HP when knocked out by a contact move.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Drifloon', 'Drifblim'], + pokemonSecondAbility: ['Stunky', 'Skuntank'], + pokemonHiddenAbility: ['Voltorb', 'Electrode', 'Trubbish', 'Garbodor'], + ), + Ability( + id: 107, + name: 'anticipation', + description: + 'Notifies all trainers upon entering battle if an opponent has a super-effective move, self destruct, explosion, or a one-hit KO move.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: [ + 'Wormadam-plant', + 'Croagunk', + 'Toxicroak', + 'Wormadam-sandy', + 'Wormadam-trash' + ], + pokemonSecondAbility: ['Barboach', 'Whiscash'], + pokemonHiddenAbility: ['Eevee', 'Ferrothorn'], + ), + Ability( + id: 108, + name: 'forewarn', + description: 'Reveals the opponents\' strongest move upon entering battle.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Munna', 'Musharna'], + pokemonSecondAbility: ['Drowzee', 'Hypno', 'Jynx', 'Smoochum'], + pokemonHiddenAbility: [], + ), + Ability( + id: 109, + name: 'unaware', + description: + 'Ignores other Pokemon\'s stat modifiers for damage and accuracy calculation.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Woobat', 'Swoobat', 'Cosmog'], + pokemonSecondAbility: ['Bidoof', 'Bibarel'], + pokemonHiddenAbility: ['Clefable', 'Wooper', 'Quagsire', 'Pyukumuku'], + ), + Ability( + id: 110, + name: 'tinted-lens', + description: 'Doubles damage inflicted with not-very-effective moves.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: [], + pokemonSecondAbility: ['Venonat', 'Venomoth', 'Illumise', 'Yanmega'], + pokemonHiddenAbility: [ + 'Butterfree', + 'Hoothoot', + 'Noctowl', + 'Mothim', + 'Sigilyph' + ], + ), + Ability( + id: 111, + name: 'filter', + description: 'Decreases damage taken from super-effective moves by 1/4.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Aggron-mega'], + pokemonSecondAbility: ['Mr-mime', 'Mime-jr'], + pokemonHiddenAbility: [], + ), + Ability( + id: 112, + name: 'slow-start', + description: 'Halves Attack and Speed for five turns upon entering battle.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Regigigas'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 113, + name: 'scrappy', + description: + 'Lets the Pokemon\'s normal and fighting moves hit ghost Pokemon.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Lopunny-mega'], + pokemonSecondAbility: ['Kangaskhan', 'Miltank'], + pokemonHiddenAbility: [ + 'Taillow', + 'Swellow', + 'Loudred', + 'Exploud', + 'Herdier', + 'Stoutland', + 'Pancham', + 'Pangoro' + ], + ), + Ability( + id: 114, + name: 'storm-drain', + description: + 'Redirects single-target water moves to this Pokemon where possible. Absorbs Water moves, raising Special Attack one stage.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: [], + pokemonSecondAbility: ['Shellos', 'Gastrodon', 'Finneon', 'Lumineon'], + pokemonHiddenAbility: ['Lileep', 'Cradily', 'Maractus'], + ), + Ability( + id: 115, + name: 'ice-body', + description: + 'Heals for 1/16 max HP after each turn during hail. Protects against hail damage.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Vanillite', 'Vanillish', 'Vanilluxe'], + pokemonSecondAbility: [ + 'Snorunt', + 'Glalie', + 'Spheal', + 'Sealeo', + 'Walrein', + 'Bergmite', + 'Avalugg' + ], + pokemonHiddenAbility: ['Seel', 'Dewgong', 'Regice', 'Glaceon'], + ), + Ability( + id: 116, + name: 'solid-rock', + description: 'Decreases damage taken from super-effective moves by 1/4.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Tirtouga', 'Carracosta'], + pokemonSecondAbility: ['Camerupt', 'Rhyperior'], + pokemonHiddenAbility: [], + ), + Ability( + id: 117, + name: 'snow-warning', + description: 'Summons hail that lasts indefinitely upon entering battle.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Snover', 'Abomasnow', 'Abomasnow-mega'], + pokemonSecondAbility: ['Vanilluxe'], + pokemonHiddenAbility: [ + 'Amaura', + 'Aurorus', + 'Vulpix-alola', + 'Ninetales-alola' + ], + ), + Ability( + id: 118, + name: 'honey-gather', + description: 'The Pokemon may pick up honey after battle.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Combee', 'Cutiefly', 'Ribombee', 'Ribombee-totem'], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Teddiursa'], + ), + Ability( + id: 119, + name: 'frisk', + description: 'Reveals an opponent\'s held item upon entering battle.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: [ + 'Gothita', + 'Gothorita', + 'Gothitelle', + 'Noibat', + 'Noivern', + 'Exeggutor-alola' + ], + pokemonSecondAbility: [ + 'Stantler', + 'Shuppet', + 'Banette', + 'Phantump', + 'Trevenant', + 'Pumpkaboo-average', + 'Gourgeist-average', + 'Pumpkaboo-small', + 'Pumpkaboo-large', + 'Pumpkaboo-super', + 'Gourgeist-small', + 'Gourgeist-large', + 'Gourgeist-super' + ], + pokemonHiddenAbility: [ + 'Wigglytuff', + 'Sentret', + 'Furret', + 'Yanma', + 'Duskull', + 'Dusclops', + 'Yanmega', + 'Dusknoir' + ], + ), + Ability( + id: 120, + name: 'reckless', + description: 'Strengthens recoil moves to 1.2x their power.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Basculin-red-striped', 'Bouffalant'], + pokemonSecondAbility: ['Hitmonlee'], + pokemonHiddenAbility: [ + 'Rhyhorn', + 'Rhydon', + 'Starly', + 'Staravia', + 'Staraptor', + 'Rhyperior', + 'Emboar', + 'Mienfoo', + 'Mienshao' + ], + ), + Ability( + id: 121, + name: 'multitype', + description: 'Changes arceus\'s type and form to match its held Plate.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Arceus'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 122, + name: 'flower-gift', + description: + 'Increases friendly Pokemon\'s Attack and Special Defense to 1.5x during strong sunlight.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Cherrim'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 123, + name: 'bad-dreams', + description: + 'Damages sleeping opponents for 1/8 their max HP after each turn.', + longDescription: '', + generationIntroduced: 4, + pokemonFirstAbility: ['Darkrai'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 124, + name: 'pickpocket', + description: 'Steals attacking Pokemon\'s held items on contact.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: [ + 'Sneasel', + 'Seedot', + 'Nuzleaf', + 'Shiftry', + 'Weavile', + 'Binacle', + 'Barbaracle' + ], + ), + Ability( + id: 125, + name: 'sheer-force', + description: + 'Strengthens moves with extra effects to 1.3x their power, but prevents their extra effects.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [ + 'Darmanitan-standard', + 'Darmanitan-zen', + 'Camerupt-mega' + ], + pokemonSecondAbility: [ + 'Timburr', + 'Gurdurr', + 'Conkeldurr', + 'Druddigon', + 'Rufflet', + 'Braviary' + ], + pokemonHiddenAbility: [ + 'Nidoqueen', + 'Nidoking', + 'Krabby', + 'Kingler', + 'Tauros', + 'Totodile', + 'Croconaw', + 'Feraligatr', + 'Steelix', + 'Makuhita', + 'Hariyama', + 'Mawile', + 'Trapinch', + 'Bagon', + 'Cranidos', + 'Rampardos', + 'Landorus-incarnate', + 'Toucannon' + ], + ), + Ability( + id: 126, + name: 'contrary', + description: 'Inverts stat changes.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: ['Inkay', 'Malamar'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [ + 'Shuckle', + 'Spinda', + 'Snivy', + 'Servine', + 'Serperior', + 'Fomantis', + 'Lurantis', + 'Lurantis-totem' + ], + ), + Ability( + id: 127, + name: 'unnerve', + description: 'Prevents opposing Pokemon from eating held Berries.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [], + pokemonSecondAbility: ['Joltik', 'Galvantula', 'Litleo', 'Pyroar'], + pokemonHiddenAbility: [ + 'Ekans', + 'Arbok', + 'Meowth', + 'Persian', + 'Aerodactyl', + 'Mewtwo', + 'Ursaring', + 'Houndour', + 'Houndoom', + 'Tyranitar', + 'Masquerain', + 'Vespiquen', + 'Axew', + 'Fraxure', + 'Haxorus', + 'Bewear' + ], + ), + Ability( + id: 128, + name: 'defiant', + description: 'Raises Attack two stages upon having any stat lowered.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: ['Pawniard', 'Bisharp'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [ + 'Mankey', + 'Primeape', + 'Farfetchd', + 'Piplup', + 'Prinplup', + 'Empoleon', + 'Purugly', + 'Braviary', + 'Tornadus-incarnate', + 'Thundurus-incarnate', + 'Passimian' + ], + ), + Ability( + id: 129, + name: 'defeatist', + description: 'Halves Attack and Special Attack at 50% max HP or less.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: ['Archen', 'Archeops'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 130, + name: 'cursed-body', + description: + 'Has a 30% chance of Disabling any move that hits the Pokemon.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: ['Gengar', 'Marowak-alola', 'Marowak-totem'], + pokemonSecondAbility: ['Frillish', 'Jellicent'], + pokemonHiddenAbility: ['Shuppet', 'Banette', 'Froslass'], + ), + Ability( + id: 131, + name: 'healer', + description: + 'Has a 30% chance of curing each adjacent ally of any major status ailment after each turn.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [ + 'Audino', + 'Alomomola', + 'Spritzee', + 'Aromatisse', + 'Audino-mega' + ], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Chansey', 'Bellossom', 'Blissey'], + ), + Ability( + id: 132, + name: 'friend-guard', + description: + 'Decreases all direct damage taken by friendly Pokemon to 0.75x.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: [ + 'Clefairy', + 'Jigglypuff', + 'Cleffa', + 'Igglybuff', + 'Happiny', + 'Scatterbug', + 'Spewpa', + 'Vivillon' + ], + ), + Ability( + id: 133, + name: 'weak-armor', + description: + 'Raises Speed and lowers Defense by one stage each upon being hit by a physical move.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [], + pokemonSecondAbility: ['Roggenrola', 'Boldore', 'Garbodor'], + pokemonHiddenAbility: [ + 'Onix', + 'Omanyte', + 'Omastar', + 'Kabuto', + 'Kabutops', + 'Slugma', + 'Magcargo', + 'Skarmory', + 'Dwebble', + 'Crustle', + 'Vanillite', + 'Vanillish', + 'Vanilluxe', + 'Vullaby', + 'Mandibuzz' + ], + ), + Ability( + id: 134, + name: 'heavy-metal', + description: 'Doubles the Pokemon\'s weight.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Aron', 'Lairon', 'Aggron', 'Bronzor', 'Bronzong'], + ), + Ability( + id: 135, + name: 'light-metal', + description: 'Halves the Pokemon\'s weight.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: [ + 'Scizor', + 'Beldum', + 'Metang', + 'Metagross', + 'Registeel' + ], + ), + Ability( + id: 136, + name: 'multiscale', + description: 'Halves damage taken from full HP.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Dragonite', 'Lugia'], + ), + Ability( + id: 137, + name: 'toxic-boost', + description: 'Increases Attack to 1.5x when poisoned.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Zangoose'], + ), + Ability( + id: 138, + name: 'flare-boost', + description: 'Increases Special Attack to 1.5x when burned.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Drifloon', 'Drifblim'], + ), + Ability( + id: 139, + name: 'harvest', + description: + 'Has a 50% chance of restoring a used Berry after each turn if the Pokemon has held no items in the meantime.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: [ + 'Exeggcute', + 'Exeggutor', + 'Tropius', + 'Phantump', + 'Trevenant', + 'Exeggutor-alola' + ], + ), + Ability( + id: 140, + name: 'telepathy', + description: 'Protects against friendly Pokemon\'s damaging moves.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: ['Elgyem', 'Beheeyem'], + pokemonSecondAbility: ['Oranguru'], + pokemonHiddenAbility: [ + 'Wobbuffet', + 'Ralts', + 'Kirlia', + 'Gardevoir', + 'Meditite', + 'Medicham', + 'Wynaut', + 'Dialga', + 'Palkia', + 'Giratina-altered', + 'Munna', + 'Musharna', + 'Noibat', + 'Noivern', + 'Tapu-koko', + 'Tapu-lele', + 'Tapu-bulu', + 'Tapu-fini' + ], + ), + Ability( + id: 141, + name: 'moody', + description: + 'Raises a random stat two stages and lowers another one stage after each turn.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: [ + 'Remoraid', + 'Octillery', + 'Smeargle', + 'Snorunt', + 'Glalie', + 'Bidoof', + 'Bibarel' + ], + ), + Ability( + id: 142, + name: 'overcoat', + description: 'Protects against damage from weather.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: ['Solosis', 'Duosion', 'Reuniclus'], + pokemonSecondAbility: ['Vullaby', 'Mandibuzz'], + pokemonHiddenAbility: [ + 'Shellder', + 'Cloyster', + 'Pineco', + 'Forretress', + 'Shelgon', + 'Burmy', + 'Wormadam-plant', + 'Sewaddle', + 'Swadloon', + 'Leavanny', + 'Escavalier', + 'Shelmet', + 'Jangmo-o', + 'Hakamo-o', + 'Kommo-o', + 'Wormadam-sandy', + 'Wormadam-trash', + 'Kommo-o-totem' + ], + ), + Ability( + id: 143, + name: 'poison-touch', + description: 'Has a 30% chance of poisoning target Pokemon upon contact.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: ['Grimer-alola', 'Muk-alola'], + pokemonSecondAbility: ['Seismitoad', 'Skrelp', 'Dragalge'], + pokemonHiddenAbility: ['Grimer', 'Muk', 'Croagunk', 'Toxicroak'], + ), + Ability( + id: 144, + name: 'regenerator', + description: 'Heals for 1/3 max HP upon switching out.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: ['Tornadus-therian'], + pokemonSecondAbility: ['Audino', 'Mienfoo', 'Mienshao'], + pokemonHiddenAbility: [ + 'Slowpoke', + 'Slowbro', + 'Tangela', + 'Slowking', + 'Corsola', + 'Ho-oh', + 'Tangrowth', + 'Solosis', + 'Duosion', + 'Reuniclus', + 'Foongus', + 'Amoonguss', + 'Alomomola', + 'Mareanie', + 'Toxapex' + ], + ), + Ability( + id: 145, + name: 'big-pecks', + description: 'Protects against Defense drops.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [ + 'Pidove', + 'Tranquill', + 'Unfezant', + 'Vullaby', + 'Mandibuzz', + 'Fletchling' + ], + pokemonSecondAbility: ['Ducklett', 'Swanna'], + pokemonHiddenAbility: ['Pidgey', 'Pidgeotto', 'Pidgeot', 'Chatot'], + ), + Ability( + id: 146, + name: 'sand-rush', + description: + 'Doubles Speed during a sandstorm. Protects against sandstorm damage.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: ['Drilbur', 'Excadrill'], + pokemonSecondAbility: ['Herdier', 'Stoutland', 'Lycanroc-midday'], + pokemonHiddenAbility: ['Sandshrew', 'Sandslash'], + ), + Ability( + id: 147, + name: 'wonder-skin', + description: + 'Lowers incoming non-damaging moves\' base accuracy to exactly 50%.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: ['Sigilyph'], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Venomoth', 'Skitty', 'Delcatty', 'Bruxish'], + ), + Ability( + id: 148, + name: 'analytic', + description: 'Strengthens moves to 1.3x their power when moving last.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: [ + 'Magnemite', + 'Magneton', + 'Staryu', + 'Starmie', + 'Porygon', + 'Porygon2', + 'Magnezone', + 'Porygon-z', + 'Patrat', + 'Watchog', + 'Elgyem', + 'Beheeyem' + ], + ), + Ability( + id: 149, + name: 'illusion', + description: + 'Takes the appearance of the last conscious party Pokemon upon being sent out until hit by a damaging move.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: ['Zorua', 'Zoroark'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 150, + name: 'imposter', + description: 'Transforms upon entering battle.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Ditto'], + ), + Ability( + id: 151, + name: 'infiltrator', + description: 'Bypasses light screen, reflect, and safeguard.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [], + pokemonSecondAbility: [ + 'Cottonee', + 'Whimsicott', + 'Espurr', + 'Meowstic-male', + 'Noibat', + 'Noivern', + 'Meowstic-female' + ], + pokemonHiddenAbility: [ + 'Zubat', + 'Golbat', + 'Crobat', + 'Hoppip', + 'Skiploom', + 'Jumpluff', + 'Ninjask', + 'Seviper', + 'Spiritomb', + 'Litwick', + 'Lampent', + 'Chandelure', + 'Inkay', + 'Malamar' + ], + ), + Ability( + id: 152, + name: 'mummy', + description: 'Changes attacking Pokemon\'s abilities to Mummy on contact.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: ['Yamask', 'Cofagrigus'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 153, + name: 'moxie', + description: 'Raises Attack one stage upon KOing a Pokemon.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [], + pokemonSecondAbility: [ + 'Sandile', + 'Krokorok', + 'Krookodile', + 'Scraggy', + 'Scrafty' + ], + pokemonHiddenAbility: [ + 'Pinsir', + 'Gyarados', + 'Heracross', + 'Mightyena', + 'Salamence', + 'Honchkrow', + 'Litleo', + 'Pyroar' + ], + ), + Ability( + id: 154, + name: 'justified', + description: 'Raises Attack one stage upon taking damage from a dark move.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [ + 'Cobalion', + 'Terrakion', + 'Virizion', + 'Keldeo-ordinary', + 'Keldeo-resolute' + ], + pokemonSecondAbility: [], + pokemonHiddenAbility: [ + 'Growlithe', + 'Arcanine', + 'Absol', + 'Lucario', + 'Gallade' + ], + ), + Ability( + id: 155, + name: 'rattled', + description: + 'Raises Speed one stage upon being hit by a dark, ghost, or bug move.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: [ + 'Magikarp', + 'Ledyba', + 'Sudowoodo', + 'Dunsparce', + 'Snubbull', + 'Granbull', + 'Poochyena', + 'Whismur', + 'Clamperl', + 'Bonsly', + 'Cubchoo', + 'Meowth-alola', + 'Persian-alola' + ], + ), + Ability( + id: 156, + name: 'magic-bounce', + description: 'Reflects most non-damaging moves back at their user.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: ['Absol-mega', 'Sableye-mega', 'Diancie-mega'], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Natu', 'Xatu', 'Espeon'], + ), + Ability( + id: 157, + name: 'sap-sipper', + description: 'Absorbs grass moves, raising Attack one stage.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: ['Skiddo', 'Gogoat', 'Goomy', 'Sliggoo', 'Goodra'], + pokemonSecondAbility: ['Deerling', 'Sawsbuck', 'Bouffalant', 'Drampa'], + pokemonHiddenAbility: [ + 'Marill', + 'Azumarill', + 'Girafarig', + 'Stantler', + 'Miltank', + 'Azurill', + 'Blitzle', + 'Zebstrika' + ], + ), + Ability( + id: 158, + name: 'prankster', + description: 'Raises non-damaging moves\' priority by one stage.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [ + 'Cottonee', + 'Whimsicott', + 'Tornadus-incarnate', + 'Thundurus-incarnate', + 'Klefki', + 'Banette-mega' + ], + pokemonSecondAbility: [], + pokemonHiddenAbility: [ + 'Murkrow', + 'Sableye', + 'Volbeat', + 'Illumise', + 'Riolu', + 'Purrloin', + 'Liepard', + 'Meowstic-male' + ], + ), + Ability( + id: 159, + name: 'sand-force', + description: + 'Strengthens rock, ground, and steel moves to 1.3x their power during a sandstorm. Protects against sandstorm damage.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [ + 'Landorus-incarnate', + 'Garchomp-mega', + 'Steelix-mega' + ], + pokemonSecondAbility: ['Drilbur', 'Excadrill'], + pokemonHiddenAbility: [ + 'Diglett', + 'Dugtrio', + 'Nosepass', + 'Shellos', + 'Gastrodon', + 'Hippopotas', + 'Hippowdon', + 'Probopass', + 'Roggenrola', + 'Boldore', + 'Gigalith', + 'Diglett-alola', + 'Dugtrio-alola' + ], + ), + Ability( + id: 160, + name: 'iron-barbs', + description: 'Damages attacking Pokemon for 1/8 their max HP on contact.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [ + 'Ferroseed', + 'Ferrothorn', + 'Togedemaru', + 'Togedemaru-totem' + ], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 161, + name: 'zen-mode', + description: + 'Changes darmanitan\'s form after each turn depending on its HP: Zen Mode below 50% max HP, and Standard Mode otherwise.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Darmanitan-standard', 'Darmanitan-zen'], + ), + Ability( + id: 162, + name: 'victory-star', + description: 'Increases moves\' accuracy to 1.1x for friendly Pokemon.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: ['Victini'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 163, + name: 'turboblaze', + description: + 'Bypasses targets\' abilities if they could hinder or prevent moves.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: ['Reshiram', 'Kyurem-white'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 164, + name: 'teravolt', + description: + 'Bypasses targets\' abilities if they could hinder or prevent moves.', + longDescription: '', + generationIntroduced: 5, + pokemonFirstAbility: ['Zekrom', 'Kyurem-black'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 165, + name: 'aroma-veil', + description: + 'Protects allies against moves that affect their mental state.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Spritzee', 'Aromatisse'], + ), + Ability( + id: 166, + name: 'flower-veil', + description: + 'Protects friendly grass Pokemon from having their stats lowered by other Pokemon.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: [ + 'Flabebe', + 'Floette', + 'Florges', + 'Comfey', + 'Floette-eternal' + ], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 167, + name: 'cheek-pouch', + description: + 'Restores HP upon eating a Berry, in addition to the Berry\'s effect.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: ['Dedenne'], + pokemonSecondAbility: ['Bunnelby', 'Diggersby'], + pokemonHiddenAbility: [], + ), + Ability( + id: 168, + name: 'protean', + description: 'Changes the bearer\'s type to match each move it uses.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Kecleon', 'Froakie', 'Frogadier', 'Greninja'], + ), + Ability( + id: 169, + name: 'fur-coat', + description: 'Halves damage from physical attacks.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: ['Furfrou', 'Persian-alola'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 170, + name: 'magician', + description: + 'Steals the target\'s held item when the bearer uses a damaging move.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: ['Hoopa', 'Hoopa-unbound'], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Fennekin', 'Braixen', 'Delphox', 'Klefki'], + ), + Ability( + id: 171, + name: 'bulletproof', + description: 'Protects against bullet, ball, and bomb-based moves.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: ['Jangmo-o', 'Hakamo-o', 'Kommo-o', 'Kommo-o-totem'], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Chespin', 'Quilladin', 'Chesnaught'], + ), + Ability( + id: 172, + name: 'competitive', + description: + 'Raises Special Attack by two stages upon having any stat lowered.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: [], + pokemonSecondAbility: [ + 'Jigglypuff', + 'Wigglytuff', + 'Igglybuff', + 'Milotic', + 'Gothita', + 'Gothorita', + 'Gothitelle' + ], + pokemonHiddenAbility: ['Meowstic-female'], + ), + Ability( + id: 173, + name: 'strong-jaw', + description: 'Strengthens biting moves to 1.5x their power.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: ['Tyrunt', 'Tyrantrum', 'Sharpedo-mega'], + pokemonSecondAbility: ['Yungoos', 'Gumshoos', 'Bruxish', 'Gumshoos-totem'], + pokemonHiddenAbility: [], + ), + Ability( + id: 174, + name: 'refrigerate', + description: + 'Turns the bearer\'s normal moves into ice moves and strengthens them to 1.3x their power.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: ['Amaura', 'Aurorus', 'Glalie-mega'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 175, + name: 'sweet-veil', + description: 'Prevents friendly Pokemon from sleeping.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: ['Swirlix', 'Slurpuff'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [ + 'Cutiefly', + 'Ribombee', + 'Bounsweet', + 'Steenee', + 'Tsareena', + 'Ribombee-totem' + ], + ), + Ability( + id: 176, + name: 'stance-change', + description: + 'Changes aegislash to Blade Forme before using a damaging move, or Shield Forme before using kings shield.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: ['Aegislash-shield', 'Aegislash-blade'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 177, + name: 'gale-wings', + description: 'Raises flying moves\' priority by one stage.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Fletchling', 'Fletchinder', 'Talonflame'], + ), + Ability( + id: 178, + name: 'mega-launcher', + description: 'Strengthens aura and pulse moves to 1.5x their power.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: ['Clauncher', 'Clawitzer', 'Blastoise-mega'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 179, + name: 'grass-pelt', + description: 'Boosts Defense while grassy terrain is in effect.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Skiddo', 'Gogoat'], + ), + Ability( + id: 180, + name: 'symbiosis', + description: + 'Passes the bearer\'s held item to an ally when the ally uses up its item.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: [ + 'Flabebe', + 'Floette', + 'Florges', + 'Oranguru', + 'Floette-eternal' + ], + ), + Ability( + id: 181, + name: 'tough-claws', + description: 'Strengthens moves that make contact to 1.33x their power.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: [ + 'Binacle', + 'Barbaracle', + 'Charizard-mega-x', + 'Aerodactyl-mega', + 'Metagross-mega', + 'Lycanroc-dusk' + ], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 182, + name: 'pixilate', + description: + 'Turns the bearer\'s normal moves into fairy moves and strengthens them to 1.3x their power.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: ['Gardevoir-mega', 'Altaria-mega'], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Sylveon'], + ), + Ability( + id: 183, + name: 'gooey', + description: 'Lowers attacking Pokemon\'s Speed by one stage on contact.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Goomy', 'Sliggoo', 'Goodra'], + ), + Ability( + id: 184, + name: 'aerilate', + description: + 'Turns the bearer\'s normal moves into flying moves and strengthens them to 1.3x their power.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: ['Pinsir-mega', 'Salamence-mega'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 185, + name: 'parental-bond', + description: + 'Lets the bearer hit twice with damaging moves. The second hit has half power.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: ['Kangaskhan-mega'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 186, + name: 'dark-aura', + description: + 'Strengthens dark moves to 1.33x their power for all friendly and opposing Pokemon.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: ['Yveltal'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 187, + name: 'fairy-aura', + description: + 'Strengthens fairy moves to 1.33x their power for all friendly and opposing Pokemon.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: ['Xerneas'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 188, + name: 'aura-break', + description: + 'Makes dark aura and fairy aura weaken moves of their respective types.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: ['Zygarde'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 189, + name: 'primordial-sea', + description: + 'Creates heavy rain, which has all the properties of Rain Dance, cannot be replaced, and causes damaging Fire moves to fail.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: ['Kyogre-primal'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 190, + name: 'desolate-land', + description: + 'Creates extremely harsh sunlight, which has all the properties of Sunny Day, cannot be replaced, and causes damaging Water moves to fail.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: ['Groudon-primal'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 191, + name: 'delta-stream', + description: + 'Creates a mysterious air current, which cannot be replaced and causes moves to never be super effective against Flying Pokemon.', + longDescription: '', + generationIntroduced: 6, + pokemonFirstAbility: ['Rayquaza-mega'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 192, + name: 'stamina', + description: + 'Raises this Pokemon\'s Defense by one stage when it takes damage from a move.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: [], + pokemonSecondAbility: ['Mudbray', 'Mudsdale'], + pokemonHiddenAbility: [], + ), + Ability( + id: 193, + name: 'wimp-out', + description: + 'This Pokemon automatically switches out when its HP drops below half.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Wimpod'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 194, + name: 'emergency-exit', + description: + 'This Pokemon automatically switches out when its HP drops below half.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Golisopod'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 195, + name: 'water-compaction', + description: + 'Raises this Pokemon\'s Defense by two stages when it\'s hit by a Water move.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Sandygast', 'Palossand'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 196, + name: 'merciless', + description: 'This Pokemon\'s moves critical hit against poisoned targets.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Mareanie', 'Toxapex'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 197, + name: 'shields-down', + description: + 'Transforms this Minior between Core Form and Meteor Form. Prevents major status ailments and drowsiness while in Meteor Form.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: [ + 'Minior-red-meteor', + 'Minior-orange-meteor', + 'Minior-yellow-meteor', + 'Minior-green-meteor', + 'Minior-blue-meteor', + 'Minior-indigo-meteor', + 'Minior-violet-meteor', + 'Minior-red', + 'Minior-orange', + 'Minior-yellow', + 'Minior-green', + 'Minior-blue', + 'Minior-indigo', + 'Minior-violet' + ], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 198, + name: 'stakeout', + description: + 'This Pokemon\'s moves have double power against Pokemon that switched in this turn.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Yungoos', 'Gumshoos', 'Gumshoos-totem'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 199, + name: 'water-bubble', + description: + 'Halves damage from Fire moves, doubles damage of Water moves, and prevents burns.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Dewpider', 'Araquanid', 'Araquanid-totem'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 200, + name: 'steelworker', + description: 'This Pokemon\'s Steel moves have 1.5x power.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Dhelmise'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 201, + name: 'berserk', + description: + 'Raises this Pokemon\'s Special Attack by one stage every time its HP drops below half.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Drampa'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 202, + name: 'slush-rush', + description: 'During Hail, this Pokemon has double Speed.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: [], + pokemonSecondAbility: ['Cubchoo', 'Beartic'], + pokemonHiddenAbility: ['Sandshrew-alola', 'Sandslash-alola'], + ), + Ability( + id: 203, + name: 'long-reach', + description: 'This Pokemon\'s moves do not make contact.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Rowlet', 'Dartrix', 'Decidueye'], + ), + Ability( + id: 204, + name: 'liquid-voice', + description: 'Sound-based moves become Water-type.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Popplio', 'Brionne', 'Primarina'], + ), + Ability( + id: 205, + name: 'triage', + description: + 'This Pokemon\'s healing moves have their priority increased by 3.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: [], + pokemonSecondAbility: ['Comfey'], + pokemonHiddenAbility: [], + ), + Ability( + id: 206, + name: 'galvanize', + description: + 'This Pokemon\'s Normal moves are Electric and have their power increased to 1.2x.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Geodude-alola', 'Graveler-alola', 'Golem-alola'], + ), + Ability( + id: 207, + name: 'surge-surfer', + description: 'Doubles this Pokemon\'s Speed on Electric Terrain.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Raichu-alola'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 208, + name: 'schooling', + description: + 'Wishiwashi becomes Schooling Form when its HP is 25% or higher.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Wishiwashi-solo', 'Wishiwashi-school'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 209, + name: 'disguise', + description: 'Prevents the first instance of battle damage.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: [ + 'Mimikyu-disguised', + 'Mimikyu-busted', + 'Mimikyu-totem-disguised', + 'Mimikyu-totem-busted' + ], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 210, + name: 'battle-bond', + description: + 'Transforms this Pokemon into Ash-Greninja after fainting an opponent. Water Shuriken\'s power is 20 and always hits three times.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Greninja-battle-bond', 'Greninja-ash'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 211, + name: 'power-construct', + description: + 'Transforms 10% or 50% Zygarde into Complete Forme when its HP is below 50%.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Zygarde-10', 'Zygarde-50', 'Zygarde-complete'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 212, + name: 'corrosion', + description: 'This Pokemon can inflict poison on Poison and Steel Pokemon.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Salandit', 'Salazzle', 'Salazzle-totem'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 213, + name: 'comatose', + description: 'This Pokemon always acts as though it were Asleep.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Komala'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 214, + name: 'queenly-majesty', + description: 'Opposing Pokemon cannot use priority attacks.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: [], + pokemonSecondAbility: ['Tsareena'], + pokemonHiddenAbility: [], + ), + Ability( + id: 215, + name: 'innards-out', + description: + 'When this Pokemon faints from an opponent\'s move, that opponent takes damage equal to the HP this Pokemon had remaining.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Pyukumuku'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 216, + name: 'dancer', + description: + 'Whenever another Pokemon uses a dance move, this Pokemon will use the same move immediately afterwards.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: [ + 'Oricorio-baile', + 'Oricorio-pom-pom', + 'Oricorio-pau', + 'Oricorio-sensu' + ], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 217, + name: 'battery', + description: 'Ally Pokemon\'s moves have their power increased to 1.3x.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Charjabug'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 218, + name: 'fluffy', + description: + 'Damage from contact moves is halved. Damage from Fire moves is doubled.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Stufful', 'Bewear'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 219, + name: 'dazzling', + description: 'Opposing Pokemon cannot use priority attacks.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Bruxish'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 220, + name: 'soul-heart', + description: + 'This Pokemon\'s Special Attack rises by one stage every time any Pokemon faints.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Magearna', 'Magearna-original'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 221, + name: 'tangling-hair', + description: + 'When this Pokemon takes regular damage from a contact move, the attacking Pokemon\'s Speed lowers by one stage.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: [], + pokemonSecondAbility: ['Diglett-alola', 'Dugtrio-alola'], + pokemonHiddenAbility: [], + ), + Ability( + id: 222, + name: 'receiver', + description: 'When an ally faints, this Pokemon gains its Ability.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Passimian'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 223, + name: 'power-of-alchemy', + description: 'When an ally faints, this Pokemon gains its Ability.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: [], + pokemonSecondAbility: [], + pokemonHiddenAbility: ['Grimer-alola', 'Muk-alola'], + ), + Ability( + id: 224, + name: 'beast-boost', + description: + 'Raises this Pokemon\'s highest stat by one stage when it faints another Pokemon.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: [ + 'Nihilego', + 'Buzzwole', + 'Pheromosa', + 'Xurkitree', + 'Celesteela', + 'Kartana', + 'Guzzlord', + 'Poipole', + 'Naganadel', + 'Stakataka', + 'Blacephalon' + ], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 225, + name: 'rks-system', + description: 'Changes this Pokemon\'s type to match its held Memory.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Silvally'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 226, + name: 'electric-surge', + description: + 'When this Pokemon enters battle, it changes the terrain to Electric Terrain.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Tapu-koko'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 227, + name: 'psychic-surge', + description: + 'When this Pokemon enters battle, it changes the terrain to Psychic Terrain.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Tapu-lele'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 228, + name: 'misty-surge', + description: + 'When this Pokemon enters battle, it changes the terrain to Misty Terrain.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Tapu-fini'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 229, + name: 'grassy-surge', + description: + 'When this Pokemon enters battle, it changes the terrain to Grassy Terrain.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Tapu-bulu'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 230, + name: 'full-metal-body', + description: 'Other Pokemon cannot lower this Pokemon\'s stats.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Solgaleo'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 231, + name: 'shadow-shield', + description: + 'When this Pokemon has full HP, regular damage from moves is halved.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Lunala'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 232, + name: 'prism-armor', + description: 'Reduces super-effective damage to 0.75x.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Necrozma', 'Necrozma-dusk', 'Necrozma-dawn'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), + Ability( + id: 233, + name: 'neuroforce', + description: 'Powers up moves that are super effective.', + longDescription: '', + generationIntroduced: 7, + pokemonFirstAbility: ['Necrozma-ultra'], + pokemonSecondAbility: [], + pokemonHiddenAbility: [], + ), ]; From de7d5f3a6ce634682247b0901a73b2641176bc8e Mon Sep 17 00:00:00 2001 From: Hung Pham Date: Tue, 14 Jul 2020 16:49:09 +0700 Subject: [PATCH 5/8] resolve #12 --- lib/screens/home/home.dart | 10 ++++++---- lib/screens/home/widgets/category_list.dart | 6 ++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/screens/home/home.dart b/lib/screens/home/home.dart index dd06f82..110f84d 100644 --- a/lib/screens/home/home.dart +++ b/lib/screens/home/home.dart @@ -7,7 +7,7 @@ import 'widgets/news_list.dart'; import 'widgets/search_bar.dart'; class Home extends StatefulWidget { - static const cardHeightFraction = 0.7; + static const cardHeightFraction = 0.75; @override _HomeState createState() => _HomeState(); @@ -52,13 +52,15 @@ class _HomeState extends State { } Widget _buildCard() { + final screenSize = MediaQuery.of(context).size; + return PokeContainer( decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.vertical(bottom: Radius.circular(30)), ), children: [ - SizedBox(height: 117), + SizedBox(height: screenSize.height * 0.144), Padding( padding: EdgeInsets.symmetric(horizontal: 28), child: Text( @@ -70,9 +72,9 @@ class _HomeState extends State { ), ), ), - SizedBox(height: 40), + SizedBox(height: screenSize.height * 0.049), SearchBar(), - SizedBox(height: 42), + SizedBox(height: screenSize.height * 0.051), CategoryList(), ], ); diff --git a/lib/screens/home/widgets/category_list.dart b/lib/screens/home/widgets/category_list.dart index 6bbe190..1f3aee5 100644 --- a/lib/screens/home/widgets/category_list.dart +++ b/lib/screens/home/widgets/category_list.dart @@ -6,16 +6,18 @@ import '../../../widgets/poke_category_card.dart'; class CategoryList extends StatelessWidget { @override Widget build(BuildContext context) { + final screenSize = MediaQuery.of(context).size; + return GridView.builder( physics: NeverScrollableScrollPhysics(), shrinkWrap: true, gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 2, - childAspectRatio: 2.44, + childAspectRatio: 2.58, crossAxisSpacing: 10, mainAxisSpacing: 12, ), - padding: EdgeInsets.only(left: 28, right: 28, bottom: 58), + padding: EdgeInsets.only(left: 28, right: 28, bottom: 30), itemCount: categories.length, itemBuilder: (context, index) => PokeCategoryCard( categories[index], From d1b0d6399419c4af2967872d27343e484442affe Mon Sep 17 00:00:00 2001 From: Hung Pham Date: Tue, 14 Jul 2020 18:01:55 +0700 Subject: [PATCH 6/8] ignore click event of pokeball behide appbar in pokemon info page --- lib/screens/pokemon_info/widgets/info.dart | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/screens/pokemon_info/widgets/info.dart b/lib/screens/pokemon_info/widgets/info.dart index 67168f0..ea58a03 100644 --- a/lib/screens/pokemon_info/widgets/info.dart +++ b/lib/screens/pokemon_info/widgets/info.dart @@ -297,15 +297,18 @@ class _PokemonOverallInfoState extends State with TickerProv Positioned( top: pokeTop, right: pokeRight, - child: AnimatedFade( - animation: cardScrollController, - child: AnimatedRotation( - animation: _rotateController, - child: Image.asset( - "assets/images/pokeball.png", - width: pokeSize, - height: pokeSize, - color: Colors.white.withOpacity(0.26), + child: IgnorePointer( + ignoring: true, + child: AnimatedFade( + animation: cardScrollController, + child: AnimatedRotation( + animation: _rotateController, + child: Image.asset( + "assets/images/pokeball.png", + width: pokeSize, + height: pokeSize, + color: Colors.white.withOpacity(0.26), + ), ), ), ), From cde2f5fe224a96a74c2a879c74e4c4d9bb14d450 Mon Sep 17 00:00:00 2001 From: Sidak Date: Tue, 14 Jul 2020 22:39:32 +0530 Subject: [PATCH 7/8] fix FAB opening and closing --- lib/screens/pokedex/pokedex.dart | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/screens/pokedex/pokedex.dart b/lib/screens/pokedex/pokedex.dart index 90a1bd3..12991d0 100644 --- a/lib/screens/pokedex/pokedex.dart +++ b/lib/screens/pokedex/pokedex.dart @@ -157,9 +157,11 @@ class _PokedexState extends State with SingleTickerProviderStateMixin { ), ], animation: _animation, - onPress: _animationController.isCompleted - ? _animationController.reverse - : _animationController.forward, + onPress: () { + _animationController.isCompleted + ? _animationController.reverse() + : _animationController.forward(); + }, ), ); } From 8075401d00f262c1bae883ec4ea7196dd2fc7dd4 Mon Sep 17 00:00:00 2001 From: SHIVANI GUPTA Date: Thu, 13 Aug 2020 18:30:31 +0530 Subject: [PATCH 8/8] issue solved by shivani --- lib/main.dart | 4 +- lib/screens/home/home.dart | 4 +- lib/screens/home/widgets/category_list.dart | 3 +- pubspec.lock | 79 ++++++++------------- 4 files changed, 36 insertions(+), 54 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index f3070df..0e3c47f 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -53,9 +53,11 @@ class MyApp extends StatelessWidget { return MaterialApp( color: Colors.white, title: 'Flutter Demo', + debugShowCheckedModeBanner: false, theme: ThemeData( fontFamily: 'CircularStd', - textTheme: Theme.of(context).textTheme.apply(displayColor: AppColors.black), + textTheme: + Theme.of(context).textTheme.apply(displayColor: AppColors.black), scaffoldBackgroundColor: AppColors.lightGrey, primarySwatch: Colors.blue, ), diff --git a/lib/screens/home/home.dart b/lib/screens/home/home.dart index 110f84d..2958148 100644 --- a/lib/screens/home/home.dart +++ b/lib/screens/home/home.dart @@ -82,10 +82,10 @@ class _HomeState extends State { Widget _buildNews() { return ListView( - physics: BouncingScrollPhysics(), children: [ Padding( - padding: const EdgeInsets.only(left: 28, right: 28, top: 0, bottom: 22), + padding: + const EdgeInsets.only(left: 28, right: 28, top: 0, bottom: 22), child: Row( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.spaceBetween, diff --git a/lib/screens/home/widgets/category_list.dart b/lib/screens/home/widgets/category_list.dart index 1f3aee5..468e510 100644 --- a/lib/screens/home/widgets/category_list.dart +++ b/lib/screens/home/widgets/category_list.dart @@ -6,6 +6,7 @@ import '../../../widgets/poke_category_card.dart'; class CategoryList extends StatelessWidget { @override Widget build(BuildContext context) { + // ignore: unused_local_variable final screenSize = MediaQuery.of(context).size; return GridView.builder( @@ -17,7 +18,7 @@ class CategoryList extends StatelessWidget { crossAxisSpacing: 10, mainAxisSpacing: 12, ), - padding: EdgeInsets.only(left: 28, right: 28, bottom: 30), + padding: EdgeInsets.only(left: 28, right: 28, bottom: 25), itemCount: categories.length, itemBuilder: (context, index) => PokeCategoryCard( categories[index], diff --git a/pubspec.lock b/pubspec.lock index 62ba2c4..81b9006 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,27 +1,13 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: - archive: - dependency: transitive - description: - name: archive - url: "https://pub.dartlang.org" - source: hosted - version: "2.0.13" - args: - dependency: transitive - description: - name: args - url: "https://pub.dartlang.org" - source: hosted - version: "1.6.0" async: dependency: transitive description: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.4.1" + version: "2.4.2" boolean_selector: dependency: transitive description: @@ -36,6 +22,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.0-rc.1" + characters: + dependency: transitive + description: + name: characters + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" charcode: dependency: transitive description: @@ -43,13 +36,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.1.3" + clock: + dependency: transitive + description: + name: clock + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" collection: dependency: transitive description: name: collection url: "https://pub.dartlang.org" source: hosted - version: "1.14.12" + version: "1.14.13" convert: dependency: transitive description: @@ -71,6 +71,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.1.2" + fake_async: + dependency: transitive + description: + name: fake_async + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" flutter: dependency: "direct main" description: flutter @@ -102,13 +109,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.1.3" - image: - dependency: transitive - description: - name: image - url: "https://pub.dartlang.org" - source: hosted - version: "2.1.12" intl: dependency: "direct main" description: @@ -122,7 +122,7 @@ packages: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.6" + version: "0.12.8" meta: dependency: transitive description: @@ -136,7 +136,7 @@ packages: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.6.4" + version: "1.7.0" path_provider: dependency: transitive description: @@ -151,13 +151,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.8.0+1" - petitparser: - dependency: transitive - description: - name: petitparser - url: "https://pub.dartlang.org" - source: hosted - version: "2.4.0" platform: dependency: transitive description: @@ -172,13 +165,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.1.0" - quiver: - dependency: transitive - description: - name: quiver - url: "https://pub.dartlang.org" - source: hosted - version: "2.1.3" sky_engine: dependency: transitive description: flutter @@ -204,7 +190,7 @@ packages: name: stack_trace url: "https://pub.dartlang.org" source: hosted - version: "1.9.3" + version: "1.9.5" stream_channel: dependency: transitive description: @@ -239,14 +225,14 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.2.15" + version: "0.2.17" typed_data: dependency: transitive description: name: typed_data url: "https://pub.dartlang.org" source: hosted - version: "1.1.6" + version: "1.2.0" uuid: dependency: transitive description: @@ -261,13 +247,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.8" - xml: - dependency: transitive - description: - name: xml - url: "https://pub.dartlang.org" - source: hosted - version: "3.6.1" sdks: - dart: ">=2.6.0 <3.0.0" + dart: ">=2.9.0-14.0.dev <3.0.0" flutter: ">=1.10.15-pre.148 <2.0.0"