pokeemerald/include/constants/battle_move_effects.h
Eduardo Quezada D'Ottone 1fa9a05470
Convert move flags and bans into GCC bitfields (#2952)
* Slicing moves to new bitfield

* Wind moves to new bitfield

* Two-strike moves to new bitfield

* Forgot to add flagTwoStrikes to battle_moves.h

* Removed "flag" from field names

* FLAG_HIT_IN_SUBSTITUTE and FLAG_THAW_USER

* Airborne moves

* FLAG_POWDER, FLAG_TARGET_ABILITY_IGNORED and FLAG_DANCE

* FLAG_BALLISTIC and FLAG_PROTECTION_MOVE

* Fixed missing uses of MOVE_UNAVAILABLE in battle_ai_util.c

* FLAG_SOUND

* FLAG_DMG_UNDERGROUND and FLAG_DMG_UNDERWATER

* FLAG_DMG_MINIMIZE

* Cleanup

* FLAG_STAT_STAGES_IGNORED

* Updated Pollen Puff's ballistic flag

* FLAG_STRONG_JAW_BOOST and FLAG_MEGA_LAUNCHER_BOOST

* thaw

* FLAG_THREE_STRIKES

* FLAG_IRON_FIST_BOOST

* FLAG_RECKLESS_BOOST

* FLAG_HIGH_CRIT

* Removed empty flags

* Moves that fail when called by Me First + added missing Shell Trap

* Moves that fail when Gravity is active

* Better names for banned fields

* Moves that fail when called by Instruct

* Cleanup

* Contact Moves + Fixed Wandering Spirit skipping contact checks

* Inverted FLAG_PROTECT_AFFECTED so that there's a flag for moves that SKIP protect.

* Simplified B_MOVE_FLAGS configs

* FORBIDDEN_METRONOME

* Renamed hitsPastSubstitute to ignoresSubstitute

* FORBIDDEN_PARENTAL_BOND

* Struggle uncallable by Metronome

* FORBIDDEN_MIMIC

* FLAG_KINGS_ROCK_AFFECTED

* Made a single config for move flags

* Macro for checking move flags

* FLAG_MAGIC_COAT_AFFECTED

* Fixed HasMagicCoatAffectedMove

* FLAG_SNATCH_AFFECTED

* Removed unused EFFECT_FLINCH_MINIMIZE_HIT

* Fixed Stench/King's Rock interaction

* Removed sMovesNotAffectedByStench in favor of checking move effects

* Removed EFFECT_TWISTER, which was a repeat of EFFECT_FLINCH_HIT

* Changed Gen2 configs to less than Gen 3

* FORBIDDEN_SLEEP_TALK

* Cleanup

* Inverted FLAG_MIRROR_MOVE_AFFECTED

* FLAG_SHEER_FORCE_BOOST

* Ordered

* FORBIDDEN_ASSIST and FORBIDDEN_COPYCAT

* Removed TestMoveFlags and TestMoveFlagsInMoveset + flags field

* Fixed Triple Arrows test
2023-07-03 10:01:59 +02:00

416 lines
19 KiB
C

#ifndef GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
#define GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
#define EFFECT_HIT 0
#define EFFECT_SLEEP 1
#define EFFECT_POISON_HIT 2
#define EFFECT_ABSORB 3
#define EFFECT_BURN_HIT 4
#define EFFECT_FREEZE_HIT 5
#define EFFECT_PARALYZE_HIT 6
#define EFFECT_EXPLOSION 7
#define EFFECT_DREAM_EATER 8
#define EFFECT_MIRROR_MOVE 9
#define EFFECT_ATTACK_UP 10
#define EFFECT_DEFENSE_UP 11
#define EFFECT_SPEED_UP 12
#define EFFECT_SPECIAL_ATTACK_UP 13
#define EFFECT_SPECIAL_DEFENSE_UP 14
#define EFFECT_ACCURACY_UP 15
#define EFFECT_EVASION_UP 16
#define EFFECT_SPECIAL_ATTACK_UP_3 17
#define EFFECT_ATTACK_DOWN 18
#define EFFECT_DEFENSE_DOWN 19
#define EFFECT_SPEED_DOWN 20
#define EFFECT_SPECIAL_ATTACK_DOWN 21
#define EFFECT_SPECIAL_DEFENSE_DOWN 22
#define EFFECT_ACCURACY_DOWN 23
#define EFFECT_EVASION_DOWN 24
#define EFFECT_HAZE 25
#define EFFECT_BIDE 26
#define EFFECT_RAMPAGE 27
#define EFFECT_ROAR 28
#define EFFECT_MULTI_HIT 29
#define EFFECT_CONVERSION 30
#define EFFECT_FLINCH_HIT 31
#define EFFECT_RESTORE_HP 32
#define EFFECT_TOXIC 33
#define EFFECT_PAY_DAY 34
#define EFFECT_LIGHT_SCREEN 35
#define EFFECT_TRI_ATTACK 36
#define EFFECT_REST 37
#define EFFECT_OHKO 38
#define EFFECT_FUSION_COMBO 39
#define EFFECT_SUPER_FANG 40
#define EFFECT_DRAGON_RAGE 41
#define EFFECT_TRAP 42
#define EFFECT_HEAL_BLOCK 43
#define EFFECT_RECOIL_IF_MISS 44
#define EFFECT_MIST 45
#define EFFECT_FOCUS_ENERGY 46
#define EFFECT_RECOIL_25 47
#define EFFECT_CONFUSE 48
#define EFFECT_ATTACK_UP_2 49
#define EFFECT_DEFENSE_UP_2 50
#define EFFECT_SPEED_UP_2 51
#define EFFECT_SPECIAL_ATTACK_UP_2 52
#define EFFECT_SPECIAL_DEFENSE_UP_2 53
#define EFFECT_ACCURACY_UP_2 54
#define EFFECT_EVASION_UP_2 55
#define EFFECT_TRANSFORM 56
#define EFFECT_ATTACK_DOWN_2 57
#define EFFECT_DEFENSE_DOWN_2 58
#define EFFECT_SPEED_DOWN_2 59
#define EFFECT_SPECIAL_ATTACK_DOWN_2 60
#define EFFECT_SPECIAL_DEFENSE_DOWN_2 61
#define EFFECT_ACCURACY_DOWN_2 62
#define EFFECT_EVASION_DOWN_2 63
#define EFFECT_REFLECT 64
#define EFFECT_POISON 65
#define EFFECT_PARALYZE 66
#define EFFECT_ATTACK_DOWN_HIT 67
#define EFFECT_DEFENSE_DOWN_HIT 68
#define EFFECT_SPEED_DOWN_HIT 69
#define EFFECT_SPECIAL_ATTACK_DOWN_HIT 70
#define EFFECT_SPECIAL_DEFENSE_DOWN_HIT 71
#define EFFECT_ACCURACY_DOWN_HIT 72
#define EFFECT_EVASION_DOWN_HIT 73
#define EFFECT_TWO_TURNS_ATTACK 74
#define EFFECT_CONFUSE_HIT 75
#define EFFECT_VITAL_THROW 76
#define EFFECT_SUBSTITUTE 77
#define EFFECT_RECHARGE 78
#define EFFECT_RAGE 79
#define EFFECT_MIMIC 80
#define EFFECT_METRONOME 81
#define EFFECT_LEECH_SEED 82
#define EFFECT_DO_NOTHING 83
#define EFFECT_DISABLE 84
#define EFFECT_LEVEL_DAMAGE 85
#define EFFECT_PSYWAVE 86
#define EFFECT_COUNTER 87
#define EFFECT_ENCORE 88
#define EFFECT_PAIN_SPLIT 89
#define EFFECT_SNORE 90
#define EFFECT_CONVERSION_2 91
#define EFFECT_LOCK_ON 92
#define EFFECT_SKETCH 93
#define EFFECT_HAMMER_ARM 94
#define EFFECT_SLEEP_TALK 95
#define EFFECT_DESTINY_BOND 96
#define EFFECT_FLAIL 97
#define EFFECT_SPITE 98
#define EFFECT_FALSE_SWIPE 99
#define EFFECT_HEAL_BELL 100
#define EFFECT_ALWAYS_CRIT 101
#define EFFECT_TRIPLE_KICK 102
#define EFFECT_THIEF 103
#define EFFECT_MEAN_LOOK 104
#define EFFECT_NIGHTMARE 105
#define EFFECT_MINIMIZE 106
#define EFFECT_CURSE 107
#define EFFECT_HEALING_WISH 108
#define EFFECT_PROTECT 109
#define EFFECT_SPIKES 110
#define EFFECT_FORESIGHT 111
#define EFFECT_PERISH_SONG 112
#define EFFECT_SANDSTORM 113
#define EFFECT_ENDURE 114
#define EFFECT_ROLLOUT 115
#define EFFECT_SWAGGER 116
#define EFFECT_FURY_CUTTER 117
#define EFFECT_ATTRACT 118
#define EFFECT_RETURN 119
#define EFFECT_PRESENT 120
#define EFFECT_FRUSTRATION 121
#define EFFECT_SAFEGUARD 122
#define EFFECT_UNUSED_125 123
#define EFFECT_MAGNITUDE 124
#define EFFECT_BATON_PASS 125
#define EFFECT_PURSUIT 126
#define EFFECT_RAPID_SPIN 127
#define EFFECT_SONICBOOM 128
#define EFFECT_CAPTIVATE 129
#define EFFECT_MORNING_SUN 130
#define EFFECT_SYNTHESIS 131
#define EFFECT_MOONLIGHT 132
#define EFFECT_HIDDEN_POWER 133
#define EFFECT_RAIN_DANCE 134
#define EFFECT_SUNNY_DAY 135
#define EFFECT_DEFENSE_UP_HIT 136
#define EFFECT_ATTACK_UP_HIT 137
#define EFFECT_ALL_STATS_UP_HIT 138
#define EFFECT_FELL_STINGER 139
#define EFFECT_BELLY_DRUM 140
#define EFFECT_PSYCH_UP 141
#define EFFECT_MIRROR_COAT 142
#define EFFECT_SKULL_BASH 143
#define EFFECT_EARTHQUAKE 144
#define EFFECT_FUTURE_SIGHT 145
#define EFFECT_GUST 146
#define EFFECT_SOLAR_BEAM 147
#define EFFECT_THUNDER 148
#define EFFECT_TELEPORT 149
#define EFFECT_BEAT_UP 150
#define EFFECT_SEMI_INVULNERABLE 151
#define EFFECT_DEFENSE_CURL 152
#define EFFECT_SOFTBOILED 153
#define EFFECT_FAKE_OUT 154
#define EFFECT_UPROAR 155
#define EFFECT_STOCKPILE 156
#define EFFECT_SPIT_UP 157
#define EFFECT_SWALLOW 158
#define EFFECT_WORRY_SEED 159
#define EFFECT_HAIL 160
#define EFFECT_TORMENT 161
#define EFFECT_FLATTER 162
#define EFFECT_WILL_O_WISP 163
#define EFFECT_MEMENTO 164
#define EFFECT_FACADE 165
#define EFFECT_FOCUS_PUNCH 166
#define EFFECT_SMELLINGSALT 167
#define EFFECT_FOLLOW_ME 168
#define EFFECT_NATURE_POWER 169
#define EFFECT_CHARGE 170
#define EFFECT_TAUNT 171
#define EFFECT_HELPING_HAND 172
#define EFFECT_TRICK 173
#define EFFECT_ROLE_PLAY 174
#define EFFECT_WISH 175
#define EFFECT_ASSIST 176
#define EFFECT_INGRAIN 177
#define EFFECT_SUPERPOWER 178
#define EFFECT_MAGIC_COAT 179
#define EFFECT_RECYCLE 180
#define EFFECT_REVENGE 181
#define EFFECT_BRICK_BREAK 182
#define EFFECT_YAWN 183
#define EFFECT_KNOCK_OFF 184
#define EFFECT_ENDEAVOR 185
#define EFFECT_ERUPTION 186
#define EFFECT_SKILL_SWAP 187
#define EFFECT_IMPRISON 188
#define EFFECT_REFRESH 189
#define EFFECT_GRUDGE 190
#define EFFECT_SNATCH 191
#define EFFECT_LOW_KICK 192
#define EFFECT_SECRET_POWER 193
#define EFFECT_RECOIL_33 194
#define EFFECT_TEETER_DANCE 195
#define EFFECT_HIT_ESCAPE 196
#define EFFECT_MUD_SPORT 197
#define EFFECT_POISON_FANG 198
#define EFFECT_WEATHER_BALL 199
#define EFFECT_OVERHEAT 200
#define EFFECT_TICKLE 201
#define EFFECT_COSMIC_POWER 202
#define EFFECT_SKY_UPPERCUT 203
#define EFFECT_BULK_UP 204
#define EFFECT_PLACEHOLDER 205
#define EFFECT_WATER_SPORT 206
#define EFFECT_CALM_MIND 207
#define EFFECT_DRAGON_DANCE 208
#define EFFECT_CAMOUFLAGE 209
// New move effects
#define EFFECT_PLEDGE 210
#define EFFECT_FLING 211
#define EFFECT_NATURAL_GIFT 212
#define EFFECT_WAKE_UP_SLAP 213
#define EFFECT_WRING_OUT 214
#define EFFECT_HEX 215
#define EFFECT_ASSURANCE 216
#define EFFECT_TRUMP_CARD 217
#define EFFECT_ACROBATICS 218
#define EFFECT_HEAT_CRASH 219
#define EFFECT_PUNISHMENT 220
#define EFFECT_STORED_POWER 221
#define EFFECT_ELECTRO_BALL 222
#define EFFECT_GYRO_BALL 223
#define EFFECT_ECHOED_VOICE 224
#define EFFECT_PAYBACK 225
#define EFFECT_ROUND 226
#define EFFECT_BRINE 227
#define EFFECT_VENOSHOCK 228
#define EFFECT_RETALIATE 229
#define EFFECT_BULLDOZE 230
#define EFFECT_FOUL_PLAY 231
#define EFFECT_PSYSHOCK 232
#define EFFECT_ROOST 233
#define EFFECT_GRAVITY 234
#define EFFECT_MIRACLE_EYE 235
#define EFFECT_TAILWIND 236
#define EFFECT_EMBARGO 237
#define EFFECT_AQUA_RING 238
#define EFFECT_TRICK_ROOM 239
#define EFFECT_WONDER_ROOM 240
#define EFFECT_MAGIC_ROOM 241
#define EFFECT_MAGNET_RISE 242
#define EFFECT_TOXIC_SPIKES 243
#define EFFECT_GASTRO_ACID 244
#define EFFECT_STEALTH_ROCK 245
#define EFFECT_TELEKINESIS 246
#define EFFECT_POWER_SWAP 247
#define EFFECT_GUARD_SWAP 248
#define EFFECT_HEART_SWAP 249
#define EFFECT_POWER_SPLIT 250
#define EFFECT_GUARD_SPLIT 251
#define EFFECT_STICKY_WEB 252
#define EFFECT_METAL_BURST 253
#define EFFECT_LUCKY_CHANT 254
#define EFFECT_SUCKER_PUNCH 255
#define EFFECT_SPECIAL_DEFENSE_DOWN_HIT_2 256
#define EFFECT_SIMPLE_BEAM 257
#define EFFECT_ENTRAINMENT 258
#define EFFECT_HEAL_PULSE 259
#define EFFECT_QUASH 260
#define EFFECT_ION_DELUGE 261
#define EFFECT_FREEZE_DRY 262
#define EFFECT_TOPSY_TURVY 263
#define EFFECT_MISTY_TERRAIN 264
#define EFFECT_GRASSY_TERRAIN 265
#define EFFECT_ELECTRIC_TERRAIN 266
#define EFFECT_PSYCHIC_TERRAIN 267
#define EFFECT_ATTACK_ACCURACY_UP 268
#define EFFECT_ATTACK_SPATK_UP 269
#define EFFECT_HURRICANE 270
#define EFFECT_TWO_TYPED_MOVE 271
#define EFFECT_ME_FIRST 272
#define EFFECT_SPEED_UP_HIT 273
#define EFFECT_QUIVER_DANCE 274
#define EFFECT_COIL 275
#define EFFECT_ELECTRIFY 276
#define EFFECT_REFLECT_TYPE 277
#define EFFECT_SOAK 278
#define EFFECT_GROWTH 279
#define EFFECT_CLOSE_COMBAT 280
#define EFFECT_LAST_RESORT 281
#define EFFECT_RECOIL_33_STATUS 282
#define EFFECT_FLINCH_STATUS 283
#define EFFECT_RECOIL_50 284
#define EFFECT_SHELL_SMASH 285
#define EFFECT_SHIFT_GEAR 286
#define EFFECT_DEFENSE_UP_3 287
#define EFFECT_NOBLE_ROAR 288
#define EFFECT_VENOM_DRENCH 289
#define EFFECT_TOXIC_THREAD 290
#define EFFECT_CLEAR_SMOG 291
#define EFFECT_HIT_SWITCH_TARGET 292
#define EFFECT_FINAL_GAMBIT 293
#define EFFECT_CHANGE_TYPE_ON_ITEM 294
#define EFFECT_AUTOTOMIZE 295
#define EFFECT_COPYCAT 296
#define EFFECT_DEFOG 297
#define EFFECT_HIT_ENEMY_HEAL_ALLY 298
#define EFFECT_SMACK_DOWN 299
#define EFFECT_SYNCHRONOISE 300
#define EFFECT_PSYCHO_SHIFT 301
#define EFFECT_POWER_TRICK 302
#define EFFECT_FLAME_BURST 303
#define EFFECT_AFTER_YOU 304
#define EFFECT_BESTOW 305
#define EFFECT_ROTOTILLER 306
#define EFFECT_FLOWER_SHIELD 307
#define EFFECT_HIT_PREVENT_ESCAPE 308
#define EFFECT_SPEED_SWAP 309
#define EFFECT_DEFENSE_UP2_HIT 310
#define EFFECT_REVELATION_DANCE 311
#define EFFECT_AURORA_VEIL 312
#define EFFECT_THIRD_TYPE 313
#define EFFECT_FEINT 314
#define EFFECT_SPARKLING_ARIA 315
#define EFFECT_ACUPRESSURE 316
#define EFFECT_AROMATIC_MIST 317
#define EFFECT_POWDER 318
#define EFFECT_SP_ATTACK_UP_HIT 319
#define EFFECT_BELCH 320
#define EFFECT_PARTING_SHOT 321
#define EFFECT_SPECTRAL_THIEF 322
#define EFFECT_V_CREATE 323
#define EFFECT_MAT_BLOCK 324
#define EFFECT_STOMPING_TANTRUM 325
#define EFFECT_CORE_ENFORCER 326
#define EFFECT_INSTRUCT 327
#define EFFECT_THROAT_CHOP 328
#define EFFECT_LASER_FOCUS 329
#define EFFECT_MAGNETIC_FLUX 330
#define EFFECT_GEAR_UP 331
#define EFFECT_INCINERATE 332
#define EFFECT_BUG_BITE 333
#define EFFECT_STRENGTH_SAP 334
#define EFFECT_MIND_BLOWN 335
#define EFFECT_PURIFY 336
#define EFFECT_BURN_UP 337
#define EFFECT_SHORE_UP 338
#define EFFECT_GEOMANCY 339
#define EFFECT_FAIRY_LOCK 340
#define EFFECT_ALLY_SWITCH 341
#define EFFECT_RELIC_SONG 342
#define EFFECT_ATTACKER_DEFENSE_DOWN_HIT 343
#define EFFECT_BODY_PRESS 344
#define EFFECT_EERIE_SPELL 345
#define EFFECT_JUNGLE_HEALING 346
#define EFFECT_COACHING 347
#define EFFECT_LASH_OUT 348
#define EFFECT_GRASSY_GLIDE 349
#define EFFECT_REMOVE_TERRAIN 350
#define EFFECT_DYNAMAX_DOUBLE_DMG 351
#define EFFECT_DECORATE 352
#define EFFECT_SNIPE_SHOT 353
#define EFFECT_RECOIL_HP_25 354
#define EFFECT_STUFF_CHEEKS 355
#define EFFECT_GRAV_APPLE 356
#define EFFECT_EVASION_UP_HIT 357
#define EFFECT_GLITZY_GLOW 358
#define EFFECT_BADDY_BAD 359
#define EFFECT_SAPPY_SEED 360
#define EFFECT_FREEZY_FROST 361
#define EFFECT_SPARKLY_SWIRL 362
#define EFFECT_PLASMA_FISTS 363
#define EFFECT_HYPERSPACE_FURY 364
#define EFFECT_AURA_WHEEL 365
#define EFFECT_PHOTON_GEYSER 366
#define EFFECT_SHELL_SIDE_ARM 367
#define EFFECT_TERRAIN_PULSE 368
#define EFFECT_JAW_LOCK 369
#define EFFECT_NO_RETREAT 370
#define EFFECT_TAR_SHOT 371
#define EFFECT_POLTERGEIST 372
#define EFFECT_OCTOLOCK 373
#define EFFECT_CLANGOROUS_SOUL 374
#define EFFECT_BOLT_BEAK 375
#define EFFECT_SKY_DROP 376
#define EFFECT_EXPANDING_FORCE 377
#define EFFECT_SCALE_SHOT 378
#define EFFECT_METEOR_BEAM 379
#define EFFECT_RISING_VOLTAGE 380
#define EFFECT_BEAK_BLAST 381
#define EFFECT_COURT_CHANGE 382
#define EFFECT_STEEL_BEAM 383
#define EFFECT_EXTREME_EVOBOOST 384
#define EFFECT_HIT_SET_REMOVE_TERRAIN 385 // genesis supernova
#define EFFECT_DARK_VOID 386
#define EFFECT_SLEEP_HIT 387
#define EFFECT_DOUBLE_SHOCK 388
#define EFFECT_SPECIAL_ATTACK_UP_HIT 389
#define EFFECT_VICTORY_DANCE 390
#define EFFECT_TEATIME 391
#define EFFECT_ATTACK_UP_USER_ALLY 392 // Howl 6th Gen
#define EFFECT_SHELL_TRAP 393
#define EFFECT_PSYBLADE 394
#define EFFECT_HYDRO_STEAM 395
#define EFFECT_HIT_SET_ENTRY_HAZARD 396
#define EFFECT_DIRE_CLAW 397
#define EFFECT_BARB_BARRAGE 398
#define EFFECT_REVIVAL_BLESSING 399
#define EFFECT_FROSTBITE_HIT 400
#define EFFECT_SNOWSCAPE 401
#define EFFECT_TRIPLE_ARROWS 402
#define EFFECT_INFERNAL_PARADE 403
#define EFFECT_TAKE_HEART 404
#define EFFECT_AXE_KICK 405
#define NUM_BATTLE_MOVE_EFFECTS 406
#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H