from enum import IntEnum class Ability(IntEnum): """Helper enum for ability ids to make them more readable.""" STENCH = 1 DRIZZLE = 2 SPEED_BOOST = 3 BATTLE_ARMOR = 4 STURDY = 5 DAMP = 6 LIMBER = 7 SAND_VEIL = 8 STATIC = 9 VOLT_ABSORB = 10 WATER_ABSORB = 11 OBLIVIOUS = 12 CLOUD_NINE = 13 COMPOUND_EYES = 14 INSOMNIA = 15 COLOR_CHANGE = 16 IMMUNITY = 17 FLASH_FIRE = 18 SHIELD_DUST = 19 OWN_TEMPO = 20 SUCTION_CUPS = 21 INTIMIDATE = 22 SHADOW_TAG = 23 ROUGH_SKIN = 24 WONDER_GUARD = 25 LEVITATE = 26 EFFECT_SPORE = 27 SYNCHRONIZE = 28 CLEAR_BODY = 29 NATURAL_CURE = 30 LIGHTNING_ROD = 31 SERENE_GRACE = 32 SWIFT_SWIM = 33 CHLOROPHYLL = 34 ILLUMINATE = 35 TRACE = 36 HUGE_POWER = 37 POISON_POINT = 38 INNER_FOCUS = 39 MAGMA_ARMOR = 40 WATER_VEIL = 41 MAGNET_PULL = 42 SOUNDPROOF = 43 RAIN_DISH = 44 SAND_STREAM = 45 PRESSURE = 46 THICK_FAT = 47 EARLY_BIRD = 48 FLAME_BODY = 49 RUN_AWAY = 50 KEEN_EYE = 51 HYPER_CUTTER = 52 PICKUP = 53 TRUANT = 54 HUSTLE = 55 CUTE_CHARM = 56 PLUS = 57 MINUS = 58 FORECAST = 59 STICKY_HOLD = 60 SHED_SKIN = 61 GUTS = 62 MARVEL_SCALE = 63 LIQUID_OOZE = 64 OVERGROW = 65 BLAZE = 66 TORRENT = 67 SWARM = 68 ROCK_HEAD = 69 DROUGHT = 70 ARENA_TRAP = 71 VITAL_SPIRIT = 72 WHITE_SMOKE = 73 PURE_POWER = 74 SHELL_ARMOR = 75 AIR_LOCK = 76 TANGLED_FEET = 77 MOTOR_DRIVE = 78 RIVALRY = 79 STEADFAST = 80 SNOW_CLOAK = 81 GLUTTONY = 82 ANGER_POINT = 83 UNBURDEN = 84 HEATPROOF = 85 SIMPLE = 86 DRY_SKIN = 87 DOWNLOAD = 88 IRON_FIST = 89 POISON_HEAL = 90 ADAPTABILITY = 91 SKILL_LINK = 92 HYDRATION = 93 SOLAR_POWER = 94 QUICK_FEET = 95 NORMALIZE = 96 SNIPER = 97 MAGIC_GUARD = 98 NO_GUARD = 99 STALL = 100 TECHNICIAN = 101 LEAF_GUARD = 102 KLUTZ = 103 MOLD_BREAKER = 104 SUPER_LUCK = 105 AFTERMATH = 106 ANTICIPATION = 107 FOREWARN = 108 UNAWARE = 109 TINTED_LENS = 110 FILTER = 111 SLOW_START = 112 SCRAPPY = 113 STORM_DRAIN = 114 ICE_BODY = 115 SOLID_ROCK = 116 SNOW_WARNING = 117 HONEY_GATHER = 118 FRISK = 119 RECKLESS = 120 MULTITYPE = 121 FLOWER_GIFT = 122 BAD_DREAMS = 123 PICKPOCKET = 124 SHEER_FORCE = 125 CONTRARY = 126 UNNERVE = 127 DEFIANT = 128 DEFEATIST = 129 CURSED_BODY = 130 HEALER = 131 FRIEND_GUARD = 132 WEAK_ARMOR = 133 HEAVY_METAL = 134 LIGHT_METAL = 135 MULTISCALE = 136 TOXIC_BOOST = 137 FLARE_BOOST = 138 HARVEST = 139 TELEPATHY = 140 MOODY = 141 OVERCOAT = 142 POISON_TOUCH = 143 REGENERATOR = 144 BIG_PECKS = 145 SAND_RUSH = 146 WONDER_SKIN = 147 ANALYTIC = 148 ILLUSION = 149 IMPOSTER = 150 INFILTRATOR = 151 MUMMY = 152 MOXIE = 153 JUSTIFIED = 154 RATTLED = 155 MAGIC_BOUNCE = 156 SAP_SIPPER = 157 PRANKSTER = 158 SAND_FORCE = 159 IRON_BARBS = 160 ZEN_MODE = 161 VICTORY_STAR = 162 TURBOBLAZE = 163 TERAVOLT = 164 AROMA_VEIL = 165 FLOWER_VEIL = 166 CHEEK_POUCH = 167 PROTEAN = 168 FUR_COAT = 169 MAGICIAN = 170 BULLETPROOF = 171 COMPETITIVE = 172 STRONG_JAW = 173 REFRIGERATE = 174 SWEET_VEIL = 175 STANCE_CHANGE = 176 GALE_WINGS = 177 MEGA_LAUNCHER = 178 GRASS_PELT = 179 SYMBIOSIS = 180 TOUGH_CLAWS = 181 PIXILATE = 182 GOOEY = 183 AERILATE = 184 PARENTAL_BOND = 185 DARK_AURA = 186 FAIRY_AURA = 187 AURA_BREAK = 188 PRIMORDIAL_SEA = 189 DESOLATE_LAND = 190 DELTA_STREAM = 191 STAMINA = 192 WIMP_OUT = 193 EMERGENCY_EXIT = 194 WATER_COMPACTION = 195 MERCILESS = 196 SHIELDS_DOWN = 197 STAKEOUT = 198 WATER_BUBBLE = 199 STEELWORKER = 200 BERSERK = 201 SLUSH_RUSH = 202 LONG_REACH = 203 LIQUID_VOICE = 204 TRIAGE = 205 GALVANIZE = 206 SURGE_SURFER = 207 SCHOOLING = 208 DISGUISE = 209 BATTLE_BOND = 210 POWER_CONSTRUCT = 211 CORROSION = 212 COMATOSE = 213 QUEENLY_MAJESTY = 214 INNARDS_OUT = 215 DANCER = 216 BATTERY = 217 FLUFFY = 218 DAZZLING = 219 SOUL_HEART = 220 TANGLING_HAIR = 221 RECEIVER = 222 POWER_OF_ALCHEMY = 223 BEAST_BOOST = 224 RKS_SYSTEM = 225 ELECTRIC_SURGE = 226 PSYCHIC_SURGE = 227 MISTY_SURGE = 228 GRASSY_SURGE = 229 FULL_METAL_BODY = 230 SHADOW_SHIELD = 231 PRISM_ARMOR = 232 NEUROFORCE = 233 LIBERO = 234 MIRROR_ARMOR = 235 COTTON_DOWN = 236 BALL_FETCH = 237 STEAM_ENGINE = 238 RIPEN = 239 SAND_SPIT = 240 GULP_MISSILE = 241 PROPELLER_TAIL = 242 PUNK_ROCK = 243 STEELY_SPIRIT = 244 PERISH_BODY = 245 SCREEN_CLEANER = 246 WANDERING_SPIRIT = 247 NEUTRALIZING_GAS = 248 ICE_SCALES = 249 POWER_SPOT = 250 ICE_FACE = 251 HUNGER_SWITCH = 252 STALWART = 253 INTREPID_SWORD = 254 DAUNTLESS_SHIELD = 255 PASTEL_VEIL = 256 GORILLA_TACTICS = 257 QUICK_DRAW = 258 MIMICRY = 259 TRANSISTOR = 260 DRAGONS_MAW = 261 CHILLING_NEIGH = 262 GRIM_NEIGH = 263 AS_ONE_SHADOW = 264 AS_ONE_ICE = 265 CURIOUS_MEDICINE = 266 UNSEEN_FIST = 267 LINGERING_AROMA = 268 SEED_SOWER = 269 THERMAL_EXCHANGE = 270 ANGER_SHELL = 271 PURIFYING_SALT = 272 WELL_BAKED_BODY = 273 WIND_RIDER = 274 GUARD_DOG = 275 ROCKY_PAYLOAD = 276 WIND_POWER = 277 ZERO_TO_HERO = 278 COMMANDER = 279 ELECTROMORPHOSIS = 280 PROTOSYNTHESIS = 281 QUARK_DRIVE = 282 GOOD_AS_GOLD = 283 VESSEL_OF_RUIN = 284 SWORD_OF_RUIN = 285 TABLETS_OF_RUIN = 286 BEADS_OF_RUIN = 287 ORICHALCUM_PULSE = 288 HADRON_ENGINE = 289 OPPORTUNIST = 290 CUD_CHEW = 291 SHARPNESS = 292 SUPREME_OVERLORD = 293 COSTAR = 294 TOXIC_DEBRIS = 295 ARMOR_TAIL = 296 EARTH_EATER = 297 MYCELIUM_MIGHT = 298 HOSPITALITY = 299 MINDS_EYE = 300 EMBODY_ASPECT_TEAL = 301 EMBODY_ASPECT_HEARTHFLAME = 302 EMBODY_ASPECT_WELLSPRING = 303 EMBODY_ASPECT_CORNERSTONE = 304 TOXIC_CHAIN = 305 SUPERSWEET_SYRUP = 306 TERA_SHIFT = 307 TERA_SHELL = 308 TERAFORM_ZERO = 309 POISON_PUPPETEER = 310 @property def pretty_name(self): """Formats the ability name for outputs.""" return self.name.lower().replace("_", " ") # pylint: disable=E1101 class DamageClass(IntEnum): """Helper enum for damage classes to make them more readable.""" STATUS = 1 PHYSICAL = 2 SPECIAL = 3 class ElementType(IntEnum): """Helper enum for element types to make them more readable.""" NORMAL = 1 FIGHTING = 2 FLYING = 3 POISON = 4 GROUND = 5 ROCK = 6 BUG = 7 GHOST = 8 STEEL = 9 FIRE = 10 WATER = 11 GRASS = 12 ELECTRIC = 13 PSYCHIC = 14 ICE = 15 DRAGON = 16 DARK = 17 FAIRY = 18 TYPELESS = 19 class MoveTarget(IntEnum): """Helper enum for move targets to make them more readable.""" SPECIFIC_MOVE = 1 SELECTED_POKEMON_ME_FIRST = 2 ALLY = 3 USERS_FIELD = 4 USER_OR_ALLY = 5 OPPONENTS_FIELD = 6 USER = 7 RANDOM_OPPONENT = 8 ALL_OTHER_POKEMON = 9 SELECTED_POKEMON = 10 ALL_OPPONENTS = 11 ENTIRE_FIELD = 12 USER_AND_ALLIES = 13 ALL_POKEMON = 14 ALL_ALLIES = 15