mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-16 11:37:40 +01:00
Merge branch 'RHH/master' into RHH/upcoming
# Conflicts: # include/constants/battle_move_effects.h # test/battle/move_effect/multi_hit.c
This commit is contained in:
commit
755e260da4
@ -145,7 +145,6 @@ gBattleScriptsForMoveEffects::
|
||||
.4byte BattleScript_EffectPresent @ EFFECT_PRESENT
|
||||
.4byte BattleScript_EffectHit @ EFFECT_FRUSTRATION
|
||||
.4byte BattleScript_EffectSafeguard @ EFFECT_SAFEGUARD
|
||||
.4byte BattleScript_EffectHit @ EFFECT_UNUSED_125
|
||||
.4byte BattleScript_EffectMagnitude @ EFFECT_MAGNITUDE
|
||||
.4byte BattleScript_EffectBatonPass @ EFFECT_BATON_PASS
|
||||
.4byte BattleScript_EffectHit @ EFFECT_PURSUIT
|
||||
@ -404,7 +403,6 @@ gBattleScriptsForMoveEffects::
|
||||
.4byte BattleScript_EffectHit @ EFFECT_BOLT_BEAK
|
||||
.4byte BattleScript_EffectSkyDrop @ EFFECT_SKY_DROP
|
||||
.4byte BattleScript_EffectHit @ EFFECT_EXPANDING_FORCE
|
||||
.4byte BattleScript_EffectScaleShot @ EFFECT_SCALE_SHOT
|
||||
.4byte BattleScript_EffectMeteorBeam @ EFFECT_METEOR_BEAM
|
||||
.4byte BattleScript_EffectHit @ EFFECT_RISING_VOLTAGE
|
||||
.4byte BattleScript_EffectHit @ EFFECT_BEAK_BLAST
|
||||
@ -805,60 +803,6 @@ BattleScript_FirstChargingTurnMeteorBeam::
|
||||
seteffectsecondary
|
||||
return
|
||||
|
||||
BattleScript_EffectScaleShot::
|
||||
attackcanceler
|
||||
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
||||
attackstring
|
||||
ppreduce
|
||||
setmultihitcounter 0x0
|
||||
initmultihitstring
|
||||
sethword sMULTIHIT_EFFECT, 0x0
|
||||
BattleScript_ScaleShotLoop::
|
||||
jumpifhasnohp BS_ATTACKER, BattleScript_ScaleShotEnd
|
||||
jumpifhasnohp BS_TARGET, BattleScript_ScaleShotPrintStrings
|
||||
jumpifhalfword CMP_EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_ScaleShotDoMultiHit
|
||||
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_ScaleShotPrintStrings
|
||||
BattleScript_ScaleShotDoMultiHit::
|
||||
movevaluescleanup
|
||||
copyhword sMOVE_EFFECT, sMULTIHIT_EFFECT
|
||||
critcalc
|
||||
damagecalc
|
||||
jumpifmovehadnoeffect BattleScript_ScaleShotMultiHitNoMoreHits
|
||||
adjustdamage
|
||||
attackanimation
|
||||
waitanimation
|
||||
effectivenesssound
|
||||
hitanimation BS_TARGET
|
||||
waitstate
|
||||
healthbarupdate BS_TARGET
|
||||
datahpupdate BS_TARGET
|
||||
critmessage
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
multihitresultmessage
|
||||
printstring STRINGID_EMPTYSTRING3
|
||||
waitmessage 1
|
||||
addbyte sMULTIHIT_STRING + 4, 0x1
|
||||
moveendto MOVEEND_NEXT_TARGET
|
||||
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_ScaleShotPrintStrings
|
||||
decrementmultihit BattleScript_ScaleShotLoop
|
||||
goto BattleScript_ScaleShotPrintStrings
|
||||
BattleScript_ScaleShotMultiHitNoMoreHits::
|
||||
pause B_WAIT_TIME_SHORT
|
||||
BattleScript_ScaleShotPrintStrings::
|
||||
resultmessage
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
jumpifmovehadnoeffect BattleScript_ScaleShotEnd
|
||||
copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6
|
||||
printstring STRINGID_HITXTIMES
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_ScaleShotEnd::
|
||||
setmoveeffect MOVE_EFFECT_SCALE_SHOT | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
||||
seteffectwithchance
|
||||
tryfaintmon BS_TARGET
|
||||
moveendcase MOVEEND_SYNCHRONIZE_TARGET
|
||||
moveendfrom MOVEEND_STATUS_IMMUNITY_ABILITIES
|
||||
end
|
||||
|
||||
BattleScript_EffectSkyDrop:
|
||||
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_SkyDropTurn2
|
||||
attackcanceler
|
||||
@ -963,7 +907,7 @@ BattleScript_FlingEnd:
|
||||
tryfaintmon BS_TARGET
|
||||
trysymbiosis
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
|
||||
BattleScript_FlingFailConsumeItem::
|
||||
removeitem BS_ATTACKER
|
||||
goto BattleScript_FailedFromAtkString
|
||||
|
@ -124,298 +124,296 @@
|
||||
#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
|
||||
#define EFFECT_MAGNITUDE 123
|
||||
#define EFFECT_BATON_PASS 124
|
||||
#define EFFECT_PURSUIT 125
|
||||
#define EFFECT_RAPID_SPIN 126
|
||||
#define EFFECT_SONICBOOM 127
|
||||
#define EFFECT_CAPTIVATE 128
|
||||
#define EFFECT_MORNING_SUN 129
|
||||
#define EFFECT_SYNTHESIS 130
|
||||
#define EFFECT_MOONLIGHT 131
|
||||
#define EFFECT_HIDDEN_POWER 132
|
||||
#define EFFECT_RAIN_DANCE 133
|
||||
#define EFFECT_SUNNY_DAY 134
|
||||
#define EFFECT_DEFENSE_UP_HIT 135
|
||||
#define EFFECT_ATTACK_UP_HIT 136
|
||||
#define EFFECT_ALL_STATS_UP_HIT 137
|
||||
#define EFFECT_FELL_STINGER 138
|
||||
#define EFFECT_BELLY_DRUM 139
|
||||
#define EFFECT_PSYCH_UP 140
|
||||
#define EFFECT_MIRROR_COAT 141
|
||||
#define EFFECT_SKULL_BASH 142
|
||||
#define EFFECT_EARTHQUAKE 143
|
||||
#define EFFECT_FUTURE_SIGHT 144
|
||||
#define EFFECT_GUST 145
|
||||
#define EFFECT_SOLAR_BEAM 146
|
||||
#define EFFECT_THUNDER 147
|
||||
#define EFFECT_TELEPORT 148
|
||||
#define EFFECT_BEAT_UP 149
|
||||
#define EFFECT_SEMI_INVULNERABLE 150
|
||||
#define EFFECT_DEFENSE_CURL 151
|
||||
#define EFFECT_SOFTBOILED 152
|
||||
#define EFFECT_FAKE_OUT 153
|
||||
#define EFFECT_UPROAR 154
|
||||
#define EFFECT_STOCKPILE 155
|
||||
#define EFFECT_SPIT_UP 156
|
||||
#define EFFECT_SWALLOW 157
|
||||
#define EFFECT_WORRY_SEED 158
|
||||
#define EFFECT_HAIL 159
|
||||
#define EFFECT_TORMENT 160
|
||||
#define EFFECT_FLATTER 161
|
||||
#define EFFECT_WILL_O_WISP 162
|
||||
#define EFFECT_MEMENTO 163
|
||||
#define EFFECT_FACADE 164
|
||||
#define EFFECT_FOCUS_PUNCH 165
|
||||
#define EFFECT_SMELLINGSALT 166
|
||||
#define EFFECT_FOLLOW_ME 167
|
||||
#define EFFECT_NATURE_POWER 168
|
||||
#define EFFECT_CHARGE 169
|
||||
#define EFFECT_TAUNT 170
|
||||
#define EFFECT_HELPING_HAND 171
|
||||
#define EFFECT_TRICK 172
|
||||
#define EFFECT_ROLE_PLAY 173
|
||||
#define EFFECT_WISH 174
|
||||
#define EFFECT_ASSIST 175
|
||||
#define EFFECT_INGRAIN 176
|
||||
#define EFFECT_SUPERPOWER 177
|
||||
#define EFFECT_MAGIC_COAT 178
|
||||
#define EFFECT_RECYCLE 179
|
||||
#define EFFECT_REVENGE 180
|
||||
#define EFFECT_BRICK_BREAK 181
|
||||
#define EFFECT_YAWN 182
|
||||
#define EFFECT_KNOCK_OFF 183
|
||||
#define EFFECT_ENDEAVOR 184
|
||||
#define EFFECT_ERUPTION 185
|
||||
#define EFFECT_SKILL_SWAP 186
|
||||
#define EFFECT_IMPRISON 187
|
||||
#define EFFECT_REFRESH 188
|
||||
#define EFFECT_GRUDGE 189
|
||||
#define EFFECT_SNATCH 190
|
||||
#define EFFECT_LOW_KICK 191
|
||||
#define EFFECT_SECRET_POWER 192
|
||||
#define EFFECT_RECOIL_33 193
|
||||
#define EFFECT_TEETER_DANCE 194
|
||||
#define EFFECT_HIT_ESCAPE 195
|
||||
#define EFFECT_MUD_SPORT 196
|
||||
#define EFFECT_POISON_FANG 197
|
||||
#define EFFECT_WEATHER_BALL 198
|
||||
#define EFFECT_OVERHEAT 199
|
||||
#define EFFECT_TICKLE 200
|
||||
#define EFFECT_COSMIC_POWER 201
|
||||
#define EFFECT_SKY_UPPERCUT 202
|
||||
#define EFFECT_BULK_UP 203
|
||||
#define EFFECT_PLACEHOLDER 204
|
||||
#define EFFECT_WATER_SPORT 205
|
||||
#define EFFECT_CALM_MIND 206
|
||||
#define EFFECT_DRAGON_DANCE 207
|
||||
#define EFFECT_CAMOUFLAGE 208
|
||||
|
||||
// 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 EFFECT_COLLISION_COURSE 406
|
||||
#define EFFECT_SPIN_OUT 407
|
||||
#define EFFECT_MAKE_IT_RAIN 408
|
||||
#define EFFECT_CORROSIVE_GAS 409
|
||||
#define EFFECT_POPULATION_BOMB 410
|
||||
#define EFFECT_MORTAL_SPIN 411
|
||||
#define EFFECT_PLEDGE 209
|
||||
#define EFFECT_FLING 210
|
||||
#define EFFECT_NATURAL_GIFT 211
|
||||
#define EFFECT_WAKE_UP_SLAP 212
|
||||
#define EFFECT_WRING_OUT 213
|
||||
#define EFFECT_HEX 214
|
||||
#define EFFECT_ASSURANCE 215
|
||||
#define EFFECT_TRUMP_CARD 216
|
||||
#define EFFECT_ACROBATICS 217
|
||||
#define EFFECT_HEAT_CRASH 218
|
||||
#define EFFECT_PUNISHMENT 219
|
||||
#define EFFECT_STORED_POWER 220
|
||||
#define EFFECT_ELECTRO_BALL 221
|
||||
#define EFFECT_GYRO_BALL 222
|
||||
#define EFFECT_ECHOED_VOICE 223
|
||||
#define EFFECT_PAYBACK 224
|
||||
#define EFFECT_ROUND 225
|
||||
#define EFFECT_BRINE 226
|
||||
#define EFFECT_VENOSHOCK 227
|
||||
#define EFFECT_RETALIATE 228
|
||||
#define EFFECT_BULLDOZE 229
|
||||
#define EFFECT_FOUL_PLAY 230
|
||||
#define EFFECT_PSYSHOCK 231
|
||||
#define EFFECT_ROOST 232
|
||||
#define EFFECT_GRAVITY 233
|
||||
#define EFFECT_MIRACLE_EYE 234
|
||||
#define EFFECT_TAILWIND 235
|
||||
#define EFFECT_EMBARGO 236
|
||||
#define EFFECT_AQUA_RING 237
|
||||
#define EFFECT_TRICK_ROOM 238
|
||||
#define EFFECT_WONDER_ROOM 239
|
||||
#define EFFECT_MAGIC_ROOM 240
|
||||
#define EFFECT_MAGNET_RISE 241
|
||||
#define EFFECT_TOXIC_SPIKES 242
|
||||
#define EFFECT_GASTRO_ACID 243
|
||||
#define EFFECT_STEALTH_ROCK 244
|
||||
#define EFFECT_TELEKINESIS 245
|
||||
#define EFFECT_POWER_SWAP 246
|
||||
#define EFFECT_GUARD_SWAP 247
|
||||
#define EFFECT_HEART_SWAP 248
|
||||
#define EFFECT_POWER_SPLIT 249
|
||||
#define EFFECT_GUARD_SPLIT 250
|
||||
#define EFFECT_STICKY_WEB 251
|
||||
#define EFFECT_METAL_BURST 252
|
||||
#define EFFECT_LUCKY_CHANT 253
|
||||
#define EFFECT_SUCKER_PUNCH 254
|
||||
#define EFFECT_SPECIAL_DEFENSE_DOWN_HIT_2 255
|
||||
#define EFFECT_SIMPLE_BEAM 256
|
||||
#define EFFECT_ENTRAINMENT 257
|
||||
#define EFFECT_HEAL_PULSE 258
|
||||
#define EFFECT_QUASH 259
|
||||
#define EFFECT_ION_DELUGE 260
|
||||
#define EFFECT_FREEZE_DRY 261
|
||||
#define EFFECT_TOPSY_TURVY 262
|
||||
#define EFFECT_MISTY_TERRAIN 263
|
||||
#define EFFECT_GRASSY_TERRAIN 264
|
||||
#define EFFECT_ELECTRIC_TERRAIN 265
|
||||
#define EFFECT_PSYCHIC_TERRAIN 266
|
||||
#define EFFECT_ATTACK_ACCURACY_UP 267
|
||||
#define EFFECT_ATTACK_SPATK_UP 268
|
||||
#define EFFECT_HURRICANE 269
|
||||
#define EFFECT_TWO_TYPED_MOVE 270
|
||||
#define EFFECT_ME_FIRST 271
|
||||
#define EFFECT_SPEED_UP_HIT 272
|
||||
#define EFFECT_QUIVER_DANCE 273
|
||||
#define EFFECT_COIL 274
|
||||
#define EFFECT_ELECTRIFY 275
|
||||
#define EFFECT_REFLECT_TYPE 276
|
||||
#define EFFECT_SOAK 277
|
||||
#define EFFECT_GROWTH 278
|
||||
#define EFFECT_CLOSE_COMBAT 279
|
||||
#define EFFECT_LAST_RESORT 280
|
||||
#define EFFECT_RECOIL_33_STATUS 281
|
||||
#define EFFECT_FLINCH_STATUS 282
|
||||
#define EFFECT_RECOIL_50 283
|
||||
#define EFFECT_SHELL_SMASH 284
|
||||
#define EFFECT_SHIFT_GEAR 285
|
||||
#define EFFECT_DEFENSE_UP_3 286
|
||||
#define EFFECT_NOBLE_ROAR 287
|
||||
#define EFFECT_VENOM_DRENCH 288
|
||||
#define EFFECT_TOXIC_THREAD 289
|
||||
#define EFFECT_CLEAR_SMOG 290
|
||||
#define EFFECT_HIT_SWITCH_TARGET 291
|
||||
#define EFFECT_FINAL_GAMBIT 292
|
||||
#define EFFECT_CHANGE_TYPE_ON_ITEM 293
|
||||
#define EFFECT_AUTOTOMIZE 294
|
||||
#define EFFECT_COPYCAT 295
|
||||
#define EFFECT_DEFOG 296
|
||||
#define EFFECT_HIT_ENEMY_HEAL_ALLY 297
|
||||
#define EFFECT_SMACK_DOWN 298
|
||||
#define EFFECT_SYNCHRONOISE 299
|
||||
#define EFFECT_PSYCHO_SHIFT 300
|
||||
#define EFFECT_POWER_TRICK 301
|
||||
#define EFFECT_FLAME_BURST 302
|
||||
#define EFFECT_AFTER_YOU 303
|
||||
#define EFFECT_BESTOW 304
|
||||
#define EFFECT_ROTOTILLER 305
|
||||
#define EFFECT_FLOWER_SHIELD 306
|
||||
#define EFFECT_HIT_PREVENT_ESCAPE 307
|
||||
#define EFFECT_SPEED_SWAP 308
|
||||
#define EFFECT_DEFENSE_UP2_HIT 309
|
||||
#define EFFECT_REVELATION_DANCE 310
|
||||
#define EFFECT_AURORA_VEIL 311
|
||||
#define EFFECT_THIRD_TYPE 312
|
||||
#define EFFECT_FEINT 313
|
||||
#define EFFECT_SPARKLING_ARIA 314
|
||||
#define EFFECT_ACUPRESSURE 315
|
||||
#define EFFECT_AROMATIC_MIST 316
|
||||
#define EFFECT_POWDER 317
|
||||
#define EFFECT_SP_ATTACK_UP_HIT 318
|
||||
#define EFFECT_BELCH 319
|
||||
#define EFFECT_PARTING_SHOT 320
|
||||
#define EFFECT_SPECTRAL_THIEF 321
|
||||
#define EFFECT_V_CREATE 322
|
||||
#define EFFECT_MAT_BLOCK 323
|
||||
#define EFFECT_STOMPING_TANTRUM 324
|
||||
#define EFFECT_CORE_ENFORCER 325
|
||||
#define EFFECT_INSTRUCT 326
|
||||
#define EFFECT_THROAT_CHOP 327
|
||||
#define EFFECT_LASER_FOCUS 328
|
||||
#define EFFECT_MAGNETIC_FLUX 329
|
||||
#define EFFECT_GEAR_UP 330
|
||||
#define EFFECT_INCINERATE 331
|
||||
#define EFFECT_BUG_BITE 332
|
||||
#define EFFECT_STRENGTH_SAP 333
|
||||
#define EFFECT_MIND_BLOWN 334
|
||||
#define EFFECT_PURIFY 335
|
||||
#define EFFECT_BURN_UP 336
|
||||
#define EFFECT_SHORE_UP 337
|
||||
#define EFFECT_GEOMANCY 338
|
||||
#define EFFECT_FAIRY_LOCK 339
|
||||
#define EFFECT_ALLY_SWITCH 340
|
||||
#define EFFECT_RELIC_SONG 341
|
||||
#define EFFECT_ATTACKER_DEFENSE_DOWN_HIT 342
|
||||
#define EFFECT_BODY_PRESS 343
|
||||
#define EFFECT_EERIE_SPELL 344
|
||||
#define EFFECT_JUNGLE_HEALING 345
|
||||
#define EFFECT_COACHING 346
|
||||
#define EFFECT_LASH_OUT 347
|
||||
#define EFFECT_GRASSY_GLIDE 348
|
||||
#define EFFECT_REMOVE_TERRAIN 349
|
||||
#define EFFECT_DYNAMAX_DOUBLE_DMG 350
|
||||
#define EFFECT_DECORATE 351
|
||||
#define EFFECT_SNIPE_SHOT 352
|
||||
#define EFFECT_RECOIL_HP_25 353
|
||||
#define EFFECT_STUFF_CHEEKS 354
|
||||
#define EFFECT_GRAV_APPLE 355
|
||||
#define EFFECT_EVASION_UP_HIT 356
|
||||
#define EFFECT_GLITZY_GLOW 357
|
||||
#define EFFECT_BADDY_BAD 358
|
||||
#define EFFECT_SAPPY_SEED 359
|
||||
#define EFFECT_FREEZY_FROST 360
|
||||
#define EFFECT_SPARKLY_SWIRL 361
|
||||
#define EFFECT_PLASMA_FISTS 362
|
||||
#define EFFECT_HYPERSPACE_FURY 363
|
||||
#define EFFECT_AURA_WHEEL 364
|
||||
#define EFFECT_PHOTON_GEYSER 365
|
||||
#define EFFECT_SHELL_SIDE_ARM 366
|
||||
#define EFFECT_TERRAIN_PULSE 367
|
||||
#define EFFECT_JAW_LOCK 368
|
||||
#define EFFECT_NO_RETREAT 369
|
||||
#define EFFECT_TAR_SHOT 370
|
||||
#define EFFECT_POLTERGEIST 371
|
||||
#define EFFECT_OCTOLOCK 372
|
||||
#define EFFECT_CLANGOROUS_SOUL 373
|
||||
#define EFFECT_BOLT_BEAK 374
|
||||
#define EFFECT_SKY_DROP 375
|
||||
#define EFFECT_EXPANDING_FORCE 376
|
||||
#define EFFECT_METEOR_BEAM 377
|
||||
#define EFFECT_RISING_VOLTAGE 378
|
||||
#define EFFECT_BEAK_BLAST 379
|
||||
#define EFFECT_COURT_CHANGE 380
|
||||
#define EFFECT_STEEL_BEAM 381
|
||||
#define EFFECT_EXTREME_EVOBOOST 382
|
||||
#define EFFECT_HIT_SET_REMOVE_TERRAIN 383 // genesis supernova
|
||||
#define EFFECT_DARK_VOID 384
|
||||
#define EFFECT_SLEEP_HIT 385
|
||||
#define EFFECT_DOUBLE_SHOCK 386
|
||||
#define EFFECT_SPECIAL_ATTACK_UP_HIT 387
|
||||
#define EFFECT_VICTORY_DANCE 388
|
||||
#define EFFECT_TEATIME 389
|
||||
#define EFFECT_ATTACK_UP_USER_ALLY 390 // Howl 6th Gen
|
||||
#define EFFECT_SHELL_TRAP 391
|
||||
#define EFFECT_PSYBLADE 392
|
||||
#define EFFECT_HYDRO_STEAM 393
|
||||
#define EFFECT_HIT_SET_ENTRY_HAZARD 394
|
||||
#define EFFECT_DIRE_CLAW 395
|
||||
#define EFFECT_BARB_BARRAGE 396
|
||||
#define EFFECT_REVIVAL_BLESSING 397
|
||||
#define EFFECT_FROSTBITE_HIT 398
|
||||
#define EFFECT_SNOWSCAPE 399
|
||||
#define EFFECT_TRIPLE_ARROWS 400
|
||||
#define EFFECT_INFERNAL_PARADE 401
|
||||
#define EFFECT_TAKE_HEART 402
|
||||
#define EFFECT_AXE_KICK 403
|
||||
#define EFFECT_COLLISION_COURSE 404
|
||||
#define EFFECT_SPIN_OUT 405
|
||||
#define EFFECT_MAKE_IT_RAIN 406
|
||||
#define EFFECT_CORROSIVE_GAS 407
|
||||
#define EFFECT_POPULATION_BOMB 408
|
||||
#define EFFECT_MORTAL_SPIN 409
|
||||
|
||||
#define NUM_BATTLE_MOVE_EFFECTS 412
|
||||
#define NUM_BATTLE_MOVE_EFFECTS 410
|
||||
|
||||
#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
|
||||
|
@ -204,7 +204,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] =
|
||||
.bg = 0,
|
||||
.tilemapLeft = 2,
|
||||
.tilemapTop = 57,
|
||||
.width = 8,
|
||||
.width = 16, //for z effect descriptions
|
||||
.height = 2,
|
||||
.paletteNum = 5,
|
||||
.baseBlock = 0x0328,
|
||||
@ -216,7 +216,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] =
|
||||
.width = 8,
|
||||
.height = 2,
|
||||
.paletteNum = 5,
|
||||
.baseBlock = 0x0338,
|
||||
.baseBlock = 0x0340,
|
||||
},
|
||||
[B_WIN_PP] = {
|
||||
.bg = 0,
|
||||
|
@ -3626,13 +3626,6 @@ void SetMoveEffect(bool32 primary, u32 certain)
|
||||
gBattleMons[gBattlerTarget].status2 |= STATUS2_ESCAPE_PREVENTION;
|
||||
gBattleMons[gBattlerAttacker].status2 |= STATUS2_ESCAPE_PREVENTION;
|
||||
break;
|
||||
case MOVE_EFFECT_SCALE_SHOT:
|
||||
if (!NoAliveMonsForEitherParty())
|
||||
{
|
||||
BattleScriptPush(gBattlescriptCurrInstr + 1);
|
||||
gBattlescriptCurrInstr = BattleScript_DefDownSpeedUp;
|
||||
}
|
||||
break;
|
||||
case MOVE_EFFECT_BURN_UP:
|
||||
// This seems unnecessary but is done to make it work properly with Parental Bond
|
||||
BattleScriptPush(gBattlescriptCurrInstr + 1);
|
||||
@ -5801,6 +5794,12 @@ static void Cmd_moveend(void)
|
||||
gBattleScripting.multihitString[4]++;
|
||||
if (--gMultiHitCounter == 0)
|
||||
{
|
||||
if (gBattleMoves[gCurrentMove].argument == MOVE_EFFECT_SCALE_SHOT && !NoAliveMonsForEitherParty())
|
||||
{
|
||||
BattleScriptPush(gBattlescriptCurrInstr + 1);
|
||||
gBattlescriptCurrInstr = BattleScript_DefDownSpeedUp;
|
||||
}
|
||||
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_MultiHitPrintStrings;
|
||||
effect = TRUE;
|
||||
@ -8528,6 +8527,16 @@ static bool32 ChangeOrderTargetAfterAttacker(void)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static u32 CalculateBattlerPartyCount(u32 battler)
|
||||
{
|
||||
u32 count;
|
||||
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
|
||||
count = CalculatePlayerPartyCount();
|
||||
else
|
||||
count = CalculateEnemyPartyCount();
|
||||
return count;
|
||||
}
|
||||
|
||||
static void Cmd_various(void)
|
||||
{
|
||||
CMD_ARGS(u8 battler, u8 id);
|
||||
@ -10320,7 +10329,7 @@ static void Cmd_various(void)
|
||||
VARIOUS_ARGS();
|
||||
if (gBattleMons[gBattlerAttacker].species == SPECIES_GRENINJA_BATTLE_BOND
|
||||
&& HasAttackerFaintedTarget()
|
||||
&& CalculateEnemyPartyCount() > 1
|
||||
&& CalculateBattlerPartyCount(gBattlerTarget) > 1
|
||||
&& !(gBattleStruct->battleBondTransformed[GET_BATTLER_SIDE2(gBattlerAttacker)] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]]))
|
||||
{
|
||||
gBattleStruct->battleBondTransformed[GET_BATTLER_SIDE2(gBattlerAttacker)] |= gBitTable[gBattlerPartyIndexes[gBattlerAttacker]];
|
||||
@ -15886,7 +15895,6 @@ static const u16 sParentalBondBannedEffects[] =
|
||||
EFFECT_MULTI_HIT,
|
||||
EFFECT_OHKO,
|
||||
EFFECT_ROLLOUT,
|
||||
EFFECT_SCALE_SHOT,
|
||||
EFFECT_SEMI_INVULNERABLE,
|
||||
EFFECT_SKULL_BASH,
|
||||
EFFECT_SKY_DROP,
|
||||
|
@ -182,7 +182,6 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] =
|
||||
[EFFECT_CONVERSION_2] = 4,
|
||||
[EFFECT_LOCK_ON] = 3,
|
||||
[EFFECT_SKETCH] = 3,
|
||||
// [EFFECT_UNUSED_60] = 3,
|
||||
[EFFECT_SLEEP_TALK] = 3,
|
||||
[EFFECT_DESTINY_BOND] = 3,
|
||||
[EFFECT_FLAIL] = 2,
|
||||
@ -196,7 +195,6 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] =
|
||||
[EFFECT_NIGHTMARE] = 3,
|
||||
[EFFECT_MINIMIZE] = 1,
|
||||
[EFFECT_CURSE] = 2,
|
||||
// [EFFECT_UNUSED_6E] = 1,
|
||||
[EFFECT_PROTECT] = 5,
|
||||
[EFFECT_SPIKES] = 4,
|
||||
[EFFECT_FORESIGHT] = 3,
|
||||
@ -217,7 +215,6 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] =
|
||||
[EFFECT_PURSUIT] = 2,
|
||||
[EFFECT_RAPID_SPIN] = 2,
|
||||
[EFFECT_SONICBOOM] = 1,
|
||||
// [EFFECT_UNUSED_83] = 1,
|
||||
[EFFECT_MORNING_SUN] = 4,
|
||||
[EFFECT_SYNTHESIS] = 4,
|
||||
[EFFECT_MOONLIGHT] = 4,
|
||||
@ -227,7 +224,6 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] =
|
||||
[EFFECT_DEFENSE_UP_HIT] = 1,
|
||||
[EFFECT_ATTACK_UP_HIT] = 1,
|
||||
[EFFECT_ALL_STATS_UP_HIT] = 1,
|
||||
// [EFFECT_UNUSED_8D] = 1,
|
||||
[EFFECT_BELLY_DRUM] = 7,
|
||||
[EFFECT_PSYCH_UP] = 7,
|
||||
[EFFECT_MIRROR_COAT] = 6,
|
||||
@ -249,7 +245,6 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] =
|
||||
[EFFECT_STOCKPILE] = 3,
|
||||
[EFFECT_SPIT_UP] = 3,
|
||||
[EFFECT_SWALLOW] = 3,
|
||||
// [EFFECT_UNUSED_A3] = 1,
|
||||
[EFFECT_HAIL] = 4,
|
||||
[EFFECT_SNOWSCAPE] = 4,
|
||||
[EFFECT_TORMENT] = 7,
|
||||
@ -469,7 +464,6 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] =
|
||||
[EFFECT_BOLT_BEAK] = 0, // TODO: Assign points
|
||||
[EFFECT_SKY_DROP] = 0, // TODO: Assign points
|
||||
[EFFECT_EXPANDING_FORCE] = 0, // TODO: Assign points
|
||||
[EFFECT_SCALE_SHOT] = 0, // TODO: Assign points
|
||||
[EFFECT_METEOR_BEAM] = 0, // TODO: Assign points
|
||||
[EFFECT_RISING_VOLTAGE] = 0, // TODO: Assign points
|
||||
[EFFECT_BEAK_BLAST] = 0, // TODO: Assign points
|
||||
|
@ -12137,7 +12137,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] =
|
||||
|
||||
[MOVE_SCALE_SHOT] =
|
||||
{
|
||||
.effect = EFFECT_SCALE_SHOT,
|
||||
.effect = EFFECT_MULTI_HIT,
|
||||
.power = 25,
|
||||
.type = TYPE_DRAGON,
|
||||
.accuracy = 90,
|
||||
@ -12147,6 +12147,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] =
|
||||
.priority = 0,
|
||||
.split = SPLIT_PHYSICAL,
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
.argument = MOVE_EFFECT_SCALE_SHOT,
|
||||
},
|
||||
|
||||
[MOVE_METEOR_BEAM] =
|
||||
|
@ -23099,7 +23099,7 @@ const struct SpeciesInfo gSpeciesInfo[] =
|
||||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD},
|
||||
.abilities = {ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_JUSTIFIED},
|
||||
.abilities = {ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_ROCK_HEAD},
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.noFlip = FALSE,
|
||||
.flags = SPECIES_FLAG_HISUIAN_FORM,
|
||||
@ -23122,7 +23122,7 @@ const struct SpeciesInfo gSpeciesInfo[] =
|
||||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD},
|
||||
.abilities = {ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_JUSTIFIED},
|
||||
.abilities = {ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_ROCK_HEAD},
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.noFlip = FALSE,
|
||||
.flags = SPECIES_FLAG_HISUIAN_FORM,
|
||||
@ -23191,7 +23191,7 @@ const struct SpeciesInfo gSpeciesInfo[] =
|
||||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD},
|
||||
.abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_FLASH_FIRE},
|
||||
.abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_FRISK},
|
||||
.bodyColor = BODY_COLOR_YELLOW,
|
||||
.noFlip = FALSE,
|
||||
.flags = SPECIES_FLAG_HISUIAN_FORM,
|
||||
@ -23263,7 +23263,7 @@ const struct SpeciesInfo gSpeciesInfo[] =
|
||||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD},
|
||||
.abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHELL_ARMOR},
|
||||
.abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHARPNESS},
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.noFlip = FALSE,
|
||||
.flags = SPECIES_FLAG_HISUIAN_FORM,
|
||||
@ -23356,7 +23356,7 @@ const struct SpeciesInfo gSpeciesInfo[] =
|
||||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING},
|
||||
.abilities = {ABILITY_KEEN_EYE, ABILITY_SHEER_FORCE, ABILITY_DEFIANT},
|
||||
.abilities = {ABILITY_KEEN_EYE, ABILITY_SHEER_FORCE, ABILITY_TINTED_LENS},
|
||||
.bodyColor = BODY_COLOR_RED,
|
||||
.noFlip = FALSE,
|
||||
.flags = SPECIES_FLAG_HISUIAN_FORM,
|
||||
@ -23382,7 +23382,7 @@ const struct SpeciesInfo gSpeciesInfo[] =
|
||||
.friendship = 35,
|
||||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON},
|
||||
.abilities = {ABILITY_SAP_SIPPER, ABILITY_OVERCOAT, ABILITY_GOOEY},
|
||||
.abilities = {ABILITY_SAP_SIPPER, ABILITY_SHELL_ARMOR, ABILITY_GOOEY},
|
||||
.bodyColor = BODY_COLOR_PURPLE,
|
||||
.noFlip = FALSE,
|
||||
.flags = SPECIES_FLAG_HISUIAN_FORM,
|
||||
@ -23405,7 +23405,7 @@ const struct SpeciesInfo gSpeciesInfo[] =
|
||||
.friendship = 35,
|
||||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON},
|
||||
.abilities = {ABILITY_SAP_SIPPER, ABILITY_OVERCOAT, ABILITY_GOOEY},
|
||||
.abilities = {ABILITY_SAP_SIPPER, ABILITY_SHELL_ARMOR, ABILITY_GOOEY},
|
||||
.bodyColor = BODY_COLOR_PURPLE,
|
||||
.noFlip = FALSE,
|
||||
.flags = SPECIES_FLAG_HISUIAN_FORM,
|
||||
@ -23453,7 +23453,7 @@ const struct SpeciesInfo gSpeciesInfo[] =
|
||||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING},
|
||||
.abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LONG_REACH},
|
||||
.abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SCRAPPY},
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.noFlip = FALSE,
|
||||
.flags = SPECIES_FLAG_HISUIAN_FORM,
|
||||
|
161
test/battle/ability/battle_bond.c
Normal file
161
test/battle/ability/battle_bond.c
Normal file
@ -0,0 +1,161 @@
|
||||
#include "global.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(P_GEN_6_POKEMON == TRUE);
|
||||
ASSUME(gBattleMoves[MOVE_WATER_GUN].power != 0);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Battle Bond does not transform species other than Greninja")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_BATTLE_BOND); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { HP(1); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_WATER_GUN); SEND_OUT(opponent, 1); }
|
||||
} SCENE {
|
||||
HP_BAR(opponent);
|
||||
MESSAGE("Foe Wobbuffet fainted!");
|
||||
NONE_OF {
|
||||
ABILITY_POPUP(player, ABILITY_BATTLE_BOND);
|
||||
MESSAGE("Wobbuffet became fully charged due to its bond with its trainer!");
|
||||
}
|
||||
} THEN {
|
||||
EXPECT(player->species == SPECIES_WOBBUFFET);
|
||||
}
|
||||
}
|
||||
|
||||
// Battle Bond transforms the pokemon when fainting any battler(opposing or partner), unless it's the last pokemon and the battle ends.
|
||||
SINGLE_BATTLE_TEST("Battle Bond transforms player's Greninja - Singles")
|
||||
{
|
||||
u32 monsCountPlayer, monsCountOpponent;
|
||||
|
||||
PARAMETRIZE {monsCountPlayer = 1; monsCountOpponent = 1; }
|
||||
PARAMETRIZE {monsCountPlayer = 1; monsCountOpponent = 2; }
|
||||
PARAMETRIZE {monsCountPlayer = 2; monsCountOpponent = 1; }
|
||||
PARAMETRIZE {monsCountPlayer = 2; monsCountOpponent = 2; }
|
||||
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_GRENINJA_BATTLE_BOND);
|
||||
if (monsCountPlayer == 2) {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
}
|
||||
OPPONENT(SPECIES_WOBBUFFET) { HP(1); }
|
||||
if (monsCountOpponent == 2) {
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
}
|
||||
} WHEN {
|
||||
if (monsCountOpponent == 2) {
|
||||
TURN { MOVE(player, MOVE_WATER_GUN); SEND_OUT(opponent, 1); }
|
||||
} else {
|
||||
TURN { MOVE(player, MOVE_WATER_GUN); }
|
||||
}
|
||||
|
||||
} SCENE {
|
||||
HP_BAR(opponent);
|
||||
MESSAGE("Foe Wobbuffet fainted!");
|
||||
if (monsCountOpponent != 1) {
|
||||
ABILITY_POPUP(player, ABILITY_BATTLE_BOND);
|
||||
MESSAGE("Greninja became fully charged due to its bond with its trainer!");
|
||||
MESSAGE("Greninja became Ash-Greninja!");
|
||||
} else {
|
||||
NONE_OF {
|
||||
ABILITY_POPUP(player, ABILITY_BATTLE_BOND);
|
||||
MESSAGE("Greninja became fully charged due to its bond with its trainer!");
|
||||
}
|
||||
}
|
||||
} FINALLY {
|
||||
if (monsCountOpponent != 1) {
|
||||
EXPECT(player->species == SPECIES_GRENINJA_ASH);
|
||||
} else {
|
||||
EXPECT(player->species == SPECIES_GRENINJA_BATTLE_BOND);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Battle Bond transforms opponent's Greninja - Singles")
|
||||
{
|
||||
u32 monsCountPlayer, monsCountOpponent;
|
||||
|
||||
PARAMETRIZE {monsCountPlayer = 1; monsCountOpponent = 1; }
|
||||
PARAMETRIZE {monsCountPlayer = 1; monsCountOpponent = 2; }
|
||||
PARAMETRIZE {monsCountPlayer = 2; monsCountOpponent = 1; }
|
||||
PARAMETRIZE {monsCountPlayer = 2; monsCountOpponent = 2; }
|
||||
|
||||
GIVEN {
|
||||
OPPONENT(SPECIES_GRENINJA_BATTLE_BOND);
|
||||
if (monsCountOpponent == 2) {
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
}
|
||||
PLAYER(SPECIES_WOBBUFFET) {HP(1); }
|
||||
if (monsCountPlayer == 2) {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
}
|
||||
} WHEN {
|
||||
if (monsCountPlayer == 2) {
|
||||
TURN { MOVE(opponent, MOVE_WATER_GUN); SEND_OUT(player, 1); }
|
||||
} else {
|
||||
TURN { MOVE(opponent, MOVE_WATER_GUN); }
|
||||
}
|
||||
|
||||
} SCENE {
|
||||
HP_BAR(player);
|
||||
MESSAGE("Wobbuffet fainted!");
|
||||
if (monsCountPlayer != 1) {
|
||||
ABILITY_POPUP(opponent, ABILITY_BATTLE_BOND);
|
||||
MESSAGE("Foe Greninja became fully charged due to its bond with its trainer!");
|
||||
MESSAGE("Foe Greninja became Ash-Greninja!");
|
||||
} else {
|
||||
NONE_OF {
|
||||
ABILITY_POPUP(opponent, ABILITY_BATTLE_BOND);
|
||||
MESSAGE("Foe Greninja became fully charged due to its bond with its trainer!");
|
||||
}
|
||||
}
|
||||
} FINALLY {
|
||||
if (monsCountPlayer != 1) {
|
||||
EXPECT(opponent->species == SPECIES_GRENINJA_ASH);
|
||||
} else {
|
||||
EXPECT(opponent->species == SPECIES_GRENINJA_BATTLE_BOND);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("Battle Bond transforms player's Greninja when fainting its Ally")
|
||||
{
|
||||
u32 monsCountPlayer, monsCountOpponent;
|
||||
|
||||
PARAMETRIZE {monsCountPlayer = 2; monsCountOpponent = 2; }
|
||||
PARAMETRIZE {monsCountPlayer = 2; monsCountOpponent = 3; }
|
||||
PARAMETRIZE {monsCountPlayer = 3; monsCountOpponent = 2; }
|
||||
PARAMETRIZE {monsCountPlayer = 3; monsCountOpponent = 3; }
|
||||
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_GRENINJA_BATTLE_BOND);
|
||||
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
|
||||
if (monsCountPlayer == 3) {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
}
|
||||
OPPONENT(SPECIES_WOBBUFFET) { HP(1); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
if (monsCountOpponent == 3) {
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
}
|
||||
} WHEN {
|
||||
if (monsCountPlayer == 3) {
|
||||
TURN { MOVE(playerLeft, MOVE_WATER_GUN, target:playerRight); SEND_OUT(playerRight, 2); }
|
||||
} else {
|
||||
TURN { MOVE(playerLeft, MOVE_WATER_GUN, target:playerRight); }
|
||||
}
|
||||
|
||||
} SCENE {
|
||||
HP_BAR(playerRight);
|
||||
MESSAGE("Wobbuffet fainted!");
|
||||
ABILITY_POPUP(playerLeft, ABILITY_BATTLE_BOND);
|
||||
MESSAGE("Greninja became fully charged due to its bond with its trainer!");
|
||||
MESSAGE("Greninja became Ash-Greninja!");
|
||||
} FINALLY {
|
||||
EXPECT(playerLeft->species == SPECIES_GRENINJA_ASH);
|
||||
}
|
||||
}
|
@ -133,3 +133,49 @@ SINGLE_BATTLE_TEST("Multi hit Moves hit five times 50 Percent of the time with L
|
||||
MESSAGE("Hit 5 time(s)!");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Scale Shot decreses defense and increases speed after final hit")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(gBattleMoves[MOVE_SCALE_SHOT].effect == EFFECT_MULTI_HIT);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_SCALE_SHOT); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player);
|
||||
MESSAGE("Hit 5 time(s)!");
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player);
|
||||
MESSAGE("Wobbuffet's Defense fell!");
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player);
|
||||
MESSAGE("Wobbuffet's Speed rose!");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Endure does not prevent multiply hits and stat changes accure at the end of the turn")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(gBattleMoves[MOVE_SCALE_SHOT].effect == EFFECT_MULTI_HIT);
|
||||
ASSUME(gBattleMoves[MOVE_ENDURE].effect == EFFECT_ENDURE);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET) { HP(1); }
|
||||
} WHEN {
|
||||
TURN { MOVE(opponent, MOVE_ENDURE); MOVE(player, MOVE_SCALE_SHOT); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_ENDURE, opponent);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player);
|
||||
MESSAGE("Hit 5 time(s)!");
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player);
|
||||
MESSAGE("Wobbuffet's Defense fell!");
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player);
|
||||
MESSAGE("Wobbuffet's Speed rose!");
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user