369 lines
7.6 KiB
Python
369 lines
7.6 KiB
Python
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
|