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_EffectDragonRage @ EFFECT_DRAGON_RAGE
.4byte BattleScript_EffectTrap @ EFFECT_TRAP .4byte BattleScript_EffectTrap @ EFFECT_TRAP
.4byte BattleScript_EffectHealBlock @ EFFECT_HEAL_BLOCK .4byte BattleScript_EffectHealBlock @ EFFECT_HEAL_BLOCK
.4byte BattleScript_EffectHit @ EFFECT_DOUBLE_HIT
.4byte BattleScript_EffectRecoilIfMiss @ EFFECT_RECOIL_IF_MISS .4byte BattleScript_EffectRecoilIfMiss @ EFFECT_RECOIL_IF_MISS
.4byte BattleScript_EffectMist @ EFFECT_MIST .4byte BattleScript_EffectMist @ EFFECT_MIST
.4byte BattleScript_EffectFocusEnergy @ EFFECT_FOCUS_ENERGY .4byte BattleScript_EffectFocusEnergy @ EFFECT_FOCUS_ENERGY
@ -97,7 +96,6 @@ gBattleScriptsForMoveEffects::
.4byte BattleScript_EffectHit @ EFFECT_EVASION_DOWN_HIT .4byte BattleScript_EffectHit @ EFFECT_EVASION_DOWN_HIT
.4byte BattleScript_EffectTwoTurnsAttack @ EFFECT_TWO_TURNS_ATTACK .4byte BattleScript_EffectTwoTurnsAttack @ EFFECT_TWO_TURNS_ATTACK
.4byte BattleScript_EffectConfuseHit @ EFFECT_CONFUSE_HIT .4byte BattleScript_EffectConfuseHit @ EFFECT_CONFUSE_HIT
.4byte BattleScript_EffectTwineedle @ EFFECT_TWINEEDLE
.4byte BattleScript_EffectHit @ EFFECT_VITAL_THROW .4byte BattleScript_EffectHit @ EFFECT_VITAL_THROW
.4byte BattleScript_EffectSubstitute @ EFFECT_SUBSTITUTE .4byte BattleScript_EffectSubstitute @ EFFECT_SUBSTITUTE
.4byte BattleScript_EffectRecharge @ EFFECT_RECHARGE .4byte BattleScript_EffectRecharge @ EFFECT_RECHARGE
@ -379,12 +377,10 @@ gBattleScriptsForMoveEffects::
.4byte BattleScript_EffectHit @ EFFECT_DYNAMAX_DOUBLE_DMG .4byte BattleScript_EffectHit @ EFFECT_DYNAMAX_DOUBLE_DMG
.4byte BattleScript_EffectDecorate @ EFFECT_DECORATE .4byte BattleScript_EffectDecorate @ EFFECT_DECORATE
.4byte BattleScript_EffectHit @ EFFECT_SNIPE_SHOT .4byte BattleScript_EffectHit @ EFFECT_SNIPE_SHOT
.4byte BattleScript_EffectTripleHit @ EFFECT_TRIPLE_HIT
.4byte BattleScript_EffectRecoilHP25 @ EFFECT_RECOIL_HP_25 .4byte BattleScript_EffectRecoilHP25 @ EFFECT_RECOIL_HP_25
.4byte BattleScript_EffectStuffCheeks @ EFFECT_STUFF_CHEEKS .4byte BattleScript_EffectStuffCheeks @ EFFECT_STUFF_CHEEKS
.4byte BattleScript_EffectDefenseDownHit @ EFFECT_GRAV_APPLE .4byte BattleScript_EffectDefenseDownHit @ EFFECT_GRAV_APPLE
.4byte BattleScript_EffectEvasionUpHit @ EFFECT_EVASION_UP_HIT .4byte BattleScript_EffectEvasionUpHit @ EFFECT_EVASION_UP_HIT
.4byte BattleScript_EffectDoubleIronBash @ EFFECT_DOUBLE_IRON_BASH
.4byte BattleScript_EffectGlitzyGlow @ EFFECT_GLITZY_GLOW .4byte BattleScript_EffectGlitzyGlow @ EFFECT_GLITZY_GLOW
.4byte BattleScript_EffectBaddyBad @ EFFECT_BADDY_BAD .4byte BattleScript_EffectBaddyBad @ EFFECT_BADDY_BAD
.4byte BattleScript_EffectSappySeed @ EFFECT_SAPPY_SEED .4byte BattleScript_EffectSappySeed @ EFFECT_SAPPY_SEED
@ -577,16 +573,6 @@ BattleScript_EffectGlitzyGlow:
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd 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: BattleScript_EffectEvasionUpHit:
setmoveeffect MOVE_EFFECT_EVS_PLUS_1 | MOVE_EFFECT_AFFECTS_USER setmoveeffect MOVE_EFFECT_EVS_PLUS_1 | MOVE_EFFECT_AFFECTS_USER
goto BattleScript_EffectHit goto BattleScript_EffectHit
@ -3207,26 +3193,6 @@ BattleScript_EffectTrap::
setmoveeffect MOVE_EFFECT_WRAP setmoveeffect MOVE_EFFECT_WRAP
goto BattleScript_EffectHit 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:: BattleScript_EffectRecoilIfMiss::
attackcanceler attackcanceler
accuracycheck BattleScript_MoveMissedDoDamage, ACC_CURR_MOVE accuracycheck BattleScript_MoveMissedDoDamage, ACC_CURR_MOVE

View File

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

View File

@ -1,381 +1,377 @@
#ifndef GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H #ifndef GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
#define GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H #define GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
#define EFFECT_HIT 0 #define EFFECT_HIT 0
#define EFFECT_SLEEP 1 #define EFFECT_SLEEP 1
#define EFFECT_POISON_HIT 2 #define EFFECT_POISON_HIT 2
#define EFFECT_ABSORB 3 #define EFFECT_ABSORB 3
#define EFFECT_BURN_HIT 4 #define EFFECT_BURN_HIT 4
#define EFFECT_FREEZE_HIT 5 #define EFFECT_FREEZE_HIT 5
#define EFFECT_PARALYZE_HIT 6 #define EFFECT_PARALYZE_HIT 6
#define EFFECT_EXPLOSION 7 #define EFFECT_EXPLOSION 7
#define EFFECT_DREAM_EATER 8 #define EFFECT_DREAM_EATER 8
#define EFFECT_MIRROR_MOVE 9 #define EFFECT_MIRROR_MOVE 9
#define EFFECT_ATTACK_UP 10 #define EFFECT_ATTACK_UP 10
#define EFFECT_DEFENSE_UP 11 #define EFFECT_DEFENSE_UP 11
#define EFFECT_SPEED_UP 12 #define EFFECT_SPEED_UP 12
#define EFFECT_SPECIAL_ATTACK_UP 13 #define EFFECT_SPECIAL_ATTACK_UP 13
#define EFFECT_SPECIAL_DEFENSE_UP 14 #define EFFECT_SPECIAL_DEFENSE_UP 14
#define EFFECT_ACCURACY_UP 15 #define EFFECT_ACCURACY_UP 15
#define EFFECT_EVASION_UP 16 #define EFFECT_EVASION_UP 16
#define EFFECT_SPECIAL_ATTACK_UP_3 17 #define EFFECT_SPECIAL_ATTACK_UP_3 17
#define EFFECT_ATTACK_DOWN 18 #define EFFECT_ATTACK_DOWN 18
#define EFFECT_DEFENSE_DOWN 19 #define EFFECT_DEFENSE_DOWN 19
#define EFFECT_SPEED_DOWN 20 #define EFFECT_SPEED_DOWN 20
#define EFFECT_SPECIAL_ATTACK_DOWN 21 #define EFFECT_SPECIAL_ATTACK_DOWN 21
#define EFFECT_SPECIAL_DEFENSE_DOWN 22 #define EFFECT_SPECIAL_DEFENSE_DOWN 22
#define EFFECT_ACCURACY_DOWN 23 #define EFFECT_ACCURACY_DOWN 23
#define EFFECT_EVASION_DOWN 24 #define EFFECT_EVASION_DOWN 24
#define EFFECT_HAZE 25 #define EFFECT_HAZE 25
#define EFFECT_BIDE 26 #define EFFECT_BIDE 26
#define EFFECT_RAMPAGE 27 #define EFFECT_RAMPAGE 27
#define EFFECT_ROAR 28 #define EFFECT_ROAR 28
#define EFFECT_MULTI_HIT 29 #define EFFECT_MULTI_HIT 29
#define EFFECT_CONVERSION 30 #define EFFECT_CONVERSION 30
#define EFFECT_FLINCH_HIT 31 #define EFFECT_FLINCH_HIT 31
#define EFFECT_RESTORE_HP 32 #define EFFECT_RESTORE_HP 32
#define EFFECT_TOXIC 33 #define EFFECT_TOXIC 33
#define EFFECT_PAY_DAY 34 #define EFFECT_PAY_DAY 34
#define EFFECT_LIGHT_SCREEN 35 #define EFFECT_LIGHT_SCREEN 35
#define EFFECT_TRI_ATTACK 36 #define EFFECT_TRI_ATTACK 36
#define EFFECT_REST 37 #define EFFECT_REST 37
#define EFFECT_OHKO 38 #define EFFECT_OHKO 38
#define EFFECT_FUSION_COMBO 39 #define EFFECT_FUSION_COMBO 39
#define EFFECT_SUPER_FANG 40 #define EFFECT_SUPER_FANG 40
#define EFFECT_DRAGON_RAGE 41 #define EFFECT_DRAGON_RAGE 41
#define EFFECT_TRAP 42 #define EFFECT_TRAP 42
#define EFFECT_HEAL_BLOCK 43 #define EFFECT_HEAL_BLOCK 43
#define EFFECT_DOUBLE_HIT 44 #define EFFECT_RECOIL_IF_MISS 44
#define EFFECT_RECOIL_IF_MISS 45 #define EFFECT_MIST 45
#define EFFECT_MIST 46 #define EFFECT_FOCUS_ENERGY 46
#define EFFECT_FOCUS_ENERGY 47 #define EFFECT_RECOIL_25 47
#define EFFECT_RECOIL_25 48 #define EFFECT_CONFUSE 48
#define EFFECT_CONFUSE 49 #define EFFECT_ATTACK_UP_2 49
#define EFFECT_ATTACK_UP_2 50 #define EFFECT_DEFENSE_UP_2 50
#define EFFECT_DEFENSE_UP_2 51 #define EFFECT_SPEED_UP_2 51
#define EFFECT_SPEED_UP_2 52 #define EFFECT_SPECIAL_ATTACK_UP_2 52
#define EFFECT_SPECIAL_ATTACK_UP_2 53 #define EFFECT_SPECIAL_DEFENSE_UP_2 53
#define EFFECT_SPECIAL_DEFENSE_UP_2 54 #define EFFECT_ACCURACY_UP_2 54
#define EFFECT_ACCURACY_UP_2 55 #define EFFECT_EVASION_UP_2 55
#define EFFECT_EVASION_UP_2 56 #define EFFECT_TRANSFORM 56
#define EFFECT_TRANSFORM 57 #define EFFECT_ATTACK_DOWN_2 57
#define EFFECT_ATTACK_DOWN_2 58 #define EFFECT_DEFENSE_DOWN_2 58
#define EFFECT_DEFENSE_DOWN_2 59 #define EFFECT_SPEED_DOWN_2 59
#define EFFECT_SPEED_DOWN_2 60 #define EFFECT_SPECIAL_ATTACK_DOWN_2 60
#define EFFECT_SPECIAL_ATTACK_DOWN_2 61 #define EFFECT_SPECIAL_DEFENSE_DOWN_2 61
#define EFFECT_SPECIAL_DEFENSE_DOWN_2 62 #define EFFECT_ACCURACY_DOWN_2 62
#define EFFECT_ACCURACY_DOWN_2 63 #define EFFECT_EVASION_DOWN_2 63
#define EFFECT_EVASION_DOWN_2 64 #define EFFECT_REFLECT 64
#define EFFECT_REFLECT 65 #define EFFECT_POISON 65
#define EFFECT_POISON 66 #define EFFECT_PARALYZE 66
#define EFFECT_PARALYZE 67 #define EFFECT_ATTACK_DOWN_HIT 67
#define EFFECT_ATTACK_DOWN_HIT 68 #define EFFECT_DEFENSE_DOWN_HIT 68
#define EFFECT_DEFENSE_DOWN_HIT 69 #define EFFECT_SPEED_DOWN_HIT 69
#define EFFECT_SPEED_DOWN_HIT 70 #define EFFECT_SPECIAL_ATTACK_DOWN_HIT 70
#define EFFECT_SPECIAL_ATTACK_DOWN_HIT 71 #define EFFECT_SPECIAL_DEFENSE_DOWN_HIT 71
#define EFFECT_SPECIAL_DEFENSE_DOWN_HIT 72 #define EFFECT_ACCURACY_DOWN_HIT 72
#define EFFECT_ACCURACY_DOWN_HIT 73 #define EFFECT_EVASION_DOWN_HIT 73
#define EFFECT_EVASION_DOWN_HIT 74 #define EFFECT_TWO_TURNS_ATTACK 74
#define EFFECT_TWO_TURNS_ATTACK 75 #define EFFECT_CONFUSE_HIT 75
#define EFFECT_CONFUSE_HIT 76 #define EFFECT_VITAL_THROW 76
#define EFFECT_TWINEEDLE 77 #define EFFECT_SUBSTITUTE 77
#define EFFECT_VITAL_THROW 78 #define EFFECT_RECHARGE 78
#define EFFECT_SUBSTITUTE 79 #define EFFECT_RAGE 79
#define EFFECT_RECHARGE 80 #define EFFECT_MIMIC 80
#define EFFECT_RAGE 81 #define EFFECT_METRONOME 81
#define EFFECT_MIMIC 82 #define EFFECT_LEECH_SEED 82
#define EFFECT_METRONOME 83 #define EFFECT_DO_NOTHING 83
#define EFFECT_LEECH_SEED 84 #define EFFECT_DISABLE 84
#define EFFECT_DO_NOTHING 85 #define EFFECT_LEVEL_DAMAGE 85
#define EFFECT_DISABLE 86 #define EFFECT_PSYWAVE 86
#define EFFECT_LEVEL_DAMAGE 87 #define EFFECT_COUNTER 87
#define EFFECT_PSYWAVE 88 #define EFFECT_ENCORE 88
#define EFFECT_COUNTER 89 #define EFFECT_PAIN_SPLIT 89
#define EFFECT_ENCORE 90 #define EFFECT_SNORE 90
#define EFFECT_PAIN_SPLIT 91 #define EFFECT_CONVERSION_2 91
#define EFFECT_SNORE 92 #define EFFECT_LOCK_ON 92
#define EFFECT_CONVERSION_2 93 #define EFFECT_SKETCH 93
#define EFFECT_LOCK_ON 94 #define EFFECT_HAMMER_ARM 94
#define EFFECT_SKETCH 95 #define EFFECT_SLEEP_TALK 95
#define EFFECT_HAMMER_ARM 96 #define EFFECT_DESTINY_BOND 96
#define EFFECT_SLEEP_TALK 97 #define EFFECT_FLAIL 97
#define EFFECT_DESTINY_BOND 98 #define EFFECT_SPITE 98
#define EFFECT_FLAIL 99 #define EFFECT_FALSE_SWIPE 99
#define EFFECT_SPITE 100 #define EFFECT_HEAL_BELL 100
#define EFFECT_FALSE_SWIPE 101 #define EFFECT_ALWAYS_CRIT 101
#define EFFECT_HEAL_BELL 102 #define EFFECT_TRIPLE_KICK 102
#define EFFECT_ALWAYS_CRIT 103 #define EFFECT_THIEF 103
#define EFFECT_TRIPLE_KICK 104 #define EFFECT_MEAN_LOOK 104
#define EFFECT_THIEF 105 #define EFFECT_NIGHTMARE 105
#define EFFECT_MEAN_LOOK 106 #define EFFECT_MINIMIZE 106
#define EFFECT_NIGHTMARE 107 #define EFFECT_CURSE 107
#define EFFECT_MINIMIZE 108 #define EFFECT_HEALING_WISH 108
#define EFFECT_CURSE 109 #define EFFECT_PROTECT 109
#define EFFECT_HEALING_WISH 110 #define EFFECT_SPIKES 110
#define EFFECT_PROTECT 111 #define EFFECT_FORESIGHT 111
#define EFFECT_SPIKES 112 #define EFFECT_PERISH_SONG 112
#define EFFECT_FORESIGHT 113 #define EFFECT_SANDSTORM 113
#define EFFECT_PERISH_SONG 114 #define EFFECT_ENDURE 114
#define EFFECT_SANDSTORM 115 #define EFFECT_ROLLOUT 115
#define EFFECT_ENDURE 116 #define EFFECT_SWAGGER 116
#define EFFECT_ROLLOUT 117 #define EFFECT_FURY_CUTTER 117
#define EFFECT_SWAGGER 118 #define EFFECT_ATTRACT 118
#define EFFECT_FURY_CUTTER 119 #define EFFECT_RETURN 119
#define EFFECT_ATTRACT 120 #define EFFECT_PRESENT 120
#define EFFECT_RETURN 121 #define EFFECT_FRUSTRATION 121
#define EFFECT_PRESENT 122 #define EFFECT_SAFEGUARD 122
#define EFFECT_FRUSTRATION 123 #define EFFECT_UNUSED_125 123
#define EFFECT_SAFEGUARD 124 #define EFFECT_MAGNITUDE 124
#define EFFECT_UNUSED_125 125 #define EFFECT_BATON_PASS 125
#define EFFECT_MAGNITUDE 126 #define EFFECT_PURSUIT 126
#define EFFECT_BATON_PASS 127 #define EFFECT_RAPID_SPIN 127
#define EFFECT_PURSUIT 128 #define EFFECT_SONICBOOM 128
#define EFFECT_RAPID_SPIN 129 #define EFFECT_CAPTIVATE 129
#define EFFECT_SONICBOOM 130 #define EFFECT_MORNING_SUN 130
#define EFFECT_CAPTIVATE 131 #define EFFECT_SYNTHESIS 131
#define EFFECT_MORNING_SUN 132 #define EFFECT_MOONLIGHT 132
#define EFFECT_SYNTHESIS 133 #define EFFECT_HIDDEN_POWER 133
#define EFFECT_MOONLIGHT 134 #define EFFECT_RAIN_DANCE 134
#define EFFECT_HIDDEN_POWER 135 #define EFFECT_SUNNY_DAY 135
#define EFFECT_RAIN_DANCE 136 #define EFFECT_DEFENSE_UP_HIT 136
#define EFFECT_SUNNY_DAY 137 #define EFFECT_ATTACK_UP_HIT 137
#define EFFECT_DEFENSE_UP_HIT 138 #define EFFECT_ALL_STATS_UP_HIT 138
#define EFFECT_ATTACK_UP_HIT 139 #define EFFECT_FELL_STINGER 139
#define EFFECT_ALL_STATS_UP_HIT 140 #define EFFECT_BELLY_DRUM 140
#define EFFECT_FELL_STINGER 141 #define EFFECT_PSYCH_UP 141
#define EFFECT_BELLY_DRUM 142 #define EFFECT_MIRROR_COAT 142
#define EFFECT_PSYCH_UP 143 #define EFFECT_SKULL_BASH 143
#define EFFECT_MIRROR_COAT 144 #define EFFECT_TWISTER 144
#define EFFECT_SKULL_BASH 145 #define EFFECT_EARTHQUAKE 145
#define EFFECT_TWISTER 146 #define EFFECT_FUTURE_SIGHT 146
#define EFFECT_EARTHQUAKE 147 #define EFFECT_GUST 147
#define EFFECT_FUTURE_SIGHT 148 #define EFFECT_FLINCH_MINIMIZE_HIT 148
#define EFFECT_GUST 149 #define EFFECT_SOLARBEAM 149
#define EFFECT_FLINCH_MINIMIZE_HIT 150 #define EFFECT_THUNDER 150
#define EFFECT_SOLARBEAM 151 #define EFFECT_TELEPORT 151
#define EFFECT_THUNDER 152 #define EFFECT_BEAT_UP 152
#define EFFECT_TELEPORT 153 #define EFFECT_SEMI_INVULNERABLE 153
#define EFFECT_BEAT_UP 154 #define EFFECT_DEFENSE_CURL 154
#define EFFECT_SEMI_INVULNERABLE 155 #define EFFECT_SOFTBOILED 155
#define EFFECT_DEFENSE_CURL 156 #define EFFECT_FAKE_OUT 156
#define EFFECT_SOFTBOILED 157 #define EFFECT_UPROAR 157
#define EFFECT_FAKE_OUT 158 #define EFFECT_STOCKPILE 158
#define EFFECT_UPROAR 159 #define EFFECT_SPIT_UP 159
#define EFFECT_STOCKPILE 160 #define EFFECT_SWALLOW 160
#define EFFECT_SPIT_UP 161 #define EFFECT_WORRY_SEED 161
#define EFFECT_SWALLOW 162 #define EFFECT_HAIL 162
#define EFFECT_WORRY_SEED 163 #define EFFECT_TORMENT 163
#define EFFECT_HAIL 164 #define EFFECT_FLATTER 164
#define EFFECT_TORMENT 165 #define EFFECT_WILL_O_WISP 165
#define EFFECT_FLATTER 166 #define EFFECT_MEMENTO 166
#define EFFECT_WILL_O_WISP 167 #define EFFECT_FACADE 167
#define EFFECT_MEMENTO 168 #define EFFECT_FOCUS_PUNCH 168
#define EFFECT_FACADE 169 #define EFFECT_SMELLINGSALT 169
#define EFFECT_FOCUS_PUNCH 170 #define EFFECT_FOLLOW_ME 170
#define EFFECT_SMELLINGSALT 171 #define EFFECT_NATURE_POWER 171
#define EFFECT_FOLLOW_ME 172 #define EFFECT_CHARGE 172
#define EFFECT_NATURE_POWER 173 #define EFFECT_TAUNT 173
#define EFFECT_CHARGE 174 #define EFFECT_HELPING_HAND 174
#define EFFECT_TAUNT 175 #define EFFECT_TRICK 175
#define EFFECT_HELPING_HAND 176 #define EFFECT_ROLE_PLAY 176
#define EFFECT_TRICK 177 #define EFFECT_WISH 177
#define EFFECT_ROLE_PLAY 178 #define EFFECT_ASSIST 178
#define EFFECT_WISH 179 #define EFFECT_INGRAIN 179
#define EFFECT_ASSIST 180 #define EFFECT_SUPERPOWER 180
#define EFFECT_INGRAIN 181 #define EFFECT_MAGIC_COAT 181
#define EFFECT_SUPERPOWER 182 #define EFFECT_RECYCLE 182
#define EFFECT_MAGIC_COAT 183 #define EFFECT_REVENGE 183
#define EFFECT_RECYCLE 184 #define EFFECT_BRICK_BREAK 184
#define EFFECT_REVENGE 185 #define EFFECT_YAWN 185
#define EFFECT_BRICK_BREAK 186 #define EFFECT_KNOCK_OFF 186
#define EFFECT_YAWN 187 #define EFFECT_ENDEAVOR 187
#define EFFECT_KNOCK_OFF 188 #define EFFECT_ERUPTION 188
#define EFFECT_ENDEAVOR 189 #define EFFECT_SKILL_SWAP 189
#define EFFECT_ERUPTION 190 #define EFFECT_IMPRISON 190
#define EFFECT_SKILL_SWAP 191 #define EFFECT_REFRESH 191
#define EFFECT_IMPRISON 192 #define EFFECT_GRUDGE 192
#define EFFECT_REFRESH 193 #define EFFECT_SNATCH 193
#define EFFECT_GRUDGE 194 #define EFFECT_LOW_KICK 194
#define EFFECT_SNATCH 195 #define EFFECT_SECRET_POWER 195
#define EFFECT_LOW_KICK 196 #define EFFECT_RECOIL_33 196
#define EFFECT_SECRET_POWER 197 #define EFFECT_TEETER_DANCE 197
#define EFFECT_RECOIL_33 198 #define EFFECT_HIT_ESCAPE 198
#define EFFECT_TEETER_DANCE 199 #define EFFECT_MUD_SPORT 199
#define EFFECT_HIT_ESCAPE 200 #define EFFECT_POISON_FANG 200
#define EFFECT_MUD_SPORT 201 #define EFFECT_WEATHER_BALL 201
#define EFFECT_POISON_FANG 202 #define EFFECT_OVERHEAT 202
#define EFFECT_WEATHER_BALL 203 #define EFFECT_TICKLE 203
#define EFFECT_OVERHEAT 204 #define EFFECT_COSMIC_POWER 204
#define EFFECT_TICKLE 205 #define EFFECT_SKY_UPPERCUT 205
#define EFFECT_COSMIC_POWER 206 #define EFFECT_BULK_UP 206
#define EFFECT_SKY_UPPERCUT 207 #define EFFECT_PLACEHOLDER 207
#define EFFECT_BULK_UP 208 #define EFFECT_WATER_SPORT 208
#define EFFECT_PLACEHOLDER 209 #define EFFECT_CALM_MIND 209
#define EFFECT_WATER_SPORT 210 #define EFFECT_DRAGON_DANCE 210
#define EFFECT_CALM_MIND 211 #define EFFECT_CAMOUFLAGE 211
#define EFFECT_DRAGON_DANCE 212
#define EFFECT_CAMOUFLAGE 213 // 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 369
// New move effects #endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
#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
#define NUM_BATTLE_MOVE_EFFECTS 372
#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_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_THAW_USER (1 << 25)
#define FLAG_HIT_IN_SUBSTITUTE (1 << 26) // Hyperspace Fury #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. // Split defines.
#define SPLIT_PHYSICAL 0x0 #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); score += min(CountPositiveStatStages(battlerDef), 4);
break; break;
case EFFECT_MULTI_HIT: case EFFECT_MULTI_HIT:
case EFFECT_DOUBLE_HIT:
case EFFECT_TRIPLE_KICK: case EFFECT_TRIPLE_KICK:
break; break;
case EFFECT_CONVERSION: case EFFECT_CONVERSION:

View File

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

View File

@ -217,20 +217,6 @@ static const u16 sEntrainmentTargetSimpleBeamBannedAbilities[] =
ABILITY_GULP_MISSILE, 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) static u8 CalcBeatUpPower(void)
{ {
struct Pokemon *party; struct Pokemon *party;
@ -3571,7 +3557,7 @@ u8 AtkCanceller_UnableToUseMove(void)
PREPARE_BYTE_NUMBER_BUFFER(gBattleScripting.multihitString, 1, 0) PREPARE_BYTE_NUMBER_BUFFER(gBattleScripting.multihitString, 1, 0)
} }
else if (IsTwoStrikesMove(gCurrentMove)) else if (gBattleMoves[gCurrentMove].flags & FLAG_TWO_STRIKES)
{ {
gMultiHitCounter = 2; gMultiHitCounter = 2;
PREPARE_BYTE_NUMBER_BUFFER(gBattleScripting.multihitString, 1, 0) PREPARE_BYTE_NUMBER_BUFFER(gBattleScripting.multihitString, 1, 0)
@ -9714,15 +9700,3 @@ u16 GetUsedHeldItem(u8 battler)
{ {
return gBattleStruct->usedHeldItems[gBattlerPartyIndexes[battler]][GetBattlerSide(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] = [MOVE_DOUBLE_KICK] =
{ {
.effect = EFFECT_DOUBLE_HIT, .effect = EFFECT_HIT,
.power = 30, .power = 30,
.type = TYPE_FIGHTING, .type = TYPE_FIGHTING,
.accuracy = 100, .accuracy = 100,
@ -378,7 +378,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0, .secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED, .target = MOVE_TARGET_SELECTED,
.priority = 0, .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, .split = SPLIT_PHYSICAL,
}, },
@ -649,7 +649,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 20, .secondaryEffectChance = 20,
.target = MOVE_TARGET_SELECTED, .target = MOVE_TARGET_SELECTED,
.priority = 0, .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, .split = SPLIT_PHYSICAL,
}, },
@ -2452,7 +2452,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
[MOVE_BONEMERANG] = [MOVE_BONEMERANG] =
{ {
.effect = EFFECT_DOUBLE_HIT, .effect = EFFECT_HIT,
.power = 50, .power = 50,
.type = TYPE_GROUND, .type = TYPE_GROUND,
.accuracy = 90, .accuracy = 90,
@ -2460,7 +2460,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0, .secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED, .target = MOVE_TARGET_SELECTED,
.priority = 0, .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, .split = SPLIT_PHYSICAL,
}, },
@ -7259,7 +7259,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
[MOVE_DOUBLE_HIT] = [MOVE_DOUBLE_HIT] =
{ {
.effect = EFFECT_DOUBLE_HIT, .effect = EFFECT_HIT,
.power = 35, .power = 35,
.type = TYPE_NORMAL, .type = TYPE_NORMAL,
.accuracy = 90, .accuracy = 90,
@ -7267,7 +7267,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0, .secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED, .target = MOVE_TARGET_SELECTED,
.priority = 0, .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, .split = SPLIT_PHYSICAL,
}, },
@ -8359,7 +8359,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
[MOVE_DUAL_CHOP] = [MOVE_DUAL_CHOP] =
{ {
.effect = EFFECT_DOUBLE_HIT, .effect = EFFECT_HIT,
.power = 40, .power = 40,
.type = TYPE_DRAGON, .type = TYPE_DRAGON,
.accuracy = 90, .accuracy = 90,
@ -8367,7 +8367,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0, .secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED, .target = MOVE_TARGET_SELECTED,
.priority = 0, .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, .split = SPLIT_PHYSICAL,
}, },
@ -8567,7 +8567,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
[MOVE_GEAR_GRIND] = [MOVE_GEAR_GRIND] =
{ {
.effect = EFFECT_DOUBLE_HIT, .effect = EFFECT_HIT,
.power = 50, .power = 50,
.type = TYPE_STEEL, .type = TYPE_STEEL,
.accuracy = 85, .accuracy = 85,
@ -8575,7 +8575,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0, .secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED, .target = MOVE_TARGET_SELECTED,
.priority = 0, .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, .split = SPLIT_PHYSICAL,
}, },
@ -10726,9 +10726,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
[MOVE_DOUBLE_IRON_BASH] = [MOVE_DOUBLE_IRON_BASH] =
{ {
#if B_UPDATED_MOVE_DATA >= GEN_8 #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 #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 #endif
.effect = EFFECT_FLINCH_HIT, .effect = EFFECT_FLINCH_HIT,
.power = 60, .power = 60,
@ -10850,7 +10850,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0, .secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED, .target = MOVE_TARGET_SELECTED,
.priority = 0, .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, .split = SPLIT_PHYSICAL,
}, },
@ -11472,7 +11472,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
[MOVE_DUAL_WINGBEAT] = [MOVE_DUAL_WINGBEAT] =
{ {
.effect = EFFECT_DOUBLE_HIT, .effect = EFFECT_HIT,
.power = 40, .power = 40,
.type = TYPE_FLYING, .type = TYPE_FLYING,
.accuracy = 90, .accuracy = 90,
@ -11480,7 +11480,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.secondaryEffectChance = 0, .secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED, .target = MOVE_TARGET_SELECTED,
.priority = 0, .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, .split = SPLIT_PHYSICAL,
}, },