Ruby-Cogs/pokemonduel/enums.py
2025-04-02 22:57:51 -04:00

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