Replace EFFECT_DOUBLE_HIT with FLAG_TWO_STRIKES

This removes the need to have separate move effects for Twineedle, Double Iron Bash, and any custom two strike moves.
This commit is contained in:
BuffelSaft 2021-11-01 23:39:37 +13:00
parent fb25e1ac98
commit 0345dea918
8 changed files with 393 additions and 460 deletions

View File

@ -64,7 +64,6 @@ gBattleScriptsForMoveEffects::
.4byte BattleScript_EffectDragonRage @ EFFECT_DRAGON_RAGE
.4byte BattleScript_EffectTrap @ EFFECT_TRAP
.4byte BattleScript_EffectHealBlock @ EFFECT_HEAL_BLOCK
.4byte BattleScript_EffectHit @ EFFECT_DOUBLE_HIT
.4byte BattleScript_EffectRecoilIfMiss @ EFFECT_RECOIL_IF_MISS
.4byte BattleScript_EffectMist @ EFFECT_MIST
.4byte BattleScript_EffectFocusEnergy @ EFFECT_FOCUS_ENERGY
@ -97,7 +96,6 @@ gBattleScriptsForMoveEffects::
.4byte BattleScript_EffectHit @ EFFECT_EVASION_DOWN_HIT
.4byte BattleScript_EffectTwoTurnsAttack @ EFFECT_TWO_TURNS_ATTACK
.4byte BattleScript_EffectConfuseHit @ EFFECT_CONFUSE_HIT
.4byte BattleScript_EffectTwineedle @ EFFECT_TWINEEDLE
.4byte BattleScript_EffectHit @ EFFECT_VITAL_THROW
.4byte BattleScript_EffectSubstitute @ EFFECT_SUBSTITUTE
.4byte BattleScript_EffectRecharge @ EFFECT_RECHARGE
@ -379,12 +377,10 @@ gBattleScriptsForMoveEffects::
.4byte BattleScript_EffectHit @ EFFECT_DYNAMAX_DOUBLE_DMG
.4byte BattleScript_EffectDecorate @ EFFECT_DECORATE
.4byte BattleScript_EffectHit @ EFFECT_SNIPE_SHOT
.4byte BattleScript_EffectTripleHit @ EFFECT_TRIPLE_HIT
.4byte BattleScript_EffectRecoilHP25 @ EFFECT_RECOIL_HP_25
.4byte BattleScript_EffectStuffCheeks @ EFFECT_STUFF_CHEEKS
.4byte BattleScript_EffectDefenseDownHit @ EFFECT_GRAV_APPLE
.4byte BattleScript_EffectEvasionUpHit @ EFFECT_EVASION_UP_HIT
.4byte BattleScript_EffectDoubleIronBash @ EFFECT_DOUBLE_IRON_BASH
.4byte BattleScript_EffectGlitzyGlow @ EFFECT_GLITZY_GLOW
.4byte BattleScript_EffectBaddyBad @ EFFECT_BADDY_BAD
.4byte BattleScript_EffectSappySeed @ EFFECT_SAPPY_SEED
@ -577,16 +573,6 @@ BattleScript_EffectGlitzyGlow:
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectDoubleIronBash:
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
setmultihitcounter 2
initmultihitstring
sethword sMULTIHIT_EFFECT, MOVE_EFFECT_FLINCH
goto BattleScript_MultiHitLoop
BattleScript_EffectEvasionUpHit:
setmoveeffect MOVE_EFFECT_EVS_PLUS_1 | MOVE_EFFECT_AFFECTS_USER
goto BattleScript_EffectHit
@ -3207,26 +3193,6 @@ BattleScript_EffectTrap::
setmoveeffect MOVE_EFFECT_WRAP
goto BattleScript_EffectHit
BattleScript_EffectTripleHit::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
setmultihitcounter 3
initmultihitstring
sethword sMULTIHIT_EFFECT, 0
goto BattleScript_MultiHitLoop
BattleScript_EffectDoubleHit::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
setmultihitcounter 2
initmultihitstring
sethword sMULTIHIT_EFFECT, 0
goto BattleScript_MultiHitLoop
BattleScript_EffectRecoilIfMiss::
attackcanceler
accuracycheck BattleScript_MoveMissedDoDamage, ACC_CURR_MOVE

View File

@ -175,7 +175,4 @@ bool32 CanBeFrozen(u8 battlerId);
bool32 CanBeConfused(u8 battlerId);
bool32 IsBattlerTerrainAffected(u8 battlerId, u32 terrainFlag);
// Move checks
bool8 IsTwoStrikesMove(u16 move);
#endif // GUARD_BATTLE_UTIL_H

View File

@ -45,337 +45,333 @@
#define EFFECT_DRAGON_RAGE 41
#define EFFECT_TRAP 42
#define EFFECT_HEAL_BLOCK 43
#define EFFECT_DOUBLE_HIT 44
#define EFFECT_RECOIL_IF_MISS 45
#define EFFECT_MIST 46
#define EFFECT_FOCUS_ENERGY 47
#define EFFECT_RECOIL_25 48
#define EFFECT_CONFUSE 49
#define EFFECT_ATTACK_UP_2 50
#define EFFECT_DEFENSE_UP_2 51
#define EFFECT_SPEED_UP_2 52
#define EFFECT_SPECIAL_ATTACK_UP_2 53
#define EFFECT_SPECIAL_DEFENSE_UP_2 54
#define EFFECT_ACCURACY_UP_2 55
#define EFFECT_EVASION_UP_2 56
#define EFFECT_TRANSFORM 57
#define EFFECT_ATTACK_DOWN_2 58
#define EFFECT_DEFENSE_DOWN_2 59
#define EFFECT_SPEED_DOWN_2 60
#define EFFECT_SPECIAL_ATTACK_DOWN_2 61
#define EFFECT_SPECIAL_DEFENSE_DOWN_2 62
#define EFFECT_ACCURACY_DOWN_2 63
#define EFFECT_EVASION_DOWN_2 64
#define EFFECT_REFLECT 65
#define EFFECT_POISON 66
#define EFFECT_PARALYZE 67
#define EFFECT_ATTACK_DOWN_HIT 68
#define EFFECT_DEFENSE_DOWN_HIT 69
#define EFFECT_SPEED_DOWN_HIT 70
#define EFFECT_SPECIAL_ATTACK_DOWN_HIT 71
#define EFFECT_SPECIAL_DEFENSE_DOWN_HIT 72
#define EFFECT_ACCURACY_DOWN_HIT 73
#define EFFECT_EVASION_DOWN_HIT 74
#define EFFECT_TWO_TURNS_ATTACK 75
#define EFFECT_CONFUSE_HIT 76
#define EFFECT_TWINEEDLE 77
#define EFFECT_VITAL_THROW 78
#define EFFECT_SUBSTITUTE 79
#define EFFECT_RECHARGE 80
#define EFFECT_RAGE 81
#define EFFECT_MIMIC 82
#define EFFECT_METRONOME 83
#define EFFECT_LEECH_SEED 84
#define EFFECT_DO_NOTHING 85
#define EFFECT_DISABLE 86
#define EFFECT_LEVEL_DAMAGE 87
#define EFFECT_PSYWAVE 88
#define EFFECT_COUNTER 89
#define EFFECT_ENCORE 90
#define EFFECT_PAIN_SPLIT 91
#define EFFECT_SNORE 92
#define EFFECT_CONVERSION_2 93
#define EFFECT_LOCK_ON 94
#define EFFECT_SKETCH 95
#define EFFECT_HAMMER_ARM 96
#define EFFECT_SLEEP_TALK 97
#define EFFECT_DESTINY_BOND 98
#define EFFECT_FLAIL 99
#define EFFECT_SPITE 100
#define EFFECT_FALSE_SWIPE 101
#define EFFECT_HEAL_BELL 102
#define EFFECT_ALWAYS_CRIT 103
#define EFFECT_TRIPLE_KICK 104
#define EFFECT_THIEF 105
#define EFFECT_MEAN_LOOK 106
#define EFFECT_NIGHTMARE 107
#define EFFECT_MINIMIZE 108
#define EFFECT_CURSE 109
#define EFFECT_HEALING_WISH 110
#define EFFECT_PROTECT 111
#define EFFECT_SPIKES 112
#define EFFECT_FORESIGHT 113
#define EFFECT_PERISH_SONG 114
#define EFFECT_SANDSTORM 115
#define EFFECT_ENDURE 116
#define EFFECT_ROLLOUT 117
#define EFFECT_SWAGGER 118
#define EFFECT_FURY_CUTTER 119
#define EFFECT_ATTRACT 120
#define EFFECT_RETURN 121
#define EFFECT_PRESENT 122
#define EFFECT_FRUSTRATION 123
#define EFFECT_SAFEGUARD 124
#define EFFECT_UNUSED_125 125
#define EFFECT_MAGNITUDE 126
#define EFFECT_BATON_PASS 127
#define EFFECT_PURSUIT 128
#define EFFECT_RAPID_SPIN 129
#define EFFECT_SONICBOOM 130
#define EFFECT_CAPTIVATE 131
#define EFFECT_MORNING_SUN 132
#define EFFECT_SYNTHESIS 133
#define EFFECT_MOONLIGHT 134
#define EFFECT_HIDDEN_POWER 135
#define EFFECT_RAIN_DANCE 136
#define EFFECT_SUNNY_DAY 137
#define EFFECT_DEFENSE_UP_HIT 138
#define EFFECT_ATTACK_UP_HIT 139
#define EFFECT_ALL_STATS_UP_HIT 140
#define EFFECT_FELL_STINGER 141
#define EFFECT_BELLY_DRUM 142
#define EFFECT_PSYCH_UP 143
#define EFFECT_MIRROR_COAT 144
#define EFFECT_SKULL_BASH 145
#define EFFECT_TWISTER 146
#define EFFECT_EARTHQUAKE 147
#define EFFECT_FUTURE_SIGHT 148
#define EFFECT_GUST 149
#define EFFECT_FLINCH_MINIMIZE_HIT 150
#define EFFECT_SOLARBEAM 151
#define EFFECT_THUNDER 152
#define EFFECT_TELEPORT 153
#define EFFECT_BEAT_UP 154
#define EFFECT_SEMI_INVULNERABLE 155
#define EFFECT_DEFENSE_CURL 156
#define EFFECT_SOFTBOILED 157
#define EFFECT_FAKE_OUT 158
#define EFFECT_UPROAR 159
#define EFFECT_STOCKPILE 160
#define EFFECT_SPIT_UP 161
#define EFFECT_SWALLOW 162
#define EFFECT_WORRY_SEED 163
#define EFFECT_HAIL 164
#define EFFECT_TORMENT 165
#define EFFECT_FLATTER 166
#define EFFECT_WILL_O_WISP 167
#define EFFECT_MEMENTO 168
#define EFFECT_FACADE 169
#define EFFECT_FOCUS_PUNCH 170
#define EFFECT_SMELLINGSALT 171
#define EFFECT_FOLLOW_ME 172
#define EFFECT_NATURE_POWER 173
#define EFFECT_CHARGE 174
#define EFFECT_TAUNT 175
#define EFFECT_HELPING_HAND 176
#define EFFECT_TRICK 177
#define EFFECT_ROLE_PLAY 178
#define EFFECT_WISH 179
#define EFFECT_ASSIST 180
#define EFFECT_INGRAIN 181
#define EFFECT_SUPERPOWER 182
#define EFFECT_MAGIC_COAT 183
#define EFFECT_RECYCLE 184
#define EFFECT_REVENGE 185
#define EFFECT_BRICK_BREAK 186
#define EFFECT_YAWN 187
#define EFFECT_KNOCK_OFF 188
#define EFFECT_ENDEAVOR 189
#define EFFECT_ERUPTION 190
#define EFFECT_SKILL_SWAP 191
#define EFFECT_IMPRISON 192
#define EFFECT_REFRESH 193
#define EFFECT_GRUDGE 194
#define EFFECT_SNATCH 195
#define EFFECT_LOW_KICK 196
#define EFFECT_SECRET_POWER 197
#define EFFECT_RECOIL_33 198
#define EFFECT_TEETER_DANCE 199
#define EFFECT_HIT_ESCAPE 200
#define EFFECT_MUD_SPORT 201
#define EFFECT_POISON_FANG 202
#define EFFECT_WEATHER_BALL 203
#define EFFECT_OVERHEAT 204
#define EFFECT_TICKLE 205
#define EFFECT_COSMIC_POWER 206
#define EFFECT_SKY_UPPERCUT 207
#define EFFECT_BULK_UP 208
#define EFFECT_PLACEHOLDER 209
#define EFFECT_WATER_SPORT 210
#define EFFECT_CALM_MIND 211
#define EFFECT_DRAGON_DANCE 212
#define EFFECT_CAMOUFLAGE 213
#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_TWISTER 144
#define EFFECT_EARTHQUAKE 145
#define EFFECT_FUTURE_SIGHT 146
#define EFFECT_GUST 147
#define EFFECT_FLINCH_MINIMIZE_HIT 148
#define EFFECT_SOLARBEAM 149
#define EFFECT_THUNDER 150
#define EFFECT_TELEPORT 151
#define EFFECT_BEAT_UP 152
#define EFFECT_SEMI_INVULNERABLE 153
#define EFFECT_DEFENSE_CURL 154
#define EFFECT_SOFTBOILED 155
#define EFFECT_FAKE_OUT 156
#define EFFECT_UPROAR 157
#define EFFECT_STOCKPILE 158
#define EFFECT_SPIT_UP 159
#define EFFECT_SWALLOW 160
#define EFFECT_WORRY_SEED 161
#define EFFECT_HAIL 162
#define EFFECT_TORMENT 163
#define EFFECT_FLATTER 164
#define EFFECT_WILL_O_WISP 165
#define EFFECT_MEMENTO 166
#define EFFECT_FACADE 167
#define EFFECT_FOCUS_PUNCH 168
#define EFFECT_SMELLINGSALT 169
#define EFFECT_FOLLOW_ME 170
#define EFFECT_NATURE_POWER 171
#define EFFECT_CHARGE 172
#define EFFECT_TAUNT 173
#define EFFECT_HELPING_HAND 174
#define EFFECT_TRICK 175
#define EFFECT_ROLE_PLAY 176
#define EFFECT_WISH 177
#define EFFECT_ASSIST 178
#define EFFECT_INGRAIN 179
#define EFFECT_SUPERPOWER 180
#define EFFECT_MAGIC_COAT 181
#define EFFECT_RECYCLE 182
#define EFFECT_REVENGE 183
#define EFFECT_BRICK_BREAK 184
#define EFFECT_YAWN 185
#define EFFECT_KNOCK_OFF 186
#define EFFECT_ENDEAVOR 187
#define EFFECT_ERUPTION 188
#define EFFECT_SKILL_SWAP 189
#define EFFECT_IMPRISON 190
#define EFFECT_REFRESH 191
#define EFFECT_GRUDGE 192
#define EFFECT_SNATCH 193
#define EFFECT_LOW_KICK 194
#define EFFECT_SECRET_POWER 195
#define EFFECT_RECOIL_33 196
#define EFFECT_TEETER_DANCE 197
#define EFFECT_HIT_ESCAPE 198
#define EFFECT_MUD_SPORT 199
#define EFFECT_POISON_FANG 200
#define EFFECT_WEATHER_BALL 201
#define EFFECT_OVERHEAT 202
#define EFFECT_TICKLE 203
#define EFFECT_COSMIC_POWER 204
#define EFFECT_SKY_UPPERCUT 205
#define EFFECT_BULK_UP 206
#define EFFECT_PLACEHOLDER 207
#define EFFECT_WATER_SPORT 208
#define EFFECT_CALM_MIND 209
#define EFFECT_DRAGON_DANCE 210
#define EFFECT_CAMOUFLAGE 211
// New move effects
#define EFFECT_PLEDGE 214
#define EFFECT_FLING 215
#define EFFECT_NATURAL_GIFT 216
#define EFFECT_WAKE_UP_SLAP 217
#define EFFECT_WRING_OUT 218
#define EFFECT_HEX 219
#define EFFECT_ASSURANCE 220
#define EFFECT_TRUMP_CARD 221
#define EFFECT_ACROBATICS 222
#define EFFECT_HEAT_CRASH 223
#define EFFECT_PUNISHMENT 224
#define EFFECT_STORED_POWER 225
#define EFFECT_ELECTRO_BALL 226
#define EFFECT_GYRO_BALL 227
#define EFFECT_ECHOED_VOICE 228
#define EFFECT_PAYBACK 229
#define EFFECT_ROUND 230
#define EFFECT_BRINE 231
#define EFFECT_VENOSHOCK 232
#define EFFECT_RETALIATE 233
#define EFFECT_BULLDOZE 234
#define EFFECT_FOUL_PLAY 235
#define EFFECT_PSYSHOCK 236
#define EFFECT_ROOST 237
#define EFFECT_GRAVITY 238
#define EFFECT_MIRACLE_EYE 239
#define EFFECT_TAILWIND 240
#define EFFECT_EMBARGO 241
#define EFFECT_AQUA_RING 242
#define EFFECT_TRICK_ROOM 243
#define EFFECT_WONDER_ROOM 244
#define EFFECT_MAGIC_ROOM 245
#define EFFECT_MAGNET_RISE 246
#define EFFECT_TOXIC_SPIKES 247
#define EFFECT_GASTRO_ACID 248
#define EFFECT_STEALTH_ROCK 249
#define EFFECT_TELEKINESIS 250
#define EFFECT_POWER_SWAP 251
#define EFFECT_GUARD_SWAP 252
#define EFFECT_HEART_SWAP 253
#define EFFECT_POWER_SPLIT 254
#define EFFECT_GUARD_SPLIT 255
#define EFFECT_STICKY_WEB 256
#define EFFECT_METAL_BURST 257
#define EFFECT_LUCKY_CHANT 258
#define EFFECT_SUCKER_PUNCH 259
#define EFFECT_SPECIAL_DEFENSE_DOWN_HIT_2 260
#define EFFECT_SIMPLE_BEAM 261
#define EFFECT_ENTRAINMENT 262
#define EFFECT_HEAL_PULSE 263
#define EFFECT_QUASH 264
#define EFFECT_ION_DELUGE 265
#define EFFECT_FREEZE_DRY 266
#define EFFECT_TOPSY_TURVY 267
#define EFFECT_MISTY_TERRAIN 268
#define EFFECT_GRASSY_TERRAIN 269
#define EFFECT_ELECTRIC_TERRAIN 270
#define EFFECT_PSYCHIC_TERRAIN 271
#define EFFECT_ATTACK_ACCURACY_UP 272
#define EFFECT_ATTACK_SPATK_UP 273
#define EFFECT_HURRICANE 274
#define EFFECT_TWO_TYPED_MOVE 275
#define EFFECT_ME_FIRST 276
#define EFFECT_SPEED_UP_HIT 277
#define EFFECT_QUIVER_DANCE 278
#define EFFECT_COIL 279
#define EFFECT_ELECTRIFY 280
#define EFFECT_SCALD 281
#define EFFECT_REFLECT_TYPE 282
#define EFFECT_SOAK 283
#define EFFECT_GROWTH 284
#define EFFECT_CLOSE_COMBAT 285
#define EFFECT_LAST_RESORT 286
#define EFFECT_RECOIL_33_STATUS 287
#define EFFECT_FLINCH_STATUS 288
#define EFFECT_RECOIL_50 289
#define EFFECT_SHELL_SMASH 290
#define EFFECT_SHIFT_GEAR 291
#define EFFECT_DEFENSE_UP_3 292
#define EFFECT_NOBLE_ROAR 293
#define EFFECT_VENOM_DRENCH 294
#define EFFECT_TOXIC_THREAD 295
#define EFFECT_CLEAR_SMOG 296
#define EFFECT_HIT_SWITCH_TARGET 297
#define EFFECT_FINAL_GAMBIT 298
#define EFFECT_CHANGE_TYPE_ON_ITEM 299
#define EFFECT_AUTOTOMIZE 300
#define EFFECT_COPYCAT 301
#define EFFECT_DEFOG 302
#define EFFECT_HIT_ENEMY_HEAL_ALLY 303
#define EFFECT_SMACK_DOWN 304
#define EFFECT_SYNCHRONOISE 305
#define EFFECT_PSYCHO_SHIFT 306
#define EFFECT_POWER_TRICK 307
#define EFFECT_FLAME_BURST 308
#define EFFECT_AFTER_YOU 309
#define EFFECT_BESTOW 310
#define EFFECT_ROTOTILLER 311
#define EFFECT_FLOWER_SHIELD 312
#define EFFECT_HIT_PREVENT_ESCAPE 313
#define EFFECT_SPEED_SWAP 314
#define EFFECT_DEFENSE_UP2_HIT 315
#define EFFECT_REVELATION_DANCE 316
#define EFFECT_AURORA_VEIL 317
#define EFFECT_THIRD_TYPE 318
#define EFFECT_FEINT 319
#define EFFECT_SPARKLING_ARIA 320
#define EFFECT_ACUPRESSURE 321
#define EFFECT_AROMATIC_MIST 322
#define EFFECT_POWDER 323
#define EFFECT_SP_ATTACK_UP_HIT 324
#define EFFECT_BELCH 325
#define EFFECT_PARTING_SHOT 326
#define EFFECT_SPECTRAL_THIEF 327
#define EFFECT_V_CREATE 328
#define EFFECT_MAT_BLOCK 329
#define EFFECT_STOMPING_TANTRUM 330
#define EFFECT_CORE_ENFORCER 331
#define EFFECT_INSTRUCT 332
#define EFFECT_THROAT_CHOP 333
#define EFFECT_LASER_FOCUS 334
#define EFFECT_MAGNETIC_FLUX 335
#define EFFECT_GEAR_UP 336
#define EFFECT_INCINERATE 337
#define EFFECT_BUG_BITE 338
#define EFFECT_STRENGTH_SAP 339
#define EFFECT_MIND_BLOWN 340
#define EFFECT_PURIFY 341
#define EFFECT_BURN_UP 342
#define EFFECT_SHORE_UP 343
#define EFFECT_GEOMANCY 344
#define EFFECT_FAIRY_LOCK 345
#define EFFECT_ALLY_SWITCH 346
#define EFFECT_SLEEP_HIT 347
#define EFFECT_ATTACKER_DEFENSE_DOWN_HIT 348
#define EFFECT_BODY_PRESS 349
#define EFFECT_EERIE_SPELL 350
#define EFFECT_JUNGLE_HEALING 351
#define EFFECT_COACHING 352
#define EFFECT_LASH_OUT 353
#define EFFECT_GRASSY_GLIDE 354
#define EFFECT_REMOVE_TERRAIN 355
#define EFFECT_DYNAMAX_DOUBLE_DMG 356
#define EFFECT_DECORATE 357
#define EFFECT_SNIPE_SHOT 358
#define EFFECT_TRIPLE_HIT 359
#define EFFECT_RECOIL_HP_25 360
#define EFFECT_STUFF_CHEEKS 361
#define EFFECT_GRAV_APPLE 362
#define EFFECT_EVASION_UP_HIT 363
#define EFFECT_DOUBLE_IRON_BASH 364
#define EFFECT_GLITZY_GLOW 365
#define EFFECT_BADDY_BAD 366
#define EFFECT_SAPPY_SEED 367
#define EFFECT_FREEZY_FROST 368
#define EFFECT_SPARKLY_SWIRL 369
#define EFFECT_PLASMA_FISTS 370
#define EFFECT_HYPERSPACE_FURY 371
// New move effects 212
#define EFFECT_PLEDGE 213
#define EFFECT_FLING 214
#define EFFECT_NATURAL_GIFT 215
#define EFFECT_WAKE_UP_SLAP 216
#define EFFECT_WRING_OUT 217
#define EFFECT_HEX 218
#define EFFECT_ASSURANCE 219
#define EFFECT_TRUMP_CARD 220
#define EFFECT_ACROBATICS 221
#define EFFECT_HEAT_CRASH 222
#define EFFECT_PUNISHMENT 223
#define EFFECT_STORED_POWER 224
#define EFFECT_ELECTRO_BALL 225
#define EFFECT_GYRO_BALL 226
#define EFFECT_ECHOED_VOICE 227
#define EFFECT_PAYBACK 228
#define EFFECT_ROUND 229
#define EFFECT_BRINE 230
#define EFFECT_VENOSHOCK 231
#define EFFECT_RETALIATE 232
#define EFFECT_BULLDOZE 233
#define EFFECT_FOUL_PLAY 234
#define EFFECT_PSYSHOCK 235
#define EFFECT_ROOST 236
#define EFFECT_GRAVITY 237
#define EFFECT_MIRACLE_EYE 238
#define EFFECT_TAILWIND 239
#define EFFECT_EMBARGO 240
#define EFFECT_AQUA_RING 241
#define EFFECT_TRICK_ROOM 242
#define EFFECT_WONDER_ROOM 243
#define EFFECT_MAGIC_ROOM 244
#define EFFECT_MAGNET_RISE 245
#define EFFECT_TOXIC_SPIKES 246
#define EFFECT_GASTRO_ACID 247
#define EFFECT_STEALTH_ROCK 248
#define EFFECT_TELEKINESIS 249
#define EFFECT_POWER_SWAP 250
#define EFFECT_GUARD_SWAP 251
#define EFFECT_HEART_SWAP 252
#define EFFECT_POWER_SPLIT 253
#define EFFECT_GUARD_SPLIT 254
#define EFFECT_STICKY_WEB 255
#define EFFECT_METAL_BURST 256
#define EFFECT_LUCKY_CHANT 257
#define EFFECT_SUCKER_PUNCH 258
#define EFFECT_SPECIAL_DEFENSE_DOWN_HIT_2 259
#define EFFECT_SIMPLE_BEAM 260
#define EFFECT_ENTRAINMENT 261
#define EFFECT_HEAL_PULSE 262
#define EFFECT_QUASH 263
#define EFFECT_ION_DELUGE 264
#define EFFECT_FREEZE_DRY 265
#define EFFECT_TOPSY_TURVY 266
#define EFFECT_MISTY_TERRAIN 267
#define EFFECT_GRASSY_TERRAIN 268
#define EFFECT_ELECTRIC_TERRAIN 269
#define EFFECT_PSYCHIC_TERRAIN 270
#define EFFECT_ATTACK_ACCURACY_UP 271
#define EFFECT_ATTACK_SPATK_UP 272
#define EFFECT_HURRICANE 273
#define EFFECT_TWO_TYPED_MOVE 274
#define EFFECT_ME_FIRST 275
#define EFFECT_SPEED_UP_HIT 276
#define EFFECT_QUIVER_DANCE 277
#define EFFECT_COIL 278
#define EFFECT_ELECTRIFY 279
#define EFFECT_SCALD 280
#define EFFECT_REFLECT_TYPE 281
#define EFFECT_SOAK 282
#define EFFECT_GROWTH 283
#define EFFECT_CLOSE_COMBAT 284
#define EFFECT_LAST_RESORT 285
#define EFFECT_RECOIL_33_STATUS 286
#define EFFECT_FLINCH_STATUS 287
#define EFFECT_RECOIL_50 288
#define EFFECT_SHELL_SMASH 289
#define EFFECT_SHIFT_GEAR 290
#define EFFECT_DEFENSE_UP_3 291
#define EFFECT_NOBLE_ROAR 292
#define EFFECT_VENOM_DRENCH 293
#define EFFECT_TOXIC_THREAD 294
#define EFFECT_CLEAR_SMOG 295
#define EFFECT_HIT_SWITCH_TARGET 296
#define EFFECT_FINAL_GAMBIT 297
#define EFFECT_CHANGE_TYPE_ON_ITEM 298
#define EFFECT_AUTOTOMIZE 299
#define EFFECT_COPYCAT 300
#define EFFECT_DEFOG 301
#define EFFECT_HIT_ENEMY_HEAL_ALLY 302
#define EFFECT_SMACK_DOWN 303
#define EFFECT_SYNCHRONOISE 304
#define EFFECT_PSYCHO_SHIFT 305
#define EFFECT_POWER_TRICK 306
#define EFFECT_FLAME_BURST 307
#define EFFECT_AFTER_YOU 308
#define EFFECT_BESTOW 309
#define EFFECT_ROTOTILLER 310
#define EFFECT_FLOWER_SHIELD 311
#define EFFECT_HIT_PREVENT_ESCAPE 312
#define EFFECT_SPEED_SWAP 313
#define EFFECT_DEFENSE_UP2_HIT 314
#define EFFECT_REVELATION_DANCE 315
#define EFFECT_AURORA_VEIL 316
#define EFFECT_THIRD_TYPE 317
#define EFFECT_FEINT 318
#define EFFECT_SPARKLING_ARIA 319
#define EFFECT_ACUPRESSURE 320
#define EFFECT_AROMATIC_MIST 321
#define EFFECT_POWDER 322
#define EFFECT_SP_ATTACK_UP_HIT 323
#define EFFECT_BELCH 324
#define EFFECT_PARTING_SHOT 325
#define EFFECT_SPECTRAL_THIEF 326
#define EFFECT_V_CREATE 327
#define EFFECT_MAT_BLOCK 328
#define EFFECT_STOMPING_TANTRUM 329
#define EFFECT_CORE_ENFORCER 330
#define EFFECT_INSTRUCT 331
#define EFFECT_THROAT_CHOP 332
#define EFFECT_LASER_FOCUS 333
#define EFFECT_MAGNETIC_FLUX 334
#define EFFECT_GEAR_UP 335
#define EFFECT_INCINERATE 336
#define EFFECT_BUG_BITE 337
#define EFFECT_STRENGTH_SAP 338
#define EFFECT_MIND_BLOWN 339
#define EFFECT_PURIFY 340
#define EFFECT_BURN_UP 341
#define EFFECT_SHORE_UP 342
#define EFFECT_GEOMANCY 343
#define EFFECT_FAIRY_LOCK 344
#define EFFECT_ALLY_SWITCH 345
#define EFFECT_SLEEP_HIT 346
#define EFFECT_ATTACKER_DEFENSE_DOWN_HIT 347
#define EFFECT_BODY_PRESS 348
#define EFFECT_EERIE_SPELL 349
#define EFFECT_JUNGLE_HEALING 350
#define EFFECT_COACHING 351
#define EFFECT_LASH_OUT 352
#define EFFECT_GRASSY_GLIDE 353
#define EFFECT_REMOVE_TERRAIN 354
#define EFFECT_DYNAMAX_DOUBLE_DMG 355
#define EFFECT_DECORATE 356
#define EFFECT_SNIPE_SHOT 357
#define EFFECT_RECOIL_HP_25 358
#define EFFECT_STUFF_CHEEKS 359
#define EFFECT_GRAV_APPLE 360
#define EFFECT_EVASION_UP_HIT 361
#define EFFECT_GLITZY_GLOW 362
#define EFFECT_BADDY_BAD 363
#define EFFECT_SAPPY_SEED 364
#define EFFECT_FREEZY_FROST 365
#define EFFECT_SPARKLY_SWIRL 366
#define EFFECT_PLASMA_FISTS 367
#define EFFECT_HYPERSPACE_FURY 368
#define NUM_BATTLE_MOVE_EFFECTS 372
#define NUM_BATTLE_MOVE_EFFECTS 369
#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H

View File

@ -308,6 +308,7 @@
#define FLAG_DMG_UNGROUNDED_IGNORE_TYPE_IF_FLYING (1 << 24) // Makes a Ground type move do 1x damage to flying and levitating targets
#define FLAG_THAW_USER (1 << 25)
#define FLAG_HIT_IN_SUBSTITUTE (1 << 26) // Hyperspace Fury
#define FLAG_TWO_STRIKES (1 << 27) // A move with this flag will strike twice, and may apply its effect on each hit
// Split defines.
#define SPLIT_PHYSICAL 0x0

View File

@ -3241,7 +3241,6 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score)
score += min(CountPositiveStatStages(battlerDef), 4);
break;
case EFFECT_MULTI_HIT:
case EFFECT_DOUBLE_HIT:
case EFFECT_TRIPLE_KICK:
break;
case EFFECT_CONVERSION:

View File

@ -130,7 +130,7 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] =
[EFFECT_DRAGON_RAGE] = 2,
[EFFECT_TRAP] = 4,
// [EFFECT_HIGH_CRITICAL] = 1,
[EFFECT_DOUBLE_HIT] = 1,
// [EFFECT_DOUBLE_HIT] = 1,
[EFFECT_RECOIL_IF_MISS] = 1,
[EFFECT_MIST] = 5,
[EFFECT_FOCUS_ENERGY] = 1,
@ -163,7 +163,7 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] =
[EFFECT_EVASION_DOWN_HIT] = 1,
// [EFFECT_SKY_ATTACK] = 4,
[EFFECT_CONFUSE_HIT] = 1,
[EFFECT_TWINEEDLE] = 1,
// [EFFECT_TWINEEDLE] = 1,
[EFFECT_VITAL_THROW] = 1,
[EFFECT_SUBSTITUTE] = 4,
[EFFECT_RECHARGE] = 5,

View File

@ -217,20 +217,6 @@ static const u16 sEntrainmentTargetSimpleBeamBannedAbilities[] =
ABILITY_GULP_MISSILE,
};
static const u16 sTwoStrikeMoves[] =
{
MOVE_BONEMERANG,
MOVE_DOUBLE_HIT,
MOVE_DOUBLE_IRON_BASH,
MOVE_DOUBLE_KICK,
MOVE_DRAGON_DARTS,
MOVE_DUAL_CHOP,
MOVE_DUAL_WINGBEAT,
MOVE_GEAR_GRIND,
MOVE_TWINEEDLE,
0xFFFF
};
static u8 CalcBeatUpPower(void)
{
struct Pokemon *party;
@ -3571,7 +3557,7 @@ u8 AtkCanceller_UnableToUseMove(void)
PREPARE_BYTE_NUMBER_BUFFER(gBattleScripting.multihitString, 1, 0)
}
else if (IsTwoStrikesMove(gCurrentMove))
else if (gBattleMoves[gCurrentMove].flags & FLAG_TWO_STRIKES)
{
gMultiHitCounter = 2;
PREPARE_BYTE_NUMBER_BUFFER(gBattleScripting.multihitString, 1, 0)
@ -9714,15 +9700,3 @@ u16 GetUsedHeldItem(u8 battler)
{
return gBattleStruct->usedHeldItems[gBattlerPartyIndexes[battler]][GetBattlerSide(battler)];
}
bool8 IsTwoStrikesMove(u16 move)
{
u32 i;
for (i = 0; i < ARRAY_COUNT(sTwoStrikeMoves); i++)
{
if (move == sTwoStrikeMoves[i])
return TRUE;
}
return FALSE;
}

View File

@ -370,7 +370,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
[MOVE_DOUBLE_KICK] =
{
.effect = EFFECT_DOUBLE_HIT,
.effect = EFFECT_HIT,
.power = 30,
.type = TYPE_FIGHTING,
.accuracy = 100,
@ -378,7 +378,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_TWO_STRIKES,
.split = SPLIT_PHYSICAL,
},
@ -649,7 +649,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST,
.flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_TWO_STRIKES,
.split = SPLIT_PHYSICAL,
},
@ -2452,7 +2452,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
[MOVE_BONEMERANG] =
{
.effect = EFFECT_DOUBLE_HIT,
.effect = EFFECT_HIT,
.power = 50,
.type = TYPE_GROUND,
.accuracy = 90,
@ -2460,7 +2460,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
.flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_TWO_STRIKES,
.split = SPLIT_PHYSICAL,
},
@ -7259,7 +7259,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
[MOVE_DOUBLE_HIT] =
{
.effect = EFFECT_DOUBLE_HIT,
.effect = EFFECT_HIT,
.power = 35,
.type = TYPE_NORMAL,
.accuracy = 90,
@ -7267,7 +7267,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_TWO_STRIKES,
.split = SPLIT_PHYSICAL,
},
@ -8359,7 +8359,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
[MOVE_DUAL_CHOP] =
{
.effect = EFFECT_DOUBLE_HIT,
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_DRAGON,
.accuracy = 90,
@ -8367,7 +8367,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_TWO_STRIKES,
.split = SPLIT_PHYSICAL,
},
@ -8567,7 +8567,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
[MOVE_GEAR_GRIND] =
{
.effect = EFFECT_DOUBLE_HIT,
.effect = EFFECT_HIT,
.power = 50,
.type = TYPE_STEEL,
.accuracy = 85,
@ -8575,7 +8575,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_TWO_STRIKES,
.split = SPLIT_PHYSICAL,
},
@ -10726,9 +10726,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
[MOVE_DOUBLE_IRON_BASH] =
{
#if B_UPDATED_MOVE_DATA >= GEN_8
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_IRON_FIST_BOOST | FLAG_SHEER_FORCE_BOOST,
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_IRON_FIST_BOOST | FLAG_SHEER_FORCE_BOOST | FLAG_TWO_STRIKES,
#else
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_DMG_MINIMIZE | FLAG_IRON_FIST_BOOST | FLAG_SHEER_FORCE_BOOST,
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_DMG_MINIMIZE | FLAG_IRON_FIST_BOOST | FLAG_SHEER_FORCE_BOOST | FLAG_TWO_STRIKES,
#endif
.effect = EFFECT_FLINCH_HIT,
.power = 60,
@ -10850,7 +10850,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
.flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_TWO_STRIKES,
.split = SPLIT_PHYSICAL,
},
@ -11472,7 +11472,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
[MOVE_DUAL_WINGBEAT] =
{
.effect = EFFECT_DOUBLE_HIT,
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_FLYING,
.accuracy = 90,
@ -11480,7 +11480,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_TWO_STRIKES,
.split = SPLIT_PHYSICAL,
},