diff options
| author | Remy Oukaour <remy.oukaour@gmail.com> | 2017-12-26 17:47:05 -0500 |
|---|---|---|
| committer | Remy Oukaour <remy.oukaour@gmail.com> | 2017-12-26 17:47:05 -0500 |
| commit | b5417fafec7dd37cb4be391f3bd3d4541a2a381e (patch) | |
| tree | a4e7d08afb2e862186a138e82c8ef4785d82786d /data/moves | |
| parent | 2f98c2032fd47ada3484bfc37d590992f286d3d4 (diff) | |
Split battle/ into data/ and engine/ components
Diffstat (limited to 'data/moves')
| -rw-r--r-- | data/moves/effect_command_pointers.asm | 180 | ||||
| -rw-r--r-- | data/moves/move_anims.asm | 5176 | ||||
| -rw-r--r-- | data/moves/move_descriptions.asm | 1270 | ||||
| -rw-r--r-- | data/moves/move_effects.asm | 2075 | ||||
| -rw-r--r-- | data/moves/move_effects_pointers.asm | 159 | ||||
| -rw-r--r-- | data/moves/move_names.asm | 252 | ||||
| -rw-r--r-- | data/moves/moves.asm | 265 | ||||
| -rw-r--r-- | data/moves/tmhm_moves.asm | 66 |
8 files changed, 9443 insertions, 0 deletions
diff --git a/data/moves/effect_command_pointers.asm b/data/moves/effect_command_pointers.asm new file mode 100644 index 000000000..5dd6be786 --- /dev/null +++ b/data/moves/effect_command_pointers.asm @@ -0,0 +1,180 @@ + dw 0 ; padding + +BattleCommandPointers: ; 3fd28 +; entries correspond to macros/scripts/effect_commands.asm + dw BattleCommand_CheckTurn ; 34084 + dw BattleCommand_CheckObedience ; 343db + dw BattleCommand_UsedMoveText ; 34541 + dw BattleCommand_DoTurn ; 34555 + dw BattleCommand_Critical ; 34631 + dw BattleCommand_DamageStats ; 352dc + dw BattleCommand_Stab ; 346d2 - 07 + dw BattleCommand_DamageVariation ; 34cfd + dw BattleCommand_CheckHit ; 34d32 + dw BattleCommand_LowerSub ; 34eee + dw BattleCommand_HitTargetNoSub ; 34f60 + dw BattleCommand_RaiseSub ; 35004 + dw BattleCommand_FailureText ; 35023 + dw BattleCommand_CheckFaint ; 3505e + dw BattleCommand_CriticalText ; 35175 + dw BattleCommand_SuperEffectiveText ; 351ad + dw BattleCommand_CheckDestinyBond ; 351c0 + dw BattleCommand_BuildOpponentRage ; 35250 + dw BattleCommand_PoisonTarget ; 35eee + dw BattleCommand_SleepTarget ; 35e5c + dw BattleCommand_DrainTarget ; 35fff + dw BattleCommand_EatDream ; 36008 + dw BattleCommand_BurnTarget ; 3608c + dw BattleCommand_FreezeTarget ; 36102 + dw BattleCommand_ParalyzeTarget ; 36165 + dw BattleCommand_Selfdestruct ; 37380 + dw BattleCommand_MirrorMove ; 373c9 + dw BattleCommand_StatUp ; 361e4 + dw BattleCommand_StatDown ; 362e3 + dw BattleCommand_PayDay ; 3705c + dw BattleCommand_Conversion ; 3707f + dw BattleCommand_ResetStats ; 3710e + dw BattleCommand_StoreEnergy ; 36671 + dw BattleCommand_UnleashEnergy ; 366e5 + dw BattleCommand_ForceSwitch ; 3680f + dw BattleCommand_EndLoop ; 369b6 + dw BattleCommand_FlinchTarget ; 36aa0 + dw BattleCommand_OHKO ; 36af3 + dw BattleCommand_Recoil ; 36cb2 + dw BattleCommand_Mist ; 36c7e + dw BattleCommand_FocusEnergy ; 36c98 + dw BattleCommand_Confuse ; 36d3b + dw BattleCommand_ConfuseTarget ; 36d1d + dw BattleCommand_Heal ; 3713e + dw BattleCommand_Transform ; 371cd + dw BattleCommand_Screen ; 372fc + dw BattleCommand_Poison ; 35f2c + dw BattleCommand_Paralyze ; 36dc7 + dw BattleCommand_Substitute ; 36e7c + dw BattleCommand_RechargeNextTurn ; 36f0b + dw BattleCommand_Mimic ; 36f46 + dw BattleCommand_Metronome ; 37418 + dw BattleCommand_LeechSeed ; 36f9d + dw BattleCommand_Splash ; 36fe1 + dw BattleCommand_Disable ; 36fed + dw BattleCommand_ClearText ; 37e85 + dw BattleCommand_Charge ; 36b4d + dw BattleCommand_CheckCharge ; 36b3a + dw BattleCommand_TrapTarget ; 36c2d + dw BattleCommand3c ; 36c2c + dw BattleCommand_Rampage ; 36751 + dw BattleCommand_CheckRampage ; 3671a + dw BattleCommand_ConstantDamage ; 35726 + dw BattleCommand_Counter ; 35813 + dw BattleCommand_Encore ; 35864 + dw BattleCommand_PainSplit ; 35926 + dw BattleCommand_Snore ; 359d0 + dw BattleCommand_Conversion2 ; 359e6 + dw BattleCommand_LockOn ; 35a53 + dw BattleCommand_Sketch ; 35a74 + dw BattleCommand_DefrostOpponent ; 35b16 + dw BattleCommand_SleepTalk ; 35b33 + dw BattleCommand_DestinyBond ; 35bff + dw BattleCommand_Spite ; 35c0f + dw BattleCommand_FalseSwipe ; 35c94 + dw BattleCommand_HealBell ; 35cc9 + dw BattleCommand_HeldFlinch ; 36ac9 + dw BattleCommand_TripleKick ; 346b2 + dw BattleCommand_KickCounter ; 346cd + dw BattleCommand_Thief ; 37492 + dw BattleCommand_ArenaTrap ; 37517 + dw BattleCommand_Nightmare ; 37536 + dw BattleCommand_Defrost ; 37563 + dw BattleCommand_Curse ; 37588 + dw BattleCommand_Protect ; 37618 + dw BattleCommand_Spikes ; 37683 + dw BattleCommand_Foresight ; 376a0 + dw BattleCommand_PerishSong ; 376c2 + dw BattleCommand_StartSandstorm ; 376f8 + dw BattleCommand_Endure ; 3766f + dw BattleCommand_CheckCurl ; 37718 + dw BattleCommand_RolloutPower ; 37734 + dw BattleCommand5d ; 37791 + dw BattleCommand_FuryCutter ; 37792 + dw BattleCommand_Attract ; 377ce + dw BattleCommand_HappinessPower ; 3784b + dw BattleCommand_Present ; 37874 + dw BattleCommand_DamageCalc ; 35612 - 62 + dw BattleCommand_FrustrationPower ; 3790e + dw BattleCommand_Safeguard ; 37939 + dw BattleCommand_CheckSafeguard ; 37972 + dw BattleCommand_GetMagnitude ; 37991 + dw BattleCommand_BatonPass ; 379c9 + dw BattleCommand_Pursuit ; 37b1d + dw BattleCommand_ClearHazards ; 37b39 + dw BattleCommand_HealMorn ; 37b74 + dw BattleCommand_HealDay ; 37b78 + dw BattleCommand_HealNite ; 37b7c + dw BattleCommand_HiddenPower ; 37be8 + dw BattleCommand_StartRain ; 37bf4 + dw BattleCommand_StartSun ; 37c07 + dw BattleCommand_AttackUp ; 361ac + dw BattleCommand_DefenseUp ; 361b0 + dw BattleCommand_SpeedUp ; 361b4 + dw BattleCommand_SpecialAttackUp ; 361b8 + dw BattleCommand_SpecialDefenseUp ; 361bc + dw BattleCommand_AccuracyUp ; 361c0 + dw BattleCommand_EvasionUp ; 361c4 + dw BattleCommand_AttackUp2 ; 361c8 + dw BattleCommand_DefenseUp2 ; 361cc + dw BattleCommand_SpeedUp2 ; 361d0 + dw BattleCommand_SpecialAttackUp2 ; 361d4 + dw BattleCommand_SpecialDefenseUp2 ; 361d8 + dw BattleCommand_AccuracyUp2 ; 361dc + dw BattleCommand_EvasionUp2 ; 361e0 + dw BattleCommand_AttackDown ; 362ad + dw BattleCommand_DefenseDown ; 362b1 + dw BattleCommand_SpeedDown ; 362b5 + dw BattleCommand_SpecialAttackDown ; 362b9 + dw BattleCommand_SpecialDefenseDown ; 362bd + dw BattleCommand_AccuracyDown ; 362c1 + dw BattleCommand_EvasionDown ; 362c5 + dw BattleCommand_AttackDown2 ; 362c9 + dw BattleCommand_DefenseDown2 ; 362cd + dw BattleCommand_SpeedDown2 ; 362d1 + dw BattleCommand_SpecialAttackDown2 ; 362d5 + dw BattleCommand_SpecialDefenseDown2 ; 362d9 + dw BattleCommand_AccuracyDown2 ; 362dd + dw BattleCommand_EvasionDown2 ; 362e1 + dw BattleCommand_StatUpMessage ; 363b8 + dw BattleCommand_StatDownMessage ; 363e9 + dw BattleCommand_StatUpFailText ; 3644c + dw BattleCommand_StatDownFailText ; 3646a + dw BattleCommand_EffectChance ; 34ecc + dw BattleCommand_StatDownAnim ; 34fdb + dw BattleCommand_StatUpAnim ; 34fd1 + dw BattleCommand_SwitchTurn ; 34ffd - 93 + dw BattleCommand_FakeOut ; 36a82 + dw BattleCommand_BellyDrum ; 37c1a + dw BattleCommand_PsychUp ; 37c55 + dw BattleCommand_Rage ; 36f1d + dw BattleCommand_DoubleFlyingDamage ; 36f25 + dw BattleCommand_DoubleUndergroundDamage ; 36f2f + dw BattleCommand_MirrorCoat ; 37c95 + dw BattleCommand_CheckFutureSight ; 37d0d + dw BattleCommand_FutureSight ; 37d34 + dw BattleCommand_DoubleMinimizeDamage ; 37ce6 + dw BattleCommand_SkipSunCharge ; 37d02 + dw BattleCommand_ThunderAccuracy ; 37d94 + dw BattleCommand_Teleport ; 36778 + dw BattleCommand_BeatUp ; 35461 + dw BattleCommand_RageDamage ; 3527b + dw BattleCommand_ResetTypeMatchup ; 34833 + dw BattleCommand_AllStatsUp ; 36500 + dw BattleCommanda5 ; 35165 + dw BattleCommand_RaiseSubNoAnim ; 365af + dw BattleCommand_LowerSubNoAnim ; 365c3 + dw BattleCommanda8 ; 355b5 + dw BattleCommand_ClearMissDamage ; 355d5 - a9 + dw BattleCommand_MoveDelay ; 37e80 + dw BattleCommand_HitTarget ; 34f57 + dw BattleCommand_TriStatusChance ; 3658f + dw BattleCommand_SuperEffectiveLoopText ; 351a5 + dw BattleCommand_StartLoop ; 35197 + dw BattleCommand_Curl ; 365a7 +; 3fe86 diff --git a/data/moves/move_anims.asm b/data/moves/move_anims.asm new file mode 100644 index 000000000..e28a2e62d --- /dev/null +++ b/data/moves/move_anims.asm @@ -0,0 +1,5176 @@ +BattleAnimations:: ; c906f +; entries correspond to constants/move_constants.asm + dw BattleAnim_0 + dw BattleAnim_Pound + dw BattleAnim_KarateChop + dw BattleAnim_Doubleslap + dw BattleAnim_CometPunch + dw BattleAnim_MegaPunch + dw BattleAnim_PayDay + dw BattleAnim_FirePunch + dw BattleAnim_IcePunch + dw BattleAnim_Thunderpunch + dw BattleAnim_Scratch + dw BattleAnim_Vicegrip + dw BattleAnim_Guillotine + dw BattleAnim_RazorWind + dw BattleAnim_SwordsDance + dw BattleAnim_Cut + dw BattleAnim_Gust + dw BattleAnim_WingAttack + dw BattleAnim_Whirlwind + dw BattleAnim_Fly + dw BattleAnim_Bind + dw BattleAnim_Slam + dw BattleAnim_VineWhip + dw BattleAnim_Stomp + dw BattleAnim_DoubleKick + dw BattleAnim_MegaKick + dw BattleAnim_JumpKick + dw BattleAnim_RollingKick + dw BattleAnim_SandAttack + dw BattleAnim_Headbutt + dw BattleAnim_HornAttack + dw BattleAnim_FuryAttack + dw BattleAnim_HornDrill + dw BattleAnim_Tackle + dw BattleAnim_BodySlam + dw BattleAnim_Wrap + dw BattleAnim_TakeDown + dw BattleAnim_Thrash + dw BattleAnim_DoubleEdge + dw BattleAnim_TailWhip + dw BattleAnim_PoisonSting + dw BattleAnim_Twineedle + dw BattleAnim_PinMissile + dw BattleAnim_Leer + dw BattleAnim_Bite + dw BattleAnim_Growl + dw BattleAnim_Roar + dw BattleAnim_Sing + dw BattleAnim_Supersonic + dw BattleAnim_Sonicboom + dw BattleAnim_Disable + dw BattleAnim_Acid + dw BattleAnim_Ember + dw BattleAnim_Flamethrower + dw BattleAnim_Mist + dw BattleAnim_WaterGun + dw BattleAnim_HydroPump + dw BattleAnim_Surf + dw BattleAnim_IceBeam + dw BattleAnim_Blizzard + dw BattleAnim_Psybeam + dw BattleAnim_Bubblebeam + dw BattleAnim_AuroraBeam + dw BattleAnim_HyperBeam + dw BattleAnim_Peck + dw BattleAnim_DrillPeck + dw BattleAnim_Submission + dw BattleAnim_LowKick + dw BattleAnim_Counter + dw BattleAnim_SeismicToss + dw BattleAnim_Strength + dw BattleAnim_Absorb + dw BattleAnim_MegaDrain + dw BattleAnim_LeechSeed + dw BattleAnim_Growth + dw BattleAnim_RazorLeaf + dw BattleAnim_Solarbeam + dw BattleAnim_Poisonpowder + dw BattleAnim_StunSpore + dw BattleAnim_SleepPowder + dw BattleAnim_PetalDance + dw BattleAnim_StringShot + dw BattleAnim_DragonRage + dw BattleAnim_FireSpin + dw BattleAnim_Thundershock + dw BattleAnim_Thunderbolt + dw BattleAnim_ThunderWave + dw BattleAnim_Thunder + dw BattleAnim_RockThrow + dw BattleAnim_Earthquake + dw BattleAnim_Fissure + dw BattleAnim_Dig + dw BattleAnim_Toxic + dw BattleAnim_Confusion + dw BattleAnim_PsychicM + dw BattleAnim_Hypnosis + dw BattleAnim_Meditate + dw BattleAnim_Agility + dw BattleAnim_QuickAttack + dw BattleAnim_Rage + dw BattleAnim_Teleport + dw BattleAnim_NightShade + dw BattleAnim_Mimic + dw BattleAnim_Screech + dw BattleAnim_DoubleTeam + dw BattleAnim_Recover + dw BattleAnim_Harden + dw BattleAnim_Minimize + dw BattleAnim_Smokescreen + dw BattleAnim_ConfuseRay + dw BattleAnim_Withdraw + dw BattleAnim_DefenseCurl + dw BattleAnim_Barrier + dw BattleAnim_LightScreen + dw BattleAnim_Haze + dw BattleAnim_Reflect + dw BattleAnim_FocusEnergy + dw BattleAnim_Bide + dw BattleAnim_Metronome + dw BattleAnim_MirrorMove + dw BattleAnim_Selfdestruct + dw BattleAnim_EggBomb + dw BattleAnim_Lick + dw BattleAnim_Smog + dw BattleAnim_Sludge + dw BattleAnim_BoneClub + dw BattleAnim_FireBlast + dw BattleAnim_Waterfall + dw BattleAnim_Clamp + dw BattleAnim_Swift + dw BattleAnim_SkullBash + dw BattleAnim_SpikeCannon + dw BattleAnim_Constrict + dw BattleAnim_Amnesia + dw BattleAnim_Kinesis + dw BattleAnim_Softboiled + dw BattleAnim_HiJumpKick + dw BattleAnim_Glare + dw BattleAnim_DreamEater + dw BattleAnim_PoisonGas + dw BattleAnim_Barrage + dw BattleAnim_LeechLife + dw BattleAnim_LovelyKiss + dw BattleAnim_SkyAttack + dw BattleAnim_Transform + dw BattleAnim_Bubble + dw BattleAnim_DizzyPunch + dw BattleAnim_Spore + dw BattleAnim_Flash + dw BattleAnim_Psywave + dw BattleAnim_Splash + dw BattleAnim_AcidArmor + dw BattleAnim_Crabhammer + dw BattleAnim_Explosion + dw BattleAnim_FurySwipes + dw BattleAnim_Bonemerang + dw BattleAnim_Rest + dw BattleAnim_RockSlide + dw BattleAnim_HyperFang + dw BattleAnim_Sharpen + dw BattleAnim_Conversion + dw BattleAnim_TriAttack + dw BattleAnim_SuperFang + dw BattleAnim_Slash + dw BattleAnim_Substitute + dw BattleAnim_Struggle + dw BattleAnim_Sketch + dw BattleAnim_TripleKick + dw BattleAnim_Thief + dw BattleAnim_SpiderWeb + dw BattleAnim_MindReader + dw BattleAnim_Nightmare + dw BattleAnim_FlameWheel + dw BattleAnim_Snore + dw BattleAnim_Curse + dw BattleAnim_Flail + dw BattleAnim_Conversion2 + dw BattleAnim_Aeroblast + dw BattleAnim_CottonSpore + dw BattleAnim_Reversal + dw BattleAnim_Spite + dw BattleAnim_PowderSnow + dw BattleAnim_Protect + dw BattleAnim_MachPunch + dw BattleAnim_ScaryFace + dw BattleAnim_FaintAttack + dw BattleAnim_SweetKiss + dw BattleAnim_BellyDrum + dw BattleAnim_SludgeBomb + dw BattleAnim_MudSlap + dw BattleAnim_Octazooka + dw BattleAnim_Spikes + dw BattleAnim_ZapCannon + dw BattleAnim_Foresight + dw BattleAnim_DestinyBond + dw BattleAnim_PerishSong + dw BattleAnim_IcyWind + dw BattleAnim_Detect + dw BattleAnim_BoneRush + dw BattleAnim_LockOn + dw BattleAnim_Outrage + dw BattleAnim_Sandstorm + dw BattleAnim_GigaDrain + dw BattleAnim_Endure + dw BattleAnim_Charm + dw BattleAnim_Rollout + dw BattleAnim_FalseSwipe + dw BattleAnim_Swagger + dw BattleAnim_MilkDrink + dw BattleAnim_Spark + dw BattleAnim_FuryCutter + dw BattleAnim_SteelWing + dw BattleAnim_MeanLook + dw BattleAnim_Attract + dw BattleAnim_SleepTalk + dw BattleAnim_HealBell + dw BattleAnim_Return + dw BattleAnim_Present + dw BattleAnim_Frustration + dw BattleAnim_Safeguard + dw BattleAnim_PainSplit + dw BattleAnim_SacredFire + dw BattleAnim_Magnitude + dw BattleAnim_Dynamicpunch + dw BattleAnim_Megahorn + dw BattleAnim_Dragonbreath + dw BattleAnim_BatonPass + dw BattleAnim_Encore + dw BattleAnim_Pursuit + dw BattleAnim_RapidSpin + dw BattleAnim_SweetScent + dw BattleAnim_IronTail + dw BattleAnim_MetalClaw + dw BattleAnim_VitalThrow + dw BattleAnim_MorningSun + dw BattleAnim_Synthesis + dw BattleAnim_Moonlight + dw BattleAnim_HiddenPower + dw BattleAnim_CrossChop + dw BattleAnim_Twister + dw BattleAnim_RainDance + dw BattleAnim_SunnyDay + dw BattleAnim_Crunch + dw BattleAnim_MirrorCoat + dw BattleAnim_PsychUp + dw BattleAnim_Extremespeed + dw BattleAnim_Ancientpower + dw BattleAnim_ShadowBall + dw BattleAnim_FutureSight + dw BattleAnim_RockSmash + dw BattleAnim_Whirlpool + dw BattleAnim_BeatUp + dw BattleAnim_252 + dw BattleAnim_253 + dw BattleAnim_254 + dw BattleAnim_SweetScent2 +; $100 + dw BattleAnim_ThrowPokeBall + dw BattleAnim_SendOutMon + dw BattleAnim_ReturnMon + dw BattleAnim_Confused + dw BattleAnim_Slp + dw BattleAnim_Brn + dw BattleAnim_Psn + dw BattleAnim_Sap + dw BattleAnim_Frz + dw BattleAnim_Par + dw BattleAnim_InLove + dw BattleAnim_InSandstorm + dw BattleAnim_InNightmare + dw BattleAnim_InWhirlpool + dw BattleAnim_Miss + dw BattleAnim_EnemyDamage + dw BattleAnim_EnemyStatDown + dw BattleAnim_PlayerStatDown + dw BattleAnim_PlayerDamage + dw BattleAnim_Wobble + dw BattleAnim_Shake + dw BattleAnim_HitConfusion +; c929b + +BattleAnim_0: ; c929b +BattleAnim_252: ; c929b +BattleAnim_253: ; c929b +BattleAnim_254: ; c929b +BattleAnim_MirrorMove: ; c929b + anim_ret +; c929c + +BattleAnim_SweetScent2: ; c929c + anim_2gfx ANIM_GFX_FLOWER, ANIM_GFX_MISC + anim_obj ANIM_OBJ_FLOWER, 8, 0, 12, 0, $2 + anim_wait 2 + anim_obj ANIM_OBJ_FLOWER, 8, 0, 10, 0, $2 + anim_wait 64 + anim_obj ANIM_OBJ_COTTON, -15, 0, 5, 0, $15 + anim_obj ANIM_OBJ_COTTON, -15, 0, 5, 0, $2a + anim_obj ANIM_OBJ_COTTON, -15, 0, 5, 0, $3f + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_wait 128 + anim_ret +; c92c1 + +BattleAnim_ThrowPokeBall + anim_if_param_equal NO_ITEM, .TheTrainerBlockedTheBall + anim_if_param_equal MASTER_BALL, .MasterBall + anim_if_param_equal ULTRA_BALL, .UltraBall + anim_if_param_equal GREAT_BALL, .GreatBall + ; any other ball + anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE + anim_sound 6, 2, SFX_THROW_BALL + anim_obj ANIM_OBJ_POKE_BALL, 8, 4, 11, 4, $40 + anim_wait 36 + anim_obj ANIM_OBJ_POKE_BALL, -15, 0, 8, 1, $0 + anim_setobj $2, $7 + anim_wait 16 + anim_sound 0, 1, SFX_BALL_POOF + anim_obj ANIM_OBJ_BALL_POOF, -15, 0, 8, 0, $10 + anim_wait 16 + anim_jump .Shake +; c92f2 + +.TheTrainerBlockedTheBall: + anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_HIT + anim_sound 6, 2, SFX_THROW_BALL + anim_obj ANIM_OBJ_POKE_BALL_BLOCKED, 8, 0, 11, 4, $20 + anim_wait 20 + anim_obj ANIM_OBJ_01, 14, 0, 5, 0, $0 + anim_wait 32 + anim_ret +; c9305 + +.UltraBall: + anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE + anim_sound 6, 2, SFX_THROW_BALL + anim_obj ANIM_OBJ_POKE_BALL, 8, 4, 11, 4, $40 + anim_wait 36 + anim_obj ANIM_OBJ_POKE_BALL, -15, 0, 8, 1, $0 + anim_setobj $2, $7 + anim_wait 16 + anim_sound 0, 1, SFX_BALL_POOF + anim_obj ANIM_OBJ_BALL_POOF, -15, 0, 8, 0, $10 + anim_wait 16 + anim_jump .Shake +; c9326 + +.GreatBall: + anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE + anim_sound 6, 2, SFX_THROW_BALL + anim_obj ANIM_OBJ_POKE_BALL, 8, 4, 11, 4, $40 + anim_wait 36 + anim_obj ANIM_OBJ_POKE_BALL, -15, 0, 8, 1, $0 + anim_setobj $2, $7 + anim_wait 16 + anim_sound 0, 1, SFX_BALL_POOF + anim_obj ANIM_OBJ_BALL_POOF, -15, 0, 8, 0, $10 + anim_wait 16 + anim_jump .Shake +; c9347 + +.MasterBall: + anim_3gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE, ANIM_GFX_SPEED + anim_sound 6, 2, SFX_THROW_BALL + anim_obj ANIM_OBJ_POKE_BALL, 8, 0, 11, 4, $20 + anim_wait 36 + anim_obj ANIM_OBJ_POKE_BALL, -15, 0, 8, 1, $0 + anim_setobj $2, $7 + anim_wait 16 + anim_sound 0, 1, SFX_BALL_POOF + anim_obj ANIM_OBJ_BALL_POOF, -15, 0, 8, 0, $10 + anim_wait 24 + anim_sound 0, 1, SFX_MASTER_BALL + anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0, 7, 0, $30 + anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0, 7, 0, $31 + anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0, 7, 0, $32 + anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0, 7, 0, $33 + anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0, 7, 0, $34 + anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0, 7, 0, $35 + anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0, 7, 0, $36 + anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0, 7, 0, $37 + anim_wait 64 +.Shake: + anim_bgeffect ANIM_BG_RETURN_MON, $0, $0, $0 + anim_wait 8 + anim_incobj 2 + anim_wait 16 + anim_sound 0, 1, SFX_CHANGE_DEX_MODE + anim_incobj 1 + anim_wait 32 + anim_sound 0, 1, SFX_BALL_BOUNCE + anim_wait 32 + anim_wait 32 + anim_wait 32 + anim_wait 8 + anim_setvar $0 +.Loop: + anim_wait 48 + anim_checkpokeball + anim_if_var_equal $1, .Click + anim_if_var_equal $2, .BreakFree + anim_incobj 1 + anim_sound 0, 1, SFX_BALL_WIGGLE + anim_jump .Loop +; c93bc + +.Click: + anim_clearsprites + anim_ret +; c93be + +.BreakFree: + anim_setobj $1, $b + anim_sound 0, 1, SFX_BALL_POOF + anim_obj ANIM_OBJ_BALL_POOF, -15, 0, 8, 0, $10 + anim_wait 2 + anim_bgeffect ANIM_BG_ENTER_MON, $0, $0, $0 + anim_wait 32 + anim_ret +; c93d1 + +BattleAnim_SendOutMon: ; c93d1 + anim_if_param_equal $0, .Normal + anim_if_param_equal $1, .Shiny + anim_if_param_equal $2, .Unknown + anim_1gfx ANIM_GFX_SMOKE + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_2B, $0, $1, $0 + anim_sound 0, 0, SFX_BALL_POOF + anim_obj ANIM_OBJ_1B, 6, 0, 12, 0, $0 + anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0 + anim_wait 128 + anim_wait 4 + anim_call BattleAnim_ShowMon_0 + anim_ret + +.Unknown: + anim_1gfx ANIM_GFX_SMOKE + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_2A, $0, $1, $0 + anim_wait 1 + anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 + anim_wait 4 + anim_sound 0, 0, SFX_BALL_POOF + anim_obj ANIM_OBJ_1B, 6, 0, 12, 0, $0 + anim_incbgeffect ANIM_BG_2A + anim_wait 96 + anim_incbgeffect ANIM_BG_2A + anim_call BattleAnim_ShowMon_0 + anim_ret + +.Shiny: + anim_1gfx ANIM_GFX_SPEED + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3 + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $0 + anim_wait 4 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $8 + anim_wait 4 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $10 + anim_wait 4 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $18 + anim_wait 4 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $20 + anim_wait 4 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $28 + anim_wait 4 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $30 + anim_wait 4 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $38 + anim_wait 32 + anim_ret + +.Normal: + anim_1gfx ANIM_GFX_SMOKE + anim_sound 0, 0, SFX_BALL_POOF + anim_obj ANIM_OBJ_BALL_POOF, 5, 4, 12, 0, $0 + anim_wait 4 + anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0 + anim_wait 32 + anim_ret +; c9483 + +BattleAnim_ReturnMon: ; c9483 + anim_sound 0, 0, SFX_BALL_POOF +BattleAnim_BatonPass_branch_c9486: ; c9486 + anim_bgeffect ANIM_BG_RETURN_MON, $0, $1, $0 + anim_wait 32 + anim_ret +; c948d + +BattleAnim_Confused: ; c948d + anim_1gfx ANIM_GFX_STATUS + anim_sound 0, 0, SFX_KINESIS + anim_obj ANIM_OBJ_CHICK, 5, 4, 7, 0, $15 + anim_obj ANIM_OBJ_CHICK, 5, 4, 7, 0, $aa + anim_obj ANIM_OBJ_CHICK, 5, 4, 7, 0, $bf + anim_wait 96 + anim_ret +; c94a3 + +BattleAnim_Slp: ; c94a3 + anim_1gfx ANIM_GFX_STATUS + anim_sound 0, 0, SFX_TAIL_WHIP +.loop + anim_obj ANIM_OBJ_54, 8, 0, 10, 0, $0 + anim_wait 40 + anim_loop 3, .loop + anim_wait 32 + anim_ret +; c94b4 + +BattleAnim_Brn: ; c94b4 + anim_1gfx ANIM_GFX_FIRE +.loop + anim_sound 0, 0, SFX_BURN + anim_obj ANIM_OBJ_BURNED, 7, 0, 11, 0, $10 + anim_wait 4 + anim_loop 3, .loop + anim_wait 6 + anim_ret +; c94c5 + +BattleAnim_Psn: ; c94c5 + anim_1gfx ANIM_GFX_POISON + anim_sound 0, 0, SFX_POISON + anim_obj ANIM_OBJ_SKULL, 8, 0, 7, 0, $0 + anim_wait 8 + anim_sound 0, 0, SFX_POISON + anim_obj ANIM_OBJ_SKULL, 6, 0, 7, 0, $0 + anim_wait 8 + anim_ret +; c94da + +BattleAnim_Sap: ; c94da + anim_1gfx ANIM_GFX_CHARGE + anim_sound 6, 3, SFX_WATER_GUN + anim_obj ANIM_OBJ_ABSORB, 16, 0, 6, 0, $2 + anim_wait 6 + anim_sound 6, 3, SFX_WATER_GUN + anim_obj ANIM_OBJ_ABSORB, -15, 0, 8, 0, $3 + anim_wait 6 + anim_sound 6, 3, SFX_WATER_GUN + anim_obj ANIM_OBJ_ABSORB, -15, 0, 4, 0, $4 + anim_wait 16 + anim_ret +; c94f8 + +BattleAnim_Frz: ; c94f8 + anim_1gfx ANIM_GFX_ICE + anim_obj ANIM_OBJ_FROZEN, 5, 4, 13, 6, $0 + anim_sound 0, 0, SFX_SHINE + anim_wait 16 + anim_sound 0, 0, SFX_SHINE + anim_wait 16 + anim_ret +; c9508 + +BattleAnim_Par: ; c9508 + anim_1gfx ANIM_GFX_STATUS + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_sound 0, 0, SFX_THUNDERSHOCK + anim_obj ANIM_OBJ_PARALYZED, 2, 4, 11, 0, $42 + anim_obj ANIM_OBJ_PARALYZED, 9, 4, 11, 0, $c2 + anim_wait 128 + anim_ret +; c951e + +BattleAnim_InLove: ; c951e + anim_1gfx ANIM_GFX_OBJECTS + anim_sound 0, 0, SFX_LICK + anim_obj ANIM_OBJ_HEART, 8, 0, 9, 4, $0 + anim_wait 32 + anim_sound 0, 0, SFX_LICK + anim_obj ANIM_OBJ_HEART, 4, 4, 9, 0, $0 + anim_wait 32 + anim_ret +; c9533 + +BattleAnim_InSandstorm: ; c9533 + anim_1gfx ANIM_GFX_POWDER + anim_obj ANIM_OBJ_A2, 11, 0, 0, 0, $0 + anim_wait 8 + anim_obj ANIM_OBJ_A2, 9, 0, 0, 0, $1 + anim_wait 8 + anim_obj ANIM_OBJ_A2, 7, 0, 0, 0, $2 +.loop + anim_sound 0, 1, SFX_MENU + anim_wait 8 + anim_loop 6, .loop + anim_wait 8 + anim_ret +; c9550 + +BattleAnim_InNightmare: ; c9550 + anim_1gfx ANIM_GFX_ANGELS + anim_sound 0, 0, SFX_BUBBLEBEAM + anim_obj ANIM_OBJ_95, 8, 4, 10, 0, $0 + anim_wait 40 + anim_ret +; c955c + +BattleAnim_InWhirlpool: ; c955c + anim_1gfx ANIM_GFX_WIND + anim_bgeffect ANIM_BG_WHIRLPOOL, $0, $0, $0 + anim_sound 0, 1, SFX_SURF +.loop + anim_obj ANIM_OBJ_GUST, -16, 4, 9, 0, $0 + anim_wait 6 + anim_loop 6, .loop + anim_incbgeffect ANIM_BG_WHIRLPOOL + anim_wait 1 + anim_ret +; c9574 + +BattleAnim_HitConfusion: ; c9574 + anim_1gfx ANIM_GFX_HIT + anim_sound 0, 0, SFX_POUND + anim_obj ANIM_OBJ_04, 5, 4, 12, 0, $0 + anim_wait 16 + anim_ret +; c9580 + +BattleAnim_Miss: ; c9580 + anim_ret +; c9581 + +BattleAnim_EnemyDamage: ; c9581 +.loop + anim_bgeffect ANIM_BG_HIDE_MON, $0, $0, $0 + anim_wait 5 + anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0 + anim_wait 5 + anim_loop 3, .loop + anim_ret +; c9592 + +BattleAnim_EnemyStatDown: ; c9592 + anim_call BattleAnim_FollowEnemyFeet_1 + anim_bgeffect ANIM_BG_VIBRATE_MON, $0, $0, $0 + anim_wait 40 + anim_call BattleAnim_ShowMon_1 + anim_wait 1 + anim_ret +; c95a0 + +BattleAnim_PlayerStatDown: ; c95a0 + anim_call BattleAnim_FollowEnemyFeet_1 + anim_bgeffect ANIM_BG_WOBBLE_MON, $0, $0, $0 + anim_wait 40 + anim_call BattleAnim_ShowMon_1 + anim_wait 1 + anim_ret +; c95ae + +BattleAnim_PlayerDamage: ; c95ae + anim_bgeffect ANIM_BG_20, $20, $2, $20 + anim_wait 40 + anim_ret +; c95b5 + +BattleAnim_Wobble: ; c95b5 + anim_bgeffect ANIM_BG_35, $0, $0, $0 + anim_wait 40 + anim_ret +; c95bc + +BattleAnim_Shake: ; c95bc + anim_bgeffect ANIM_BG_1F, $20, $2, $40 + anim_wait 40 + anim_ret +; c95c3 + +BattleAnim_Pound: ; c95c3 + anim_1gfx ANIM_GFX_HIT + anim_sound 0, 1, SFX_POUND + anim_obj ANIM_OBJ_08, -15, 0, 7, 0, $0 + anim_wait 6 + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 + anim_wait 16 + anim_ret +; c95d5 + +BattleAnim_KarateChop: ; c95d5 + anim_1gfx ANIM_GFX_HIT + anim_sound 0, 1, SFX_KARATE_CHOP + anim_obj ANIM_OBJ_08, -15, 0, 5, 0, $0 + anim_wait 6 + anim_obj ANIM_OBJ_01, -15, 0, 5, 0, $0 + anim_wait 6 + anim_sound 0, 1, SFX_KARATE_CHOP + anim_obj ANIM_OBJ_08, -15, 0, 5, 4, $0 + anim_wait 6 + anim_obj ANIM_OBJ_01, -15, 0, 5, 4, $0 + anim_wait 6 + anim_sound 0, 1, SFX_KARATE_CHOP + anim_obj ANIM_OBJ_08, -15, 0, 6, 0, $0 + anim_wait 6 + anim_obj ANIM_OBJ_01, -15, 0, 6, 0, $0 + anim_wait 16 + anim_ret +; c9605 + +BattleAnim_Doubleslap: ; c9605 + anim_1gfx ANIM_GFX_HIT + anim_if_param_equal $1, BattleAnim_Doubleslap_branch_c961b + anim_sound 0, 1, SFX_DOUBLESLAP + anim_obj ANIM_OBJ_08, -14, 0, 6, 0, $0 + anim_wait 6 + anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $0 + anim_wait 8 + anim_ret +; c961b + +BattleAnim_Doubleslap_branch_c961b: ; c961b + anim_sound 0, 1, SFX_DOUBLESLAP + anim_obj ANIM_OBJ_08, 15, 0, 6, 0, $0 + anim_wait 6 + anim_obj ANIM_OBJ_01, 15, 0, 6, 0, $0 + anim_wait 8 + anim_ret +; c962b + +BattleAnim_CometPunch: ; c962b + anim_1gfx ANIM_GFX_HIT + anim_if_param_equal $1, BattleAnim_CometPunch_branch_c9641 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_06, -14, 0, 6, 0, $0 + anim_wait 6 + anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $0 + anim_wait 8 + anim_ret +; c9641 + +BattleAnim_CometPunch_branch_c9641: ; c9641 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_06, 15, 0, 8, 0, $0 + anim_wait 6 + anim_obj ANIM_OBJ_01, 15, 0, 8, 0, $0 + anim_wait 8 + anim_ret +; c9651 + +BattleAnim_Bide_branch_c9651: ; c9651 +BattleAnim_MegaPunch: ; c9651 + anim_1gfx ANIM_GFX_HIT + anim_bgeffect ANIM_BG_1F, $40, $2, $0 + anim_wait 48 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3 +.loop + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_06, -15, 0, 7, 0, $0 + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 + anim_wait 6 + anim_obj ANIM_OBJ_06, -15, 0, 7, 0, $0 + anim_wait 6 + anim_loop 3, .loop + anim_ret +; c9677 + +BattleAnim_Stomp: ; c9677 + anim_1gfx ANIM_GFX_HIT + anim_sound 0, 1, SFX_STOMP + anim_obj ANIM_OBJ_07, -15, 0, 5, 0, $0 + anim_wait 6 + anim_obj ANIM_OBJ_01, -15, 0, 5, 0, $0 + anim_wait 6 + anim_sound 0, 1, SFX_STOMP + anim_obj ANIM_OBJ_07, -15, 0, 5, 4, $0 + anim_wait 6 + anim_obj ANIM_OBJ_01, -15, 0, 5, 4, $0 + anim_wait 6 + anim_sound 0, 1, SFX_STOMP + anim_obj ANIM_OBJ_07, -15, 0, 6, 0, $0 + anim_wait 6 + anim_obj ANIM_OBJ_01, -15, 0, 6, 0, $0 + anim_wait 16 + anim_ret +; c96a7 + +BattleAnim_DoubleKick: ; c96a7 + anim_1gfx ANIM_GFX_HIT + anim_if_param_equal $1, BattleAnim_DoubleKick_branch_c96bd + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_07, -14, 0, 6, 0, $0 + anim_wait 6 + anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $0 + anim_wait 8 + anim_ret +; c96bd + +BattleAnim_DoubleKick_branch_c96bd: ; c96bd + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_07, 15, 0, 8, 0, $0 + anim_wait 6 + anim_obj ANIM_OBJ_01, 15, 0, 8, 0, $0 + anim_wait 8 + anim_ret +; c96cd + +BattleAnim_JumpKick: ; c96cd + anim_1gfx ANIM_GFX_HIT + anim_if_param_equal $1, BattleAnim_JumpKick_branch_c96f1 + anim_sound 0, 1, SFX_JUMP_KICK + anim_obj ANIM_OBJ_07, 14, 0, 9, 0, $0 + anim_obj ANIM_OBJ_07, 12, 4, 7, 4, $0 + anim_setobj $1, $2 + anim_setobj $2, $2 + anim_wait 24 + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_04, -15, 0, 6, 0, $0 + anim_wait 16 + anim_ret +; c96f1 + +BattleAnim_JumpKick_branch_c96f1: ; c96f1 + anim_wait 8 + anim_sound 0, 0, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_04, 5, 4, 11, 0, $0 + anim_wait 16 + anim_ret +; c96fc + +BattleAnim_HiJumpKick: ; c96fc + anim_1gfx ANIM_GFX_HIT + anim_bgeffect ANIM_BG_1F, $40, $2, $0 + anim_if_param_equal $1, BattleAnim_HiJumpKick_branch_c971e + anim_wait 32 + anim_sound 0, 1, SFX_JUMP_KICK + anim_obj ANIM_OBJ_07, 14, 0, 9, 0, $0 + anim_setobj $1, $2 + anim_wait 16 + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_04, -15, 0, 6, 0, $0 + anim_wait 16 + anim_ret +; c971e + +BattleAnim_HiJumpKick_branch_c971e: ; c971e + anim_wait 16 + anim_sound 0, 0, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_04, 5, 4, 11, 0, $0 + anim_wait 16 + anim_ret +; c9729 + +BattleAnim_RollingKick: ; c9729 + anim_1gfx ANIM_GFX_HIT + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_07, 14, 0, 7, 0, $0 + anim_setobj $1, $3 + anim_wait 12 + anim_obj ANIM_OBJ_01, -15, 0, 6, 0, $0 + anim_wait 16 + anim_ret +; c973e + +BattleAnim_MegaKick: ; c973e + anim_1gfx ANIM_GFX_HIT + anim_bgeffect ANIM_BG_1F, $40, $2, $0 + anim_wait 67 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3 +.loop + anim_sound 0, 1, SFX_MEGA_KICK + anim_obj ANIM_OBJ_07, -15, 0, 7, 0, $0 + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 + anim_wait 6 + anim_obj ANIM_OBJ_07, -15, 0, 7, 0, $0 + anim_wait 6 + anim_loop 3, .loop + anim_ret +; c9764 + +BattleAnim_HyperFang: ; c9764 + anim_1gfx ANIM_GFX_HIT + anim_bgeffect ANIM_BG_1F, $20, $1, $0 + anim_sound 0, 1, SFX_BITE + anim_obj ANIM_OBJ_09, -15, 0, 7, 0, $0 + anim_wait 6 + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 + anim_wait 16 + anim_ret +; c977b + +BattleAnim_SuperFang: ; c977b + anim_1gfx ANIM_GFX_HIT + anim_bgeffect ANIM_BG_1F, $40, $2, $0 + anim_wait 48 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3 +.loop + anim_sound 0, 1, SFX_BITE + anim_obj ANIM_OBJ_09, -15, 0, 7, 0, $0 + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 + anim_wait 6 + anim_obj ANIM_OBJ_09, -15, 0, 7, 0, $0 + anim_wait 6 + anim_loop 3, .loop + anim_ret +; c97a1 + +BattleAnim_Ember: ; c97a1 + anim_1gfx ANIM_GFX_FIRE + anim_sound 6, 2, SFX_EMBER + anim_obj ANIM_OBJ_0B, 8, 0, 12, 0, $12 + anim_wait 4 + anim_sound 6, 2, SFX_EMBER + anim_obj ANIM_OBJ_0B, 8, 0, 12, 4, $14 + anim_wait 4 + anim_sound 6, 2, SFX_EMBER + anim_obj ANIM_OBJ_0B, 8, 0, 10, 4, $13 + anim_wait 16 + anim_incobj 1 + anim_incobj 2 + anim_incobj 3 + anim_sound 0, 1, SFX_EMBER + anim_obj ANIM_OBJ_0B, 15, 0, 8, 4, $30 + anim_obj ANIM_OBJ_0B, -16, 4, 8, 4, $30 + anim_obj ANIM_OBJ_0B, -14, 0, 8, 4, $30 + anim_wait 32 + anim_ret +; c97d8 + +BattleAnim_FirePunch: ; c97d8 + anim_2gfx ANIM_GFX_HIT, ANIM_GFX_FIRE + anim_obj ANIM_OBJ_0A, -15, 0, 7, 0, $43 + anim_call BattleAnim_FirePunch_branch_cbbcc + anim_wait 16 + anim_ret +; c97e5 + +BattleAnim_FireSpin: ; c97e5 + anim_1gfx ANIM_GFX_FIRE +.loop + anim_sound 6, 2, SFX_EMBER + anim_obj ANIM_OBJ_0E, 8, 0, 11, 0, $4 + anim_wait 2 + anim_sound 6, 2, SFX_EMBER + anim_obj ANIM_OBJ_0E, 8, 0, 12, 0, $3 + anim_wait 2 + anim_sound 6, 2, SFX_EMBER + anim_obj ANIM_OBJ_0E, 8, 0, 11, 0, $3 + anim_wait 2 + anim_sound 6, 2, SFX_EMBER + anim_obj ANIM_OBJ_0E, 8, 0, 12, 0, $4 + anim_wait 2 + anim_loop 2, .loop + anim_wait 96 + anim_ret +; c9811 + +BattleAnim_DragonRage: ; c9811 + anim_1gfx ANIM_GFX_FIRE +.loop + anim_sound 6, 2, SFX_EMBER + anim_obj ANIM_OBJ_0C, 8, 0, 11, 4, $0 + anim_wait 3 + anim_loop 16, .loop + anim_wait 64 + anim_ret +; c9822 + +BattleAnim_Flamethrower: ; c9822 + anim_1gfx ANIM_GFX_FIRE + anim_sound 6, 2, SFX_EMBER + anim_obj ANIM_OBJ_0D, 8, 0, 11, 4, $3 + anim_wait 2 + anim_obj ANIM_OBJ_0D, 9, 3, 10, 6, $5 + anim_wait 2 + anim_obj ANIM_OBJ_0D, 10, 5, 10, 1, $7 + anim_wait 2 + anim_obj ANIM_OBJ_0D, 12, 0, 9, 4, $9 + anim_wait 2 + anim_obj ANIM_OBJ_0D, 13, 2, 8, 7, $b + anim_wait 2 + anim_obj ANIM_OBJ_0D, 14, 4, 8, 2, $c + anim_wait 2 + anim_obj ANIM_OBJ_0D, 15, 6, 7, 5, $a + anim_wait 2 + anim_obj ANIM_OBJ_0D, -15, 0, 7, 0, $8 + anim_wait 16 +.loop + anim_sound 0, 1, SFX_EMBER + anim_wait 16 + anim_loop 6, .loop + anim_wait 16 + anim_ret +; c9861 + +BattleAnim_FireBlast: ; c9861 + anim_1gfx ANIM_GFX_FIRE +.loop1 + anim_sound 6, 2, SFX_EMBER + anim_obj ANIM_OBJ_0F, 8, 0, 11, 4, $7 + anim_wait 6 + anim_loop 10, .loop1 +.loop2 + anim_sound 0, 1, SFX_EMBER + anim_wait 8 + anim_loop 10, .loop2 + anim_incobj 1 + anim_incobj 2 + anim_incobj 3 + anim_incobj 4 + anim_incobj 5 + anim_incobj 6 + anim_incobj 7 + anim_incobj 8 + anim_incobj 9 + anim_incobj 10 + anim_wait 2 +.loop3 + anim_sound 0, 1, SFX_EMBER + anim_obj ANIM_OBJ_0F, -15, 0, 7, 0, $1 + anim_obj ANIM_OBJ_0F, -15, 0, 7, 0, $2 + anim_obj ANIM_OBJ_0F, -15, 0, 7, 0, $3 + anim_obj ANIM_OBJ_0F, -15, 0, 7, 0, $4 + anim_obj ANIM_OBJ_0F, -15, 0, 7, 0, $5 + anim_wait 16 + anim_loop 2, .loop3 + anim_wait 32 + anim_ret +; c98b0 + +BattleAnim_IcePunch: ; c98b0 + anim_2gfx ANIM_GFX_HIT, ANIM_GFX_ICE + anim_obj ANIM_OBJ_0A, -15, 0, 7, 0, $43 + anim_call BattleAnim_IcePunch_branch_cbbdf + anim_wait 32 + anim_ret +; c98bd + +BattleAnim_IceBeam: ; c98bd + anim_1gfx ANIM_GFX_ICE +.loop + anim_sound 6, 2, SFX_SHINE + anim_obj ANIM_OBJ_ICE_BEAM, 8, 0, 11, 4, $4 + anim_wait 4 + anim_loop 5, .loop + anim_obj ANIM_OBJ_ICE_BUILDUP, -15, 0, 9, 2, $10 +.loop2 + anim_sound 6, 2, SFX_SHINE + anim_obj ANIM_OBJ_ICE_BEAM, 8, 0, 11, 4, $4 + anim_wait 4 + anim_loop 15, .loop2 + anim_wait 48 + anim_sound 0, 1, SFX_SHINE + anim_wait 8 + anim_sound 0, 1, SFX_SHINE + anim_wait 8 + anim_ret +; c98e8 + +BattleAnim_Blizzard: ; c98e8 + anim_1gfx ANIM_GFX_ICE +.loop + anim_sound 6, 2, SFX_SHINE + anim_obj ANIM_OBJ_BLIZZARD, 8, 0, 11, 0, $63 + anim_wait 2 + anim_sound 6, 2, SFX_SHINE + anim_obj ANIM_OBJ_BLIZZARD, 8, 0, 10, 0, $64 + anim_wait 2 + anim_sound 6, 2, SFX_SHINE + anim_obj ANIM_OBJ_BLIZZARD, 8, 0, 12, 0, $63 + anim_wait 2 + anim_loop 3, .loop + anim_bgeffect ANIM_BG_WHITE_HUES, $0, $8, $0 + anim_wait 32 + anim_obj ANIM_OBJ_ICE_BUILDUP, -15, 0, 9, 2, $10 + anim_wait 128 + anim_sound 0, 1, SFX_SHINE + anim_wait 8 + anim_sound 0, 1, SFX_SHINE + anim_wait 24 + anim_ret +; c991e + +BattleAnim_Bubble: ; c991e + anim_1gfx ANIM_GFX_BUBBLE + anim_sound 32, 2, SFX_WATER_GUN + anim_obj ANIM_OBJ_BUBBLE, 8, 0, 11, 4, $c1 + anim_wait 6 + anim_sound 32, 2, SFX_WATER_GUN + anim_obj ANIM_OBJ_BUBBLE, 8, 0, 11, 4, $e1 + anim_wait 6 + anim_sound 32, 2, SFX_WATER_GUN + anim_obj ANIM_OBJ_BUBBLE, 8, 0, 11, 4, $d1 + anim_wait 128 + anim_wait 32 + anim_ret +; c993d + +BattleAnim_Bubblebeam: ; c993d + anim_1gfx ANIM_GFX_BUBBLE +.loop + anim_sound 16, 2, SFX_BUBBLEBEAM + anim_obj ANIM_OBJ_BUBBLE, 8, 0, 11, 4, $92 + anim_wait 6 + anim_sound 16, 2, SFX_BUBBLEBEAM + anim_obj ANIM_OBJ_BUBBLE, 8, 0, 11, 4, $b3 + anim_wait 6 + anim_sound 16, 2, SFX_BUBBLEBEAM + anim_obj ANIM_OBJ_BUBBLE, 8, 0, 11, 4, $f4 + anim_wait 8 + anim_loop 3, .loop + anim_wait 64 + anim_clearobjs + anim_bgeffect ANIM_BG_30, $0, $0, $0 + anim_wait 1 + anim_call BattleAnim_FollowPlayerHead_1 + anim_bgeffect ANIM_BG_31, $1c, $0, $0 + anim_wait 19 + anim_call BattleAnim_ShowMon_1 + anim_bgeffect ANIM_BG_32, $0, $0, $0 + anim_wait 8 + anim_ret +; c9979 + +BattleAnim_WaterGun: ; c9979 + anim_bgeffect ANIM_BG_30, $0, $0, $0 + anim_1gfx ANIM_GFX_WATER + anim_call BattleAnim_FollowPlayerHead_1 + anim_sound 16, 2, SFX_WATER_GUN + anim_obj ANIM_OBJ_24, 8, 0, 11, 0, $0 + anim_wait 8 + anim_obj ANIM_OBJ_24, 8, 0, 9, 4, $0 + anim_wait 8 + anim_obj ANIM_OBJ_24, 8, 0, 10, 2, $0 + anim_wait 24 + anim_bgeffect ANIM_BG_31, $1c, $0, $0 + anim_wait 8 + anim_bgeffect ANIM_BG_31, $8, $0, $0 + anim_wait 8 + anim_bgeffect ANIM_BG_31, $30, $0, $0 + anim_wait 32 + anim_call BattleAnim_ShowMon_1 + anim_bgeffect ANIM_BG_32, $0, $0, $0 + anim_wait 16 + anim_ret +; c99b4 + +BattleAnim_HydroPump: ; c99b4 + anim_bgeffect ANIM_BG_30, $0, $0, $0 + anim_1gfx ANIM_GFX_WATER + anim_call BattleAnim_FollowPlayerHead_1 + anim_sound 0, 1, SFX_HYDRO_PUMP + anim_obj ANIM_OBJ_25, 13, 4, 9, 0, $0 + anim_bgeffect ANIM_BG_31, $1c, $0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_HYDRO_PUMP + anim_obj ANIM_OBJ_25, 14, 4, 9, 0, $0 + anim_bgeffect ANIM_BG_31, $8, $0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_HYDRO_PUMP + anim_obj ANIM_OBJ_25, 15, 4, 9, 0, $0 + anim_bgeffect ANIM_BG_31, $30, $0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_HYDRO_PUMP + anim_obj ANIM_OBJ_25, -16, 4, 9, 0, $0 + anim_bgeffect ANIM_BG_31, $1c, $0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_HYDRO_PUMP + anim_obj ANIM_OBJ_25, -15, 4, 9, 0, $0 + anim_bgeffect ANIM_BG_31, $8, $0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_HYDRO_PUMP + anim_obj ANIM_OBJ_25, -14, 4, 9, 0, $0 + anim_bgeffect ANIM_BG_31, $30, $0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_HYDRO_PUMP + anim_obj ANIM_OBJ_25, -13, 4, 9, 0, $0 + anim_bgeffect ANIM_BG_31, $1c, $0, $0 + anim_wait 32 + anim_call BattleAnim_ShowMon_1 + anim_bgeffect ANIM_BG_32, $0, $0, $0 + anim_wait 16 + anim_ret +; c9a2a + +BattleAnim_Surf: ; c9a2a + anim_1gfx ANIM_GFX_BUBBLE + anim_bgeffect ANIM_BG_SURF, $0, $0, $0 + anim_obj ANIM_OBJ_22, 11, 0, 13, 0, $8 +.loop + anim_sound 0, 1, SFX_SURF + anim_wait 32 + anim_loop 4, .loop + anim_incobj 1 + anim_wait 56 + anim_ret +; c9a42 + +BattleAnim_VineWhip: ; c9a42 + anim_1gfx ANIM_GFX_WHIP + anim_sound 0, 1, SFX_VINE_WHIP + anim_obj ANIM_OBJ_40, 14, 4, 6, 4, $80 + anim_wait 4 + anim_sound 0, 1, SFX_VINE_WHIP + anim_obj ANIM_OBJ_3F, 16, 0, 7, 4, $0 + anim_wait 4 + anim_incobj 1 + anim_wait 4 + anim_ret +; c9a5a + +BattleAnim_LeechSeed: ; c9a5a + anim_1gfx ANIM_GFX_PLANT + anim_sound 16, 2, SFX_VINE_WHIP + anim_obj ANIM_OBJ_LEECH_SEED, 6, 0, 10, 0, $20 + anim_wait 8 + anim_sound 16, 2, SFX_VINE_WHIP + anim_obj ANIM_OBJ_LEECH_SEED, 6, 0, 10, 0, $30 + anim_wait 8 + anim_sound 16, 2, SFX_VINE_WHIP + anim_obj ANIM_OBJ_LEECH_SEED, 6, 0, 10, 0, $28 + anim_wait 32 + anim_sound 0, 1, SFX_CHARGE + anim_wait 128 + anim_ret +; c9a7c + +BattleAnim_RazorLeaf: ; c9a7c + anim_1gfx ANIM_GFX_PLANT + anim_sound 0, 0, SFX_VINE_WHIP + anim_obj ANIM_OBJ_RAZOR_LEAF, 6, 0, 10, 0, $28 + anim_obj ANIM_OBJ_RAZOR_LEAF, 6, 0, 10, 0, $5c + anim_obj ANIM_OBJ_RAZOR_LEAF, 6, 0, 10, 0, $10 + anim_obj ANIM_OBJ_RAZOR_LEAF, 6, 0, 10, 0, $e8 + anim_obj ANIM_OBJ_RAZOR_LEAF, 6, 0, 10, 0, $9c + anim_obj ANIM_OBJ_RAZOR_LEAF, 6, 0, 10, 0, $d0 + anim_wait 6 + anim_obj ANIM_OBJ_RAZOR_LEAF, 6, 0, 10, 0, $1c + anim_obj ANIM_OBJ_RAZOR_LEAF, 6, 0, 10, 0, $50 + anim_obj ANIM_OBJ_RAZOR_LEAF, 6, 0, 10, 0, $dc + anim_obj ANIM_OBJ_RAZOR_LEAF, 6, 0, 10, 0, $90 + anim_wait 80 + anim_sound 16, 2, SFX_VINE_WHIP + anim_incobj 3 + anim_wait 2 + anim_sound 16, 2, SFX_VINE_WHIP + anim_incobj 5 + anim_wait 2 + anim_sound 16, 2, SFX_VINE_WHIP + anim_incobj 7 + anim_wait 2 + anim_sound 16, 2, SFX_VINE_WHIP + anim_incobj 9 + anim_wait 2 + anim_sound 16, 2, SFX_VINE_WHIP + anim_incobj 1 + anim_wait 2 + anim_sound 16, 2, SFX_VINE_WHIP + anim_incobj 2 + anim_wait 2 + anim_sound 16, 2, SFX_VINE_WHIP + anim_incobj 4 + anim_wait 2 + anim_sound 16, 2, SFX_VINE_WHIP + anim_incobj 6 + anim_wait 2 + anim_sound 16, 2, SFX_VINE_WHIP + anim_incobj 8 + anim_wait 2 + anim_sound 16, 2, SFX_VINE_WHIP + anim_incobj 10 + anim_wait 64 + anim_ret +; c9af2 + +BattleAnim_Solarbeam: ; c9af2 + anim_if_param_equal $0, .FireSolarBeam + ; charge turn + anim_1gfx ANIM_GFX_CHARGE + anim_sound 0, 0, SFX_CHARGE + anim_obj ANIM_OBJ_3D, 6, 0, 10, 4, $0 + anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $0 + anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $8 + anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $10 + anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $18 + anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $20 + anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $28 + anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $30 + anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $38 + anim_wait 104 + anim_bgeffect ANIM_BG_FLASH_WHITE, $0, $4, $2 + anim_wait 64 + anim_ret +; c9b30 + +.FireSolarBeam + anim_1gfx ANIM_GFX_BEAM + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_call BattleAnim_Solarbeam_branch_cbb39 + anim_wait 48 + anim_ret +; c9b3c + +BattleAnim_Thunderpunch: ; c9b3c + anim_2gfx ANIM_GFX_HIT, ANIM_GFX_LIGHTNING + anim_obj ANIM_OBJ_0A, -15, 0, 7, 0, $43 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $2 + anim_sound 0, 1, SFX_THUNDER + anim_obj ANIM_OBJ_2F, -13, 0, 8, 4, $0 + anim_wait 64 + anim_ret +; c9b53 + +BattleAnim_Thundershock: ; c9b53 + anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION + anim_obj ANIM_OBJ_34, -15, 0, 7, 0, $2 + anim_wait 16 + anim_sound 0, 1, SFX_THUNDERSHOCK + anim_obj ANIM_OBJ_33, -15, 0, 7, 0, $0 + anim_wait 96 + anim_ret +; c9b66 + +BattleAnim_Thunderbolt: ; c9b66 + anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION + anim_obj ANIM_OBJ_LIGHTNING_BOLT, -15, 0, 7, 0, $2 + anim_wait 16 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2 + anim_sound 0, 1, SFX_THUNDERSHOCK + anim_obj ANIM_OBJ_31, -15, 0, 7, 0, $0 + anim_wait 64 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2 + anim_wait 64 + anim_ret +; c9b84 + +BattleAnim_ThunderWave: ; c9b84 + anim_1gfx ANIM_GFX_LIGHTNING + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3 + anim_sound 0, 1, SFX_THUNDERSHOCK + anim_obj ANIM_OBJ_30, -15, 0, 7, 0, $0 + anim_wait 20 + anim_bgp $1b + anim_incobj 1 + anim_wait 96 + anim_ret +; c9b9a + +BattleAnim_Thunder: ; c9b9a + anim_1gfx ANIM_GFX_LIGHTNING + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $20 + anim_sound 0, 1, SFX_THUNDER + anim_obj ANIM_OBJ_2E, 15, 0, 8, 4, $0 + anim_wait 16 + anim_sound 0, 1, SFX_THUNDER + anim_obj ANIM_OBJ_2F, -13, 0, 8, 4, $0 + anim_wait 16 + anim_sound 0, 1, SFX_THUNDER + anim_obj ANIM_OBJ_2D, -15, 0, 8, 4, $0 + anim_wait 48 + anim_ret +; c9bbd + +BattleAnim_RazorWind: ; c9bbd + anim_if_param_equal $1, BattleAnim_RazorWind_branch_c9fb5 + anim_1gfx ANIM_GFX_WHIP + anim_bgeffect ANIM_BG_06, $0, $1, $0 +.loop + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2 + anim_sound 0, 1, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_42, -13, 0, 5, 0, $3 + anim_wait 4 + anim_sound 0, 1, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_42, -15, 0, 7, 0, $3 + anim_wait 4 + anim_sound 0, 1, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_42, -13, 0, 8, 0, $3 + anim_wait 4 + anim_sound 0, 1, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_41, 15, 0, 5, 0, $83 + anim_wait 4 + anim_sound 0, 1, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_41, 15, 0, 8, 0, $83 + anim_wait 4 + anim_loop 3, .loop + anim_wait 24 + anim_ret +; c9c00 + +BattleAnim_Sonicboom_JP: ; c9c00 + anim_2gfx ANIM_GFX_WHIP, ANIM_GFX_HIT +.loop + anim_sound 3, 0, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_43, 8, 0, 10, 0, $3 + anim_wait 8 + anim_sound 3, 0, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_43, 8, 0, 11, 0, $2 + anim_wait 8 + anim_sound 3, 0, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_43, 8, 0, 12, 0, $4 + anim_wait 8 + anim_loop 2, .loop + anim_wait 32 + anim_incobj 1 + anim_incobj 2 + anim_incobj 3 + anim_incobj 4 + anim_incobj 5 + anim_incobj 6 + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 + anim_wait 16 + anim_ret +; c9c36 + +BattleAnim_Gust: ; c9c36 +BattleAnim_Sonicboom: ; c9c36 + anim_2gfx ANIM_GFX_WIND, ANIM_GFX_HIT +.loop + anim_sound 0, 1, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_GUST, -15, 0, 9, 0, $0 + anim_wait 6 + anim_loop 9, .loop + anim_obj ANIM_OBJ_01, -14, 0, 8, 0, $18 + anim_wait 8 + anim_obj ANIM_OBJ_01, 16, 0, 4, 0, $18 + anim_wait 16 + anim_ret +; c9c53 + +BattleAnim_Selfdestruct: ; c9c53 + anim_1gfx ANIM_GFX_EXPLOSION + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $24 + anim_if_param_equal $1, .loop + anim_call BattleAnim_Selfdestruct_branch_cbb8f + anim_wait 16 + anim_ret +; c9c63 + +.loop + anim_call BattleAnim_Selfdestruct_branch_cbb62 + anim_wait 5 + anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0 + anim_loop 2, .loop + anim_wait 16 + anim_ret +; c9c72 + +BattleAnim_Explosion: ; c9c72 + anim_1gfx ANIM_GFX_EXPLOSION + anim_bgeffect ANIM_BG_1F, $60, $4, $10 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $24 + anim_if_param_equal $1, .loop + anim_call BattleAnim_Explosion_branch_cbb8f + anim_wait 16 + anim_ret +; c9c87 + +.loop + anim_call BattleAnim_Explosion_branch_cbb62 + anim_wait 5 + anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0 + anim_loop 2, .loop + anim_wait 16 + anim_ret +; c9c96 + +BattleAnim_Acid: ; c9c96 + anim_1gfx ANIM_GFX_POISON + anim_call BattleAnim_Acid_branch_cbc35 + anim_wait 64 + anim_ret +; c9c9d + +BattleAnim_RockThrow: ; c9c9d + anim_1gfx ANIM_GFX_ROCKS + anim_bgeffect ANIM_BG_1F, $60, $1, $0 + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1E, 16, 0, 8, 0, $40 + anim_wait 2 + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1D, 15, 0, 8, 4, $30 + anim_wait 2 + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1E, -13, 0, 8, 4, $30 + anim_wait 2 + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1D, -14, 0, 8, 0, $40 + anim_wait 2 + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1E, -15, 0, 8, 4, $30 + anim_wait 96 + anim_ret +; c9cd2 + +BattleAnim_RockSlide: ; c9cd2 + anim_1gfx ANIM_GFX_ROCKS + anim_bgeffect ANIM_BG_1F, $c0, $1, $0 +.loop + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1E, 16, 0, 8, 0, $40 + anim_wait 4 + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1D, 15, 0, 8, 4, $30 + anim_wait 4 + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1E, -13, 0, 8, 4, $30 + anim_wait 4 + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1D, -14, 0, 8, 0, $40 + anim_wait 4 + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1E, -15, 0, 8, 4, $30 + anim_wait 16 + anim_loop 4, .loop + anim_wait 96 + anim_ret +; c9d0c + +BattleAnim_Sing: ; c9d0c + anim_1gfx ANIM_GFX_NOISE + anim_sound 16, 2, SFX_SING +.loop + anim_obj ANIM_OBJ_23, 8, 0, 11, 4, $0 + anim_wait 8 + anim_obj ANIM_OBJ_23, 8, 0, 11, 4, $1 + anim_wait 8 + anim_obj ANIM_OBJ_23, 8, 0, 11, 4, $2 + anim_wait 8 + anim_obj ANIM_OBJ_23, 8, 0, 11, 4, $0 + anim_wait 8 + anim_obj ANIM_OBJ_23, 8, 0, 11, 4, $2 + anim_wait 8 + anim_loop 4, .loop + anim_wait 64 + anim_ret +; c9d35 + +BattleAnim_Poisonpowder: ; c9d35 +BattleAnim_SleepPowder: ; c9d35 +BattleAnim_Spore: ; c9d35 +BattleAnim_StunSpore: ; c9d35 + anim_1gfx ANIM_GFX_POWDER +.loop + anim_sound 0, 1, SFX_POWDER + anim_obj ANIM_OBJ_26, 13, 0, 2, 0, $0 + anim_wait 4 + anim_sound 0, 1, SFX_POWDER + anim_obj ANIM_OBJ_26, -15, 0, 2, 0, $0 + anim_wait 4 + anim_sound 0, 1, SFX_POWDER + anim_obj ANIM_OBJ_26, 14, 0, 2, 0, $0 + anim_wait 4 + anim_sound 0, 1, SFX_POWDER + anim_obj ANIM_OBJ_26, 16, 0, 2, 0, $0 + anim_wait 4 + anim_sound 0, 1, SFX_POWDER + anim_obj ANIM_OBJ_26, 15, 0, 2, 0, $0 + anim_wait 4 + anim_loop 2, .loop + anim_wait 96 + anim_ret +; c9d6a + +BattleAnim_HyperBeam: ; c9d6a + anim_1gfx ANIM_GFX_BEAM + anim_bgeffect ANIM_BG_1F, $30, $4, $10 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $40 + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_call BattleAnim_HyperBeam_branch_cbb39 + anim_wait 48 + anim_ret +; c9d80 + +BattleAnim_AuroraBeam: ; c9d80 + anim_1gfx ANIM_GFX_BEAM + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0 + anim_wait 64 + anim_call BattleAnim_AuroraBeam_branch_cbb39 + anim_wait 48 + anim_incobj 5 + anim_wait 64 + anim_ret +; c9d95 + +BattleAnim_Vicegrip: ; c9d95 + anim_1gfx ANIM_GFX_CUT + anim_sound 0, 1, SFX_VICEGRIP + anim_obj ANIM_OBJ_37, -13, 0, 5, 0, $0 + anim_obj ANIM_OBJ_39, 15, 0, 9, 0, $0 + anim_wait 32 + anim_ret +; c9da6 + +BattleAnim_Scratch: ; c9da6 + anim_1gfx ANIM_GFX_CUT + anim_sound 0, 1, SFX_SCRATCH + anim_obj ANIM_OBJ_37, -14, 0, 6, 0, $0 + anim_obj ANIM_OBJ_37, -15, 4, 5, 4, $0 + anim_obj ANIM_OBJ_37, -15, 0, 5, 0, $0 + anim_wait 32 + anim_ret +; c9dbc + +BattleAnim_FurySwipes: ; c9dbc + anim_1gfx ANIM_GFX_CUT + anim_if_param_equal $1, BattleAnim_FurySwipes_branch_c9dd9 + anim_sound 0, 1, SFX_SCRATCH + anim_obj ANIM_OBJ_37, -14, 0, 6, 0, $0 + anim_obj ANIM_OBJ_37, -15, 4, 5, 4, $0 + anim_obj ANIM_OBJ_37, -15, 0, 5, 0, $0 + anim_sound 0, 1, SFX_SCRATCH + anim_wait 32 + anim_ret +; c9dd9 + +BattleAnim_FurySwipes_branch_c9dd9: ; c9dd9 + anim_sound 0, 1, SFX_SCRATCH + anim_obj ANIM_OBJ_38, 15, 0, 6, 0, $0 + anim_obj ANIM_OBJ_38, 15, 4, 5, 4, $0 + anim_obj ANIM_OBJ_38, 16, 0, 5, 0, $0 + anim_sound 0, 1, SFX_SCRATCH + anim_wait 32 + anim_ret +; c9df0 + +BattleAnim_Cut: ; c9df0 + anim_1gfx ANIM_GFX_CUT + anim_sound 0, 1, SFX_CUT + anim_obj ANIM_OBJ_3A, -13, 0, 5, 0, $0 + anim_wait 32 + anim_ret +; c9dfc + +BattleAnim_Slash: ; c9dfc + anim_1gfx ANIM_GFX_CUT + anim_sound 0, 1, SFX_CUT + anim_obj ANIM_OBJ_3A, -13, 0, 5, 0, $0 + anim_obj ANIM_OBJ_3A, -14, 4, 4, 4, $0 + anim_wait 32 + anim_ret +; c9e0d + +BattleAnim_Clamp: ; c9e0d + anim_2gfx ANIM_GFX_CUT, ANIM_GFX_HIT + anim_obj ANIM_OBJ_35, -15, 0, 7, 0, $a0 + anim_obj ANIM_OBJ_35, -15, 0, 7, 0, $20 + anim_wait 16 + anim_sound 0, 1, SFX_BITE + anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $18 + anim_wait 32 + anim_sound 0, 1, SFX_BITE + anim_obj ANIM_OBJ_01, 16, 0, 8, 0, $18 + anim_wait 16 + anim_ret +; c9e2e + +BattleAnim_Bite: ; c9e2e + anim_2gfx ANIM_GFX_CUT, ANIM_GFX_HIT + anim_obj ANIM_OBJ_36, -15, 0, 7, 0, $98 + anim_obj ANIM_OBJ_36, -15, 0, 7, 0, $18 + anim_wait 8 + anim_sound 0, 1, SFX_BITE + anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $18 + anim_wait 16 + anim_sound 0, 1, SFX_BITE + anim_obj ANIM_OBJ_01, 16, 0, 8, 0, $18 + anim_wait 8 + anim_ret +; c9e4f + +BattleAnim_Teleport: ; c9e4f + anim_1gfx ANIM_GFX_SPEED + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_TELEPORT, $0, $1, $0 + anim_wait 32 + anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0 + anim_wait 3 + anim_incbgeffect ANIM_BG_TELEPORT + anim_call BattleAnim_ShowMon_0 + anim_bgeffect ANIM_BG_06, $0, $1, $0 + anim_call BattleAnim_Teleport_branch_cbb12 + anim_wait 64 + anim_ret +; c9e6f + +BattleAnim_Fly: ; c9e6f + anim_if_param_equal $1, BattleAnim_Fly_branch_c9e89 + anim_if_param_equal $2, BattleAnim_Fly_branch_c9e82 + anim_1gfx ANIM_GFX_HIT + anim_sound 0, 1, SFX_WING_ATTACK + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 + anim_wait 32 +BattleAnim_Fly_branch_c9e82: ; c9e82 + anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 + anim_wait 32 + anim_ret +; c9e89 + +BattleAnim_Fly_branch_c9e89: ; c9e89 + anim_1gfx ANIM_GFX_SPEED + anim_bgeffect ANIM_BG_06, $0, $1, $0 + anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0 + anim_call BattleAnim_Fly_branch_cbb12 + anim_wait 64 + anim_ret +; c9e9a + +BattleAnim_DoubleTeam: ; c9e9a + anim_call BattleAnim_FollowPlayerHead_0 + anim_sound 0, 0, SFX_PSYBEAM + anim_bgeffect ANIM_BG_DOUBLE_TEAM, $0, $1, $0 + anim_wait 96 + anim_incbgeffect ANIM_BG_DOUBLE_TEAM + anim_wait 24 + anim_incbgeffect ANIM_BG_DOUBLE_TEAM + anim_call BattleAnim_ShowMon_0 + anim_ret +; c9eaf + +BattleAnim_Recover: ; c9eaf + anim_1gfx ANIM_GFX_BUBBLE + anim_call BattleAnim_FollowEnemyFeet_0 + anim_sound 0, 0, SFX_FULL_HEAL + anim_bgeffect ANIM_BG_18, $0, $1, $40 + anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $30 + anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $31 + anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $32 + anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $33 + anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $34 + anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $35 + anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $36 + anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $37 + anim_wait 64 + anim_incbgeffect ANIM_BG_18 + anim_call BattleAnim_ShowMon_0 + anim_ret +; c9eeb + +BattleAnim_Absorb: ; c9eeb + anim_1gfx ANIM_GFX_CHARGE + anim_obj ANIM_OBJ_3D, 5, 4, 11, 0, $0 +.loop + anim_sound 6, 3, SFX_WATER_GUN + anim_obj ANIM_OBJ_ABSORB, 16, 0, 6, 0, $2 + anim_wait 6 + anim_sound 6, 3, SFX_WATER_GUN + anim_obj ANIM_OBJ_ABSORB, -15, 0, 8, 0, $3 + anim_wait 6 + anim_sound 6, 3, SFX_WATER_GUN + anim_obj ANIM_OBJ_ABSORB, -15, 0, 4, 0, $4 + anim_wait 6 + anim_loop 5, .loop + anim_wait 32 + anim_ret +; c9f13 + +BattleAnim_MegaDrain: ; c9f13 + anim_1gfx ANIM_GFX_CHARGE + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_1C, $0, $0, $10 + anim_setvar $0 +.loop + anim_sound 6, 3, SFX_WATER_GUN + anim_obj ANIM_OBJ_ABSORB, 16, 0, 6, 0, $2 + anim_wait 6 + anim_sound 6, 3, SFX_WATER_GUN + anim_obj ANIM_OBJ_ABSORB, -15, 0, 8, 0, $3 + anim_wait 6 + anim_sound 6, 3, SFX_WATER_GUN + anim_obj ANIM_OBJ_ABSORB, -15, 0, 4, 0, $4 + anim_wait 6 + anim_incvar + anim_if_var_equal $7, .done + anim_if_var_equal $2, .spawn + anim_jump .loop +; c9f46 + +.spawn + anim_obj ANIM_OBJ_3D, 5, 4, 11, 0, $0 + anim_jump .loop +; c9f4e + +.done + anim_wait 32 + anim_incbgeffect ANIM_BG_1C + anim_call BattleAnim_ShowMon_0 + anim_ret +; c9f55 + +BattleAnim_EggBomb: ; c9f55 + anim_2gfx ANIM_GFX_EGG, ANIM_GFX_EXPLOSION + anim_sound 0, 0, SFX_SWITCH_POKEMON + anim_obj ANIM_OBJ_46, 5, 4, 13, 0, $1 + anim_wait 128 + anim_wait 96 + anim_incobj 1 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3 + anim_sound 0, 1, SFX_EGG_BOMB + anim_obj ANIM_OBJ_18, 16, 0, 8, 0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_EGG_BOMB + anim_obj ANIM_OBJ_18, -14, 0, 8, 4, $0 + anim_wait 8 + anim_sound 0, 1, SFX_EGG_BOMB + anim_obj ANIM_OBJ_18, -15, 0, 9, 0, $0 + anim_wait 24 + anim_ret +; c9f85 + +BattleAnim_Softboiled: ; c9f85 + anim_2gfx ANIM_GFX_EGG, ANIM_GFX_BUBBLE + anim_call BattleAnim_FollowEnemyFeet_0 + anim_sound 0, 0, SFX_SWITCH_POKEMON + anim_obj ANIM_OBJ_46, 5, 4, 13, 0, $6 + anim_wait 128 + anim_incobj 2 + anim_obj ANIM_OBJ_46, 9, 4, 13, 0, $b + anim_wait 16 + anim_bgeffect ANIM_BG_18, $0, $1, $40 + anim_sound 0, 0, SFX_METRONOME +.loop + anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $20 + anim_wait 8 + anim_loop 8, .loop + anim_wait 128 + anim_incbgeffect ANIM_BG_18 + anim_call BattleAnim_ShowMon_0 + anim_ret +; c9fb5 + +BattleAnim_FocusEnergy: ; c9fb5 +BattleAnim_RazorWind_branch_c9fb5: ; c9fb5 +BattleAnim_SkullBash_branch_c9fb5: ; c9fb5 +BattleAnim_SkyAttack_branch_c9fb5: ; c9fb5 + anim_1gfx ANIM_GFX_SPEED + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_16, $0, $1, $40 + anim_bgeffect ANIM_BG_06, $0, $2, $0 +.loop + anim_sound 0, 0, SFX_SWORDS_DANCE + anim_obj ANIM_OBJ_47, 5, 4, 13, 4, $6 + anim_wait 2 + anim_obj ANIM_OBJ_47, 4, 4, 13, 4, $6 + anim_wait 2 + anim_obj ANIM_OBJ_47, 6, 4, 13, 4, $8 + anim_wait 2 + anim_obj ANIM_OBJ_47, 3, 4, 13, 4, $8 + anim_wait 2 + anim_obj ANIM_OBJ_47, 7, 4, 13, 4, $6 + anim_wait 2 + anim_obj ANIM_OBJ_47, 2, 4, 13, 4, $8 + anim_wait 2 + anim_obj ANIM_OBJ_47, 8, 4, 13, 4, $8 + anim_wait 2 + anim_loop 3, .loop + anim_wait 8 + anim_incbgeffect ANIM_BG_16 + anim_call BattleAnim_ShowMon_0 + anim_ret +; c9ffc + +BattleAnim_Bide: ; c9ffc + anim_if_param_equal $0, BattleAnim_Bide_branch_c9651 + anim_1gfx ANIM_GFX_HIT + anim_call BattleAnim_FollowEnemyFeet_0 + anim_sound 0, 0, SFX_ESCAPE_ROPE + anim_bgeffect ANIM_BG_1A, $0, $1, $20 + anim_wait 72 + anim_incbgeffect ANIM_BG_1A + anim_call BattleAnim_ShowMon_0 + anim_ret +; ca014 + +BattleAnim_Bind: ; ca014 + anim_1gfx ANIM_GFX_ROPE + anim_sound 0, 1, SFX_BIND + anim_obj ANIM_OBJ_48, -16, 4, 8, 0, $0 + anim_wait 8 + anim_obj ANIM_OBJ_49, -16, 4, 7, 0, $0 + anim_wait 8 + anim_obj ANIM_OBJ_48, -16, 4, 6, 0, $0 + anim_wait 64 + anim_sound 0, 1, SFX_BIND + anim_incobj 1 + anim_incobj 2 + anim_incobj 3 + anim_wait 96 + anim_ret +; ca036 + +BattleAnim_Wrap: ; ca036 + anim_1gfx ANIM_GFX_ROPE + anim_sound 0, 1, SFX_BIND + anim_obj ANIM_OBJ_48, -16, 4, 8, 0, $0 + anim_wait 8 + anim_obj ANIM_OBJ_48, -16, 4, 7, 0, $0 + anim_wait 8 + anim_obj ANIM_OBJ_48, -16, 4, 6, 0, $0 + anim_wait 64 + anim_sound 0, 1, SFX_BIND + anim_incobj 1 + anim_incobj 2 + anim_incobj 3 + anim_wait 96 + anim_ret +; ca058 + +BattleAnim_Confusion: ; ca058 + anim_1gfx ANIM_GFX_HIT + anim_call BattleAnim_FollowPlayerHead_1 + anim_sound 0, 1, SFX_PSYCHIC + anim_bgeffect ANIM_BG_NIGHT_SHADE, $0, $0, $8 + anim_wait 128 + anim_incbgeffect ANIM_BG_NIGHT_SHADE + anim_call BattleAnim_ShowMon_1 + anim_ret +; ca06c + +BattleAnim_Constrict: ; ca06c + anim_1gfx ANIM_GFX_ROPE + anim_sound 0, 1, SFX_BIND + anim_obj ANIM_OBJ_49, -16, 4, 8, 0, $0 + anim_wait 8 + anim_obj ANIM_OBJ_48, -16, 4, 6, 0, $0 + anim_wait 8 + anim_obj ANIM_OBJ_49, -16, 4, 5, 0, $0 + anim_wait 8 + anim_obj ANIM_OBJ_48, -16, 4, 7, 0, $0 + anim_wait 64 + anim_ret +; ca08a + +BattleAnim_Earthquake: ; ca08a + anim_bgeffect ANIM_BG_1F, $60, $4, $10 +.loop + anim_sound 0, 1, SFX_EMBER + anim_wait 24 + anim_loop 4, .loop + anim_ret +; ca098 + +BattleAnim_Fissure: ; ca098 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $40 + anim_bgeffect ANIM_BG_1F, $60, $4, $0 +.loop + anim_sound 0, 1, SFX_EMBER + anim_wait 24 + anim_loop 4, .loop + anim_ret +; ca0ab + +BattleAnim_Growl: ; ca0ab + anim_1gfx ANIM_GFX_NOISE + anim_enemyfeetobj + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_cry $0 +.loop + anim_call BattleAnim_Growl_branch_cbbbc + anim_wait 16 + anim_loop 3, .loop + anim_wait 9 + anim_bgeffect ANIM_BG_FEET_FOLLOW, $0, $1, $0 + anim_wait 8 + anim_bgeffect ANIM_BG_19, $0, $0, $40 + anim_wait 64 + anim_incbgeffect ANIM_BG_19 + anim_wait 1 + anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 + anim_wait 5 + anim_incobj 10 + anim_wait 8 + anim_ret +; ca0d7 + +BattleAnim_Roar: ; ca0d7 + anim_1gfx ANIM_GFX_NOISE + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_cry $1 +.loop + anim_call BattleAnim_Roar_branch_cbbbc + anim_wait 16 + anim_loop 3, .loop + anim_wait 16 + anim_if_param_equal $0, .done + anim_bgeffect ANIM_BG_27, $0, $0, $0 + anim_wait 64 +.done + anim_ret +; ca0f4 + +BattleAnim_Supersonic: ; ca0f4 + anim_1gfx ANIM_GFX_PSYCHIC +.loop + anim_sound 6, 2, SFX_SUPERSONIC + anim_obj ANIM_OBJ_4C, 8, 0, 11, 0, $2 + anim_wait 4 + anim_loop 10, .loop + anim_wait 64 + anim_ret +; ca105 + +BattleAnim_Screech: ; ca105 + anim_1gfx ANIM_GFX_PSYCHIC + anim_bgeffect ANIM_BG_1F, $8, $1, $20 + anim_sound 6, 2, SFX_SCREECH +.loop + anim_obj ANIM_OBJ_4C, 8, 0, 11, 0, $2 + anim_wait 2 + anim_loop 2, .loop + anim_wait 64 + anim_ret +; ca11b + +BattleAnim_ConfuseRay: ; ca11b + anim_1gfx ANIM_GFX_SPEED + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_bgeffect ANIM_BG_08, $0, $4, $0 + anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $0 + anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $80 + anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $88 + anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $90 + anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $98 + anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $a0 + anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $a8 + anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $b0 + anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $b8 +.loop + anim_sound 6, 2, SFX_WHIRLWIND + anim_wait 16 + anim_loop 8, .loop + anim_wait 32 + anim_ret +; ca15e + +BattleAnim_Leer: ; ca15e + anim_1gfx ANIM_GFX_BEAM + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_call BattleAnim_Leer_branch_cbadc + anim_wait 16 + anim_ret +; ca16a + +BattleAnim_Reflect: ; ca16a + anim_1gfx ANIM_GFX_REFLECT + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_50, 9, 0, 10, 0, $0 + anim_wait 24 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_50, 9, 0, 10, 0, $0 + anim_wait 64 + anim_ret +; ca18e + +BattleAnim_LightScreen: ; ca18e + anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_REFLECT + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_sound 0, 0, SFX_FLASH + anim_obj ANIM_OBJ_50, 9, 0, 10, 0, $0 + anim_wait 4 + anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $0 + anim_wait 4 + anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $8 + anim_wait 4 + anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $10 + anim_wait 4 + anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $18 + anim_wait 4 + anim_obj ANIM_OBJ_50, 9, 0, 10, 0, $0 + anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $20 + anim_wait 4 + anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $28 + anim_wait 4 + anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $30 + anim_wait 4 + anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $38 + anim_wait 64 + anim_ret +; ca1d5 + +BattleAnim_Amnesia: ; ca1d5 + anim_1gfx ANIM_GFX_STATUS + anim_sound 0, 0, SFX_LICK + anim_obj ANIM_OBJ_53, 8, 0, 10, 0, $2 + anim_wait 16 + anim_obj ANIM_OBJ_53, 8, 4, 10, 0, $1 + anim_wait 16 + anim_obj ANIM_OBJ_53, 9, 0, 10, 0, $0 + anim_wait 64 + anim_ret +; ca1ed + +BattleAnim_DizzyPunch: ; ca1ed + anim_2gfx ANIM_GFX_STATUS, ANIM_GFX_HIT + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_00, -15, 0, 5, 0, $0 + anim_obj ANIM_OBJ_02, -15, 0, 8, 0, $0 + anim_wait 16 + anim_sound 0, 1, SFX_KINESIS + anim_obj ANIM_OBJ_CHICK, -15, 0, 3, 0, $15 + anim_obj ANIM_OBJ_CHICK, -15, 0, 3, 0, $aa + anim_obj ANIM_OBJ_CHICK, -15, 0, 3, 0, $bf + anim_wait 96 + anim_ret +; ca212 + +BattleAnim_Rest: ; ca212 + anim_1gfx ANIM_GFX_STATUS + anim_sound 0, 0, SFX_TAIL_WHIP +.loop + anim_obj ANIM_OBJ_54, 8, 0, 10, 0, $0 + anim_wait 40 + anim_loop 3, .loop + anim_wait 32 + anim_ret +; ca223 + +BattleAnim_AcidArmor: ; ca223 + anim_1gfx ANIM_GFX_HIT + anim_call BattleAnim_FollowPlayerHead_0 + anim_bgeffect ANIM_BG_ACID_ARMOR, $0, $1, $8 + anim_sound 0, 0, SFX_MEGA_PUNCH + anim_wait 64 + anim_incbgeffect ANIM_BG_ACID_ARMOR + anim_call BattleAnim_ShowMon_0 + anim_ret +; ca237 + +BattleAnim_Splash: ; ca237 + anim_1gfx ANIM_GFX_HIT + anim_sound 0, 0, SFX_VICEGRIP + anim_call BattleAnim_FollowPlayerHead_0 + anim_bgeffect ANIM_BG_BOUNCE_DOWN, $0, $1, $0 + anim_wait 96 + anim_incbgeffect ANIM_BG_BOUNCE_DOWN + anim_call BattleAnim_ShowMon_0 + anim_ret +; ca24b + +BattleAnim_Dig: ; ca24b + anim_2gfx ANIM_GFX_SAND, ANIM_GFX_HIT + anim_if_param_equal $0, .hit + anim_if_param_equal $2, .fail + anim_call BattleAnim_FollowPlayerHead_0 + anim_bgeffect ANIM_BG_DIG, $0, $1, $1 + anim_obj ANIM_OBJ_57, 9, 0, 13, 0, $0 +.loop + anim_sound 0, 0, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_56, 7, 0, 13, 0, $0 + anim_wait 16 + anim_loop 6, .loop + anim_wait 32 + anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0 + anim_wait 8 + anim_incbgeffect ANIM_BG_DIG + anim_call BattleAnim_ShowMon_0 + anim_ret + +.hit + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 + anim_wait 32 +.fail + anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0 + anim_wait 32 + anim_ret +; ca28d + +BattleAnim_SandAttack: ; ca28d + anim_1gfx ANIM_GFX_SAND + anim_call BattleAnim_SandAttack_branch_cbc5b + anim_ret +; ca293 + +BattleAnim_StringShot: ; ca293 + anim_1gfx ANIM_GFX_WEB + anim_bgeffect ANIM_BG_07, $0, $2, $0 + anim_sound 6, 2, SFX_MENU + anim_obj ANIM_OBJ_5A, 8, 0, 10, 0, $0 + anim_wait 4 + anim_sound 0, 1, SFX_MENU + anim_obj ANIM_OBJ_5A, -16, 4, 6, 0, $1 + anim_wait 4 + anim_sound 6, 2, SFX_MENU + anim_obj ANIM_OBJ_5A, 8, 0, 11, 0, $0 + anim_wait 4 + anim_sound 0, 1, SFX_MENU + anim_obj ANIM_OBJ_5A, -16, 4, 8, 0, $1 + anim_wait 4 + anim_sound 6, 2, SFX_MENU + anim_obj ANIM_OBJ_5A, 8, 0, 10, 4, $0 + anim_wait 4 + anim_sound 0, 1, SFX_MENU + anim_obj ANIM_OBJ_5A, -16, 4, 7, 0, $2 + anim_wait 64 + anim_ret +; ca2d1 + +BattleAnim_Headbutt: ; ca2d1 + anim_1gfx ANIM_GFX_HIT + anim_bgeffect ANIM_BG_1F, $14, $2, $0 + anim_wait 32 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0 + anim_wait 4 + anim_sound 0, 1, SFX_HEADBUTT + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 + anim_wait 8 + anim_call BattleAnim_ShowMon_0 + anim_ret +; ca2ef + +BattleAnim_Tackle: ; ca2ef + anim_1gfx ANIM_GFX_HIT + anim_call BattleAnim_FollowPlayerHead_0 + anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0 + anim_wait 4 + anim_sound 0, 1, SFX_TACKLE + anim_obj ANIM_OBJ_00, -15, 0, 6, 0, $0 + anim_wait 8 + anim_call BattleAnim_ShowMon_0 + anim_ret +; ca307 + +BattleAnim_BodySlam: ; ca307 + anim_1gfx ANIM_GFX_HIT + anim_call BattleAnim_FollowPlayerHead_0 + anim_bgeffect ANIM_BG_BOUNCE_DOWN, $0, $1, $0 + anim_wait 32 + anim_incbgeffect ANIM_BG_BOUNCE_DOWN + anim_wait 4 + anim_bgeffect ANIM_BG_25, $0, $1, $0 + anim_wait 3 + anim_sound 0, 1, SFX_TACKLE + anim_obj ANIM_OBJ_01, -15, 0, 6, 0, $0 + anim_wait 6 + anim_sound 0, 1, SFX_TACKLE + anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $0 + anim_wait 3 + anim_call BattleAnim_ShowMon_0 + anim_ret +; ca331 + +BattleAnim_TakeDown: ; ca331 + anim_1gfx ANIM_GFX_HIT + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0 + anim_wait 3 + anim_sound 0, 1, SFX_TACKLE + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2 + anim_obj ANIM_OBJ_01, 16, 0, 7, 0, $0 + anim_wait 6 + anim_sound 0, 1, SFX_TACKLE + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2 + anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $0 + anim_wait 3 + anim_call BattleAnim_ShowMon_0 + anim_ret +; ca35c + +BattleAnim_DoubleEdge: ; ca35c + anim_1gfx ANIM_GFX_HIT + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $10 + anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0 + anim_wait 3 + anim_sound 0, 1, SFX_TACKLE + anim_obj ANIM_OBJ_00, 16, 0, 6, 0, $0 + anim_wait 6 + anim_sound 0, 1, SFX_TACKLE + anim_obj ANIM_OBJ_00, -14, 0, 6, 0, $0 + anim_wait 3 + anim_call BattleAnim_ShowMon_0 + anim_ret +; ca382 + +BattleAnim_Submission: ; ca382 + anim_1gfx ANIM_GFX_HIT + anim_call BattleAnim_FollowEnemyFeet_1 + anim_bgeffect ANIM_BG_26, $0, $0, $0 + anim_sound 0, 1, SFX_SUBMISSION + anim_wait 32 + anim_obj ANIM_OBJ_01, 15, 0, 6, 0, $0 + anim_wait 32 + anim_obj ANIM_OBJ_01, -13, 0, 7, 0, $0 + anim_wait 32 + anim_obj ANIM_OBJ_01, -15, 0, 6, 4, $0 + anim_wait 32 + anim_incbgeffect ANIM_BG_26 + anim_call BattleAnim_ShowMon_1 + anim_ret +; ca3a8 + +BattleAnim_Whirlwind: ; ca3a8 + anim_1gfx ANIM_GFX_WIND +.loop + anim_sound 0, 0, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_GUST, 8, 0, 14, 0, $0 + anim_wait 6 + anim_loop 9, .loop + anim_incobj 1 + anim_incobj 2 + anim_incobj 3 + anim_incobj 4 + anim_incobj 5 + anim_incobj 6 + anim_incobj 7 + anim_incobj 8 + anim_incobj 9 + anim_sound 16, 2, SFX_WHIRLWIND + anim_wait 128 + anim_if_param_equal $0, .done + anim_bgeffect ANIM_BG_27, $0, $0, $0 + anim_wait 64 +.done + anim_ret +; ca3d8 + +BattleAnim_Hypnosis: ; ca3d8 + anim_1gfx ANIM_GFX_PSYCHIC +.loop + anim_sound 6, 2, SFX_SUPERSONIC + anim_obj ANIM_OBJ_4C, 8, 0, 11, 0, $2 + anim_obj ANIM_OBJ_4C, 7, 0, 10, 0, $2 + anim_wait 8 + anim_loop 3, .loop + anim_wait 56 + anim_ret +; ca3ee + +BattleAnim_Haze: ; ca3ee + anim_1gfx ANIM_GFX_HAZE + anim_sound 0, 1, SFX_SURF +.loop + anim_obj ANIM_OBJ_HAZE, 6, 0, 7, 0, $0 + anim_obj ANIM_OBJ_HAZE, -16, 4, 2, 0, $0 + anim_wait 12 + anim_loop 5, .loop + anim_wait 96 + anim_ret +; ca404 + +BattleAnim_Mist: ; ca404 + anim_obp0 $54 + anim_1gfx ANIM_GFX_HAZE + anim_sound 0, 0, SFX_SURF +.loop + anim_obj ANIM_OBJ_MIST, 6, 0, 7, 0, $0 + anim_wait 8 + anim_loop 10, .loop + anim_wait 96 + anim_ret +; ca417 + +BattleAnim_Smog: ; ca417 + anim_1gfx ANIM_GFX_HAZE + anim_sound 0, 1, SFX_BUBBLEBEAM +.loop + anim_obj ANIM_OBJ_SMOG, -16, 4, 2, 0, $0 + anim_wait 8 + anim_loop 10, .loop + anim_wait 96 + anim_ret +; ca428 + +BattleAnim_PoisonGas: ; ca428 + anim_1gfx ANIM_GFX_HAZE + anim_sound 16, 2, SFX_BUBBLEBEAM +.loop + anim_obj ANIM_OBJ_POISON_GAS, 5, 4, 10, 0, $2 + anim_wait 8 + anim_loop 10, .loop + anim_wait 128 + anim_ret +; ca439 + +BattleAnim_HornAttack: ; ca439 + anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT + anim_obj ANIM_OBJ_HORN, 9, 0, 10, 0, $1 + anim_wait 16 + anim_sound 0, 1, SFX_HORN_ATTACK + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 + anim_wait 16 + anim_ret +; ca44c + +BattleAnim_FuryAttack: ; ca44c + anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT + anim_obj ANIM_OBJ_HORN, 9, 0, 9, 0, $2 + anim_wait 8 + anim_sound 0, 1, SFX_HORN_ATTACK + anim_obj ANIM_OBJ_04, 16, 0, 5, 0, $0 + anim_wait 8 + anim_obj ANIM_OBJ_HORN, 10, 0, 11, 0, $2 + anim_wait 8 + anim_sound 0, 1, SFX_HORN_ATTACK + anim_obj ANIM_OBJ_04, -15, 0, 7, 0, $0 + anim_wait 8 + anim_obj ANIM_OBJ_HORN, 9, 4, 10, 0, $2 + anim_wait 8 + anim_sound 0, 1, SFX_HORN_ATTACK + anim_obj ANIM_OBJ_04, -16, 4, 6, 0, $0 + anim_wait 8 + anim_ret +; ca47d + +BattleAnim_HornDrill: ; ca47d + anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $40 + anim_obj ANIM_OBJ_HORN, 9, 0, 10, 0, $3 + anim_wait 8 +.loop + anim_sound 0, 1, SFX_HORN_ATTACK + anim_obj ANIM_OBJ_00, -16, 4, 5, 0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_HORN_ATTACK + anim_obj ANIM_OBJ_00, -15, 4, 6, 0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_HORN_ATTACK + anim_obj ANIM_OBJ_00, -16, 4, 7, 0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_HORN_ATTACK + anim_obj ANIM_OBJ_00, 15, 4, 6, 0, $0 + anim_wait 8 + anim_loop 3, .loop + anim_ret +; ca4b4 + +BattleAnim_PoisonSting: ; ca4b4 + anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT + anim_obj ANIM_OBJ_60, 8, 0, 11, 4, $14 + anim_wait 16 + anim_sound 0, 1, SFX_POISON_STING + anim_obj ANIM_OBJ_05, -15, 0, 7, 0, $0 + anim_wait 16 + anim_ret +; ca4c7 + +BattleAnim_Twineedle: ; ca4c7 + anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT + anim_sound 0, 1, SFX_POISON_STING + anim_obj ANIM_OBJ_60, 8, 0, 11, 4, $14 + anim_obj ANIM_OBJ_60, 7, 0, 10, 4, $14 + anim_wait 16 + anim_sound 0, 1, SFX_POISON_STING + anim_obj ANIM_OBJ_05, -15, 0, 7, 0, $0 + anim_obj ANIM_OBJ_05, 16, 0, 6, 0, $0 + anim_wait 16 + anim_ret +; ca4e7 + +BattleAnim_PinMissile: ; ca4e7 + anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT +.loop + anim_obj ANIM_OBJ_60, 8, 0, 11, 4, $28 + anim_wait 8 + anim_obj ANIM_OBJ_60, 7, 0, 10, 4, $28 + anim_sound 0, 1, SFX_POISON_STING + anim_obj ANIM_OBJ_05, -15, 0, 7, 0, $0 + anim_wait 8 + anim_obj ANIM_OBJ_60, 6, 4, 11, 0, $28 + anim_sound 0, 1, SFX_POISON_STING + anim_obj ANIM_OBJ_05, 16, 0, 6, 0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_POISON_STING + anim_obj ANIM_OBJ_05, -16, 4, 6, 4, $0 + anim_loop 3, .loop + anim_wait 16 + anim_ret +; ca51a + +BattleAnim_SpikeCannon: ; ca51a + anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT +.loop + anim_obj ANIM_OBJ_60, 8, 0, 11, 4, $18 + anim_wait 8 + anim_obj ANIM_OBJ_60, 7, 0, 10, 4, $18 + anim_sound 0, 1, SFX_POISON_STING + anim_obj ANIM_OBJ_05, -15, 0, 7, 0, $0 + anim_wait 8 + anim_obj ANIM_OBJ_60, 6, 4, 11, 0, $18 + anim_sound 0, 1, SFX_POISON_STING + anim_obj ANIM_OBJ_05, 16, 0, 6, 0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_POISON_STING + anim_obj ANIM_OBJ_05, -16, 4, 6, 4, $0 + anim_loop 3, .loop + anim_wait 16 + anim_ret +; ca54d + +BattleAnim_Transform: ; ca54d + anim_1gfx ANIM_GFX_HIT + anim_call BattleAnim_FollowPlayerHead_0 + anim_transform + anim_sound 0, 0, SFX_PSYBEAM + anim_bgeffect ANIM_BG_WAVE_DEFORM_USER, $0, $1, $0 + anim_wait 48 + anim_updateactorpic + anim_incbgeffect ANIM_BG_WAVE_DEFORM_USER + anim_wait 48 + anim_call BattleAnim_ShowMon_0 + anim_ret +; ca564 + +BattleAnim_PetalDance: ; ca564 + anim_sound 0, 0, SFX_MENU + anim_2gfx ANIM_GFX_FLOWER, ANIM_GFX_HIT +.loop + anim_obj ANIM_OBJ_61, 6, 0, 7, 0, $0 + anim_wait 11 + anim_loop 8, .loop + anim_wait 128 + anim_wait 64 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 + anim_wait 16 + anim_ret +; ca580 + +BattleAnim_Barrage: ; ca580 + anim_2gfx ANIM_GFX_EGG, ANIM_GFX_EXPLOSION + anim_sound 6, 2, SFX_THROW_BALL + anim_obj ANIM_OBJ_62, 8, 0, 11, 4, $10 + anim_wait 36 + anim_sound 0, 1, SFX_EGG_BOMB + anim_obj ANIM_OBJ_18, -15, 0, 7, 0, $0 + anim_wait 16 + anim_ret +; ca596 + +BattleAnim_PayDay: ; ca596 + anim_2gfx ANIM_GFX_HIT, ANIM_GFX_STATUS + anim_sound 0, 1, SFX_POUND + anim_obj ANIM_OBJ_01, 16, 0, 7, 0, $0 + anim_wait 16 + anim_sound 0, 1, SFX_PAY_DAY + anim_obj ANIM_OBJ_63, 15, 0, 9, 4, $1 + anim_wait 64 + anim_ret +; ca5ac + +BattleAnim_Mimic: ; ca5ac + anim_1gfx ANIM_GFX_SPEED + anim_obp0 $fc + anim_sound 63, 3, SFX_LICK + anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $0 + anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $8 + anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $10 + anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $18 + anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $20 + anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $28 + anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $30 + anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $38 + anim_wait 128 + anim_wait 48 + anim_ret +; ca5de + +BattleAnim_LovelyKiss: ; ca5de + anim_2gfx ANIM_GFX_OBJECTS, ANIM_GFX_ANGELS + anim_bgeffect ANIM_BG_07, $0, $2, $0 + anim_obj ANIM_OBJ_96, -13, 0, 5, 0, $0 + anim_wait 32 + anim_sound 0, 1, SFX_LICK + anim_obj ANIM_OBJ_HEART, 16, 0, 5, 0, $0 + anim_wait 40 + anim_ret +; ca5f6 + +BattleAnim_Bonemerang: ; ca5f6 + anim_2gfx ANIM_GFX_MISC, ANIM_GFX_HIT + anim_sound 6, 2, SFX_HYDRO_PUMP + anim_obj ANIM_OBJ_67, 11, 0, 7, 0, $1c + anim_wait 24 + anim_sound 0, 1, SFX_MOVE_PUZZLE_PIECE + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 + anim_wait 24 + anim_ret +; ca60c + +BattleAnim_Swift: ; ca60c + anim_1gfx ANIM_GFX_OBJECTS + anim_sound 6, 2, SFX_METRONOME + anim_obj ANIM_OBJ_6A, 8, 0, 11, 0, $4 + anim_wait 4 + anim_obj ANIM_OBJ_6A, 8, 0, 9, 0, $4 + anim_wait 4 + anim_obj ANIM_OBJ_6A, 8, 0, 9, 4, $4 + anim_wait 64 + anim_ret +; ca624 + +BattleAnim_Crabhammer: ; ca624 + anim_1gfx ANIM_GFX_HIT + anim_bgeffect ANIM_BG_1F, $40, $2, $0 + anim_wait 48 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3 +.loop + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 + anim_wait 12 + anim_loop 3, .loop + anim_ret +; ca63f + +BattleAnim_SkullBash: ; ca63f + anim_if_param_equal $1, BattleAnim_SkullBash_branch_c9fb5 + anim_1gfx ANIM_GFX_HIT + anim_bgeffect ANIM_BG_1F, $14, $2, $0 + anim_wait 32 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3 + anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0 + anim_wait 4 +.loop + anim_sound 0, 1, SFX_HEADBUTT + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 + anim_wait 8 + anim_loop 3, .loop + anim_call BattleAnim_ShowMon_0 + anim_ret +; ca66a + +BattleAnim_Kinesis: ; ca66a + anim_2gfx ANIM_GFX_MISC, ANIM_GFX_NOISE + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_obj ANIM_OBJ_6B, 10, 0, 9, 4, $0 + anim_wait 32 +.loop + anim_sound 0, 0, SFX_KINESIS + anim_obj ANIM_OBJ_4B, 8, 0, 11, 0, $0 + anim_wait 32 + anim_loop 3, .loop + anim_wait 32 + anim_sound 0, 0, SFX_KINESIS_2 + anim_wait 32 + anim_ret +; ca68b + +BattleAnim_Peck: ; ca68b + anim_1gfx ANIM_GFX_HIT + anim_sound 0, 1, SFX_PECK + anim_obj ANIM_OBJ_02, 16, 0, 6, 0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_PECK + anim_obj ANIM_OBJ_02, -15, 0, 7, 0, $0 + anim_wait 16 + anim_ret +; ca6a0 + +BattleAnim_DrillPeck: ; ca6a0 + anim_1gfx ANIM_GFX_HIT +.loop + anim_sound 0, 1, SFX_PECK + anim_obj ANIM_OBJ_02, 15, 4, 7, 0, $0 + anim_wait 4 + anim_sound 0, 1, SFX_PECK + anim_obj ANIM_OBJ_02, -16, 4, 6, 0, $0 + anim_wait 4 + anim_sound 0, 1, SFX_PECK + anim_obj ANIM_OBJ_02, -15, 4, 7, 0, $0 + anim_wait 4 + anim_sound 0, 1, SFX_PECK + anim_obj ANIM_OBJ_02, -16, 4, 8, 0, $0 + anim_wait 4 + anim_loop 5, .loop + anim_wait 16 + anim_ret +; ca6cc + +BattleAnim_Guillotine: ; ca6cc + anim_1gfx ANIM_GFX_CUT + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $10 + anim_bgeffect ANIM_BG_1F, $40, $2, $0 + anim_sound 0, 1, SFX_VICEGRIP + anim_obj ANIM_OBJ_37, -13, 4, 5, 4, $0 + anim_obj ANIM_OBJ_37, -13, 0, 5, 0, $0 + anim_obj ANIM_OBJ_37, -14, 4, 4, 4, $0 + anim_obj ANIM_OBJ_39, 15, 4, 9, 4, $0 + anim_obj ANIM_OBJ_39, 15, 0, 9, 0, $0 + anim_obj ANIM_OBJ_39, 14, 4, 8, 4, $0 + anim_obj ANIM_OBJ_39, 15, 0, 9, 0, $0 + anim_wait 32 + anim_ret +; ca700 + +BattleAnim_Flash: ; ca700 + anim_1gfx ANIM_GFX_SPEED + anim_sound 0, 1, SFX_FLASH + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $20 + anim_wait 4 + anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $0 + anim_wait 4 + anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $8 + anim_wait 4 + anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $10 + anim_wait 4 + anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $18 + anim_wait 4 + anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $20 + anim_wait 4 + anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $28 + anim_wait 4 + anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $30 + anim_wait 4 + anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $38 + anim_wait 32 + anim_ret +; ca73c + +BattleAnim_Substitute: ; ca73c + anim_sound 0, 0, SFX_SURF + anim_if_param_equal $3, BattleAnim_Substitute_branch_ca77c + anim_if_param_equal $2, BattleAnim_Substitute_branch_ca76e + anim_if_param_equal $1, BattleAnim_Substitute_branch_ca760 + anim_1gfx ANIM_GFX_SMOKE + anim_bgeffect ANIM_BG_27, $0, $1, $0 + anim_wait 48 + anim_raisesub + anim_obj ANIM_OBJ_BALL_POOF, 6, 0, 12, 0, $0 + anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0 + anim_wait 32 + anim_ret +; ca760 + +BattleAnim_Substitute_branch_ca760: ; ca760 + anim_bgeffect ANIM_BG_27, $0, $1, $0 + anim_wait 48 + anim_dropsub + anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 + anim_wait 32 + anim_ret +; ca76e + +BattleAnim_Substitute_branch_ca76e: ; ca76e + anim_bgeffect ANIM_BG_27, $0, $1, $0 + anim_wait 48 + anim_raisesub + anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 + anim_wait 32 + anim_ret +; ca77c + +BattleAnim_Substitute_branch_ca77c: ; ca77c + anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0 + anim_wait 48 + anim_dropsub + anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 + anim_wait 32 + anim_ret +; ca78a + +BattleAnim_Minimize: ; ca78a + anim_sound 0, 0, SFX_SURF + anim_1gfx ANIM_GFX_HIT + anim_call BattleAnim_FollowPlayerHead_0 + anim_minimize + anim_bgeffect ANIM_BG_WAVE_DEFORM_USER, $0, $1, $0 + anim_wait 48 + anim_updateactorpic + anim_incbgeffect ANIM_BG_WAVE_DEFORM_USER + anim_wait 48 + anim_call BattleAnim_ShowMon_0 + anim_ret +; ca7a1 + +BattleAnim_SkyAttack: ; ca7a1 + anim_if_param_equal $1, BattleAnim_SkyAttack_branch_c9fb5 + anim_1gfx ANIM_GFX_SKY_ATTACK + anim_bgeffect ANIM_BG_27, $0, $1, $0 + anim_wait 32 + anim_sound 0, 0, SFX_HYPER_BEAM + anim_obj ANIM_OBJ_SKY_ATTACK_FEAROW, 6, 0, 11, 0, $40 + anim_wait 64 + anim_incobj 1 + anim_wait 21 + anim_sound 0, 1, SFX_HYPER_BEAM + anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0 + anim_wait 64 + anim_incobj 1 + anim_wait 32 + anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 + anim_wait 16 + anim_ret +; ca7cc + +BattleAnim_NightShade: ; ca7cc + anim_1gfx ANIM_GFX_HIT + anim_bgp $1b + anim_obp1 $1b + anim_wait 32 + anim_call BattleAnim_FollowPlayerHead_1 + anim_bgeffect ANIM_BG_NIGHT_SHADE, $0, $0, $8 + anim_sound 0, 1, SFX_PSYCHIC + anim_wait 96 + anim_incbgeffect ANIM_BG_NIGHT_SHADE + anim_call BattleAnim_ShowMon_1 + anim_ret +; ca7e5 + +BattleAnim_Lick: ; ca7e5 + anim_1gfx ANIM_GFX_WATER + anim_sound 0, 1, SFX_LICK + anim_obj ANIM_OBJ_LICK, -15, 0, 7, 0, $0 + anim_wait 64 + anim_ret +; ca7f1 + +BattleAnim_TriAttack: ; ca7f1 + anim_3gfx ANIM_GFX_FIRE, ANIM_GFX_ICE, ANIM_GFX_LIGHTNING + anim_call BattleAnim_TriAttack_branch_cbbcc + anim_wait 16 + anim_call BattleAnim_TriAttack_branch_cbbdf + anim_wait 16 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $4 + anim_sound 0, 1, SFX_THUNDER + anim_obj ANIM_OBJ_2F, -13, 0, 8, 4, $0 + anim_wait 16 + anim_ret +; ca80c + +BattleAnim_Withdraw: ; ca80c + anim_1gfx ANIM_GFX_REFLECT + anim_call BattleAnim_FollowPlayerHead_0 + anim_bgeffect ANIM_BG_WITHDRAW, $0, $1, $50 + anim_wait 48 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_WITHDRAW, 6, 0, 11, 0, $0 + anim_wait 64 + anim_incobj 2 + anim_wait 1 + anim_incbgeffect ANIM_BG_WITHDRAW + anim_call BattleAnim_ShowMon_0 + anim_ret +; ca829 + +BattleAnim_Psybeam: ; ca829 + anim_1gfx ANIM_GFX_PSYCHIC + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_bgeffect ANIM_BG_08, $0, $4, $0 +.loop + anim_sound 6, 2, SFX_PSYBEAM + anim_obj ANIM_OBJ_4C, 8, 0, 11, 0, $4 + anim_wait 4 + anim_loop 10, .loop + anim_wait 48 + anim_ret +; ca844 + +BattleAnim_DreamEater: ; ca844 + anim_1gfx ANIM_GFX_BUBBLE + anim_bgp $1b + anim_obp0 $27 + anim_sound 6, 3, SFX_WATER_GUN + anim_call BattleAnim_DreamEater_branch_cbab3 + anim_wait 128 + anim_wait 48 + anim_ret +; ca853 + +BattleAnim_LeechLife: ; ca853 + anim_1gfx ANIM_GFX_BUBBLE + anim_sound 6, 3, SFX_WATER_GUN + anim_call BattleAnim_LeechLife_branch_cbab3 + anim_wait 128 + anim_wait 48 + anim_ret +; ca85e + +BattleAnim_Harden: ; ca85e + anim_1gfx ANIM_GFX_REFLECT + anim_obp0 $0 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_call BattleAnim_Harden_branch_cbc43 + anim_call BattleAnim_ShowMon_0 + anim_ret +; ca86c + +BattleAnim_Psywave: ; ca86c + anim_1gfx ANIM_GFX_PSYCHIC + anim_bgeffect ANIM_BG_PSYCHIC, $0, $0, $0 +.loop + anim_sound 6, 2, SFX_PSYCHIC + anim_obj ANIM_OBJ_4C, 8, 0, 10, 0, $2 + anim_wait 8 + anim_sound 6, 2, SFX_PSYCHIC + anim_obj ANIM_OBJ_4C, 8, 0, 11, 0, $3 + anim_wait 8 + anim_sound 6, 2, SFX_PSYCHIC + anim_obj ANIM_OBJ_4C, 8, 0, 12, 0, $4 + anim_wait 8 + anim_loop 3, .loop + anim_wait 32 + anim_incbgeffect ANIM_BG_PSYCHIC + anim_wait 4 + anim_ret +; ca897 + +BattleAnim_Glare: ; ca897 + anim_1gfx ANIM_GFX_BEAM + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $20 + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_call BattleAnim_Glare_branch_cbadc + anim_wait 16 + anim_ret +; ca8a8 + +BattleAnim_Thrash: ; ca8a8 + anim_1gfx ANIM_GFX_HIT + anim_sound 0, 1, SFX_POUND + anim_obj ANIM_OBJ_08, 15, 0, 9, 0, $0 + anim_obj ANIM_OBJ_00, 15, 0, 9, 0, $0 + anim_wait 6 + anim_sound 0, 1, SFX_MOVE_PUZZLE_PIECE + anim_obj ANIM_OBJ_06, -15, 0, 7, 0, $0 + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 + anim_wait 6 + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_07, -13, 0, 5, 0, $0 + anim_obj ANIM_OBJ_00, -13, 0, 5, 0, $0 + anim_wait 16 + anim_ret +; ca8d5 + +BattleAnim_Growth: ; ca8d5 + anim_bgeffect ANIM_BG_WHITE_HUES, $0, $8, $0 + anim_1gfx ANIM_GFX_CHARGE + anim_sound 0, 0, SFX_SWORDS_DANCE + anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $0 + anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $8 + anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $10 + anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $18 + anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $20 + anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $28 + anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $30 + anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $38 + anim_wait 64 + anim_ret +; ca909 + +BattleAnim_Conversion2: ; ca909 + anim_1gfx ANIM_GFX_EXPLOSION + anim_sound 63, 3, SFX_SHARPEN + anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $0 + anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $8 + anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $10 + anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $18 + anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $20 + anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $28 + anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $30 + anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $38 + anim_wait 128 + anim_wait 48 + anim_ret +; ca939 + +BattleAnim_Smokescreen: ; ca939 + anim_3gfx ANIM_GFX_HAZE, ANIM_GFX_EGG, ANIM_GFX_SMOKE + anim_sound 6, 2, SFX_THROW_BALL + anim_obj ANIM_OBJ_75, 8, 0, 11, 4, $6c + anim_wait 24 + anim_incobj 1 + anim_sound 0, 1, SFX_BALL_POOF + anim_obj ANIM_OBJ_BALL_POOF, 13, 4, 8, 6, $10 + anim_wait 8 +.loop + anim_sound 0, 1, SFX_MENU + anim_obj ANIM_OBJ_74, -16, 4, 7, 4, $20 + anim_wait 8 + anim_loop 5, .loop + anim_wait 128 + anim_ret +; ca960 + +BattleAnim_Strength: ; ca960 + anim_2gfx ANIM_GFX_ROCKS, ANIM_GFX_HIT + anim_bgeffect ANIM_BG_20, $10, $1, $20 + anim_sound 0, 0, SFX_STRENGTH + anim_obj ANIM_OBJ_1F, 8, 0, 13, 0, $1 + anim_wait 128 + anim_incobj 1 + anim_wait 20 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_00, -16, 4, 5, 0, $0 + anim_wait 16 + anim_ret +; ca97e + +BattleAnim_SwordsDance: ; ca97e + anim_1gfx ANIM_GFX_WHIP + anim_sound 0, 0, SFX_SWORDS_DANCE + anim_obj ANIM_OBJ_76, 6, 0, 13, 4, $0 + anim_obj ANIM_OBJ_76, 6, 0, 13, 4, $d + anim_obj ANIM_OBJ_76, 6, 0, 13, 4, $1a + anim_obj ANIM_OBJ_76, 6, 0, 13, 4, $27 + anim_obj ANIM_OBJ_76, 6, 0, 13, 4, $34 + anim_wait 56 + anim_ret +; ca99e + +BattleAnim_QuickAttack: ; ca99e + anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_HIT + anim_sound 0, 0, SFX_MENU + anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0 + anim_obj ANIM_OBJ_77, 3, 0, 11, 0, $2 + anim_obj ANIM_OBJ_77, 4, 0, 11, 0, $1 + anim_obj ANIM_OBJ_77, 5, 0, 11, 0, $0 + anim_obj ANIM_OBJ_77, 6, 0, 11, 0, $80 + anim_obj ANIM_OBJ_77, 7, 0, 11, 0, $81 + anim_obj ANIM_OBJ_77, 8, 0, 11, 0, $82 + anim_wait 12 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 + anim_wait 8 + anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 + anim_wait 16 + anim_ret +; ca9d8 + +BattleAnim_Meditate: ; ca9d8 + anim_1gfx ANIM_GFX_HIT + anim_call BattleAnim_FollowEnemyFeet_0 + anim_sound 0, 0, SFX_PSYBEAM + anim_bgeffect ANIM_BG_WAVE_DEFORM_USER, $0, $1, $0 + anim_wait 48 + anim_incbgeffect ANIM_BG_WAVE_DEFORM_USER + anim_wait 48 + anim_call BattleAnim_ShowMon_0 + anim_ret +; ca9ed + +BattleAnim_Sharpen: ; ca9ed + anim_1gfx ANIM_GFX_SHAPES + anim_obp0 $e4 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_sound 0, 0, SFX_SHARPEN + anim_bgeffect ANIM_BG_18, $0, $1, $40 + anim_obj ANIM_OBJ_78, 6, 0, 11, 0, $0 + anim_wait 96 + anim_incobj 2 + anim_incbgeffect ANIM_BG_18 + anim_call BattleAnim_ShowMon_0 + anim_ret +; caa0a + +BattleAnim_DefenseCurl: ; caa0a + anim_1gfx ANIM_GFX_SHAPES + anim_obp0 $e4 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_sound 0, 0, SFX_SHARPEN + anim_bgeffect ANIM_BG_18, $0, $1, $40 + anim_obj ANIM_OBJ_79, 6, 0, 11, 0, $0 + anim_wait 96 + anim_incobj 2 + anim_incbgeffect ANIM_BG_18 + anim_call BattleAnim_ShowMon_0 + anim_ret +; caa27 + +BattleAnim_SeismicToss: ; caa27 + anim_2gfx ANIM_GFX_GLOBE, ANIM_GFX_HIT + anim_bgeffect ANIM_BG_20, $10, $1, $20 + anim_sound 0, 0, SFX_STRENGTH + anim_obj ANIM_OBJ_20, 8, 0, 13, 0, $1 + anim_wait 128 + anim_incobj 1 + anim_wait 20 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_00, -16, 4, 5, 0, $0 + anim_wait 16 + anim_ret +; caa45 + +BattleAnim_Rage: ; caa45 + anim_1gfx ANIM_GFX_HIT + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_1A, $0, $1, $20 + anim_sound 0, 0, SFX_RAGE + anim_wait 72 + anim_incbgeffect ANIM_BG_1A + anim_call BattleAnim_ShowMon_0 + anim_sound 0, 1, SFX_MOVE_PUZZLE_PIECE + anim_obj ANIM_OBJ_00, 15, 0, 9, 0, $0 + anim_wait 6 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 + anim_wait 6 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_00, -13, 0, 5, 0, $0 + anim_wait 16 + anim_ret +; caa74 + +BattleAnim_Agility: ; caa74 + anim_1gfx ANIM_GFX_WIND + anim_obp0 $fc + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_18, $0, $1, $40 + anim_obj ANIM_OBJ_7D, 1, 0, 3, 0, $10 + anim_obj ANIM_OBJ_7D, 1, 0, 6, 0, $2 + anim_obj ANIM_OBJ_7D, 1, 0, 11, 0, $8 + anim_wait 4 + anim_obj ANIM_OBJ_7D, 1, 0, 4, 0, $6 + anim_obj ANIM_OBJ_7D, 1, 0, 7, 0, $c + anim_obj ANIM_OBJ_7D, 1, 0, 10, 0, $4 + anim_obj ANIM_OBJ_7D, 1, 0, 13, 0, $e +.loop + anim_sound 0, 0, SFX_RAZOR_WIND + anim_wait 4 + anim_loop 18, .loop + anim_incbgeffect ANIM_BG_18 + anim_call BattleAnim_ShowMon_0 + anim_ret +; caab2 + +BattleAnim_BoneClub: ; caab2 + anim_2gfx ANIM_GFX_HIT, ANIM_GFX_MISC + anim_obj ANIM_OBJ_68, 8, 0, 11, 0, $2 + anim_wait 32 + anim_sound 0, 1, SFX_BONE_CLUB + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 + anim_wait 16 + anim_ret +; caac5 + +BattleAnim_Barrier: ; caac5 + anim_1gfx ANIM_GFX_REFLECT + anim_enemyfeetobj + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_wait 8 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_50, 9, 0, 10, 0, $0 + anim_wait 32 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_50, 9, 0, 10, 0, $0 + anim_wait 32 + anim_ret +; caae1 + +BattleAnim_Waterfall: ; caae1 + anim_1gfx ANIM_GFX_HIT + anim_call BattleAnim_FollowPlayerHead_0 + anim_bgeffect ANIM_BG_25, $0, $1, $0 + anim_wait 16 + anim_call BattleAnim_ShowMon_0 + anim_sound 0, 1, SFX_LICK + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 + anim_wait 3 + anim_sound 0, 1, SFX_LICK + anim_obj ANIM_OBJ_01, -15, 0, 6, 0, $0 + anim_wait 3 + anim_sound 0, 1, SFX_LICK + anim_obj ANIM_OBJ_01, -15, 0, 5, 0, $0 + anim_wait 3 + anim_sound 0, 1, SFX_LICK + anim_obj ANIM_OBJ_01, -15, 0, 4, 0, $0 + anim_wait 3 + anim_sound 0, 1, SFX_LICK + anim_obj ANIM_OBJ_01, -15, 0, 3, 0, $0 + anim_wait 8 + anim_ret +; cab1d + +BattleAnim_PsychicM: ; cab1d + anim_1gfx ANIM_GFX_PSYCHIC + anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0 + anim_bgeffect ANIM_BG_PSYCHIC, $0, $0, $0 +.loop + anim_sound 6, 2, SFX_PSYCHIC + anim_obj ANIM_OBJ_4C, 8, 0, 11, 0, $2 + anim_wait 8 + anim_loop 8, .loop + anim_wait 96 + anim_incbgeffect ANIM_BG_PSYCHIC + anim_wait 4 + anim_ret +; cab3b + +BattleAnim_Sludge: ; cab3b + anim_1gfx ANIM_GFX_POISON + anim_call BattleAnim_Sludge_branch_cbc15 + anim_wait 56 + anim_ret +; cab42 + +BattleAnim_Toxic: ; cab42 + anim_1gfx ANIM_GFX_POISON + anim_bgeffect ANIM_BG_BLACK_HUES, $0, $8, $0 + anim_call BattleAnim_Toxic_branch_cbc35 + anim_wait 32 + anim_call BattleAnim_Toxic_branch_cbc15 + anim_wait 64 + anim_ret +; cab52 + +BattleAnim_Metronome: ; cab52 + anim_2gfx ANIM_GFX_MISC, ANIM_GFX_SPEED + anim_sound 0, 0, SFX_METRONOME + anim_obj ANIM_OBJ_7A, 9, 0, 11, 0, $0 +.loop + anim_obj ANIM_OBJ_7B, 9, 0, 10, 0, $0 + anim_wait 8 + anim_loop 5, .loop + anim_wait 48 + anim_ret +; cab69 + +BattleAnim_Counter: ; cab69 + anim_1gfx ANIM_GFX_HIT +.loop + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $2 + anim_sound 0, 1, SFX_POUND + anim_obj ANIM_OBJ_08, 15, 0, 9, 0, $0 + anim_obj ANIM_OBJ_00, 15, 0, 9, 0, $0 + anim_wait 6 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $2 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_06, -15, 0, 5, 0, $0 + anim_obj ANIM_OBJ_00, -15, 0, 5, 0, $0 + anim_wait 6 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $2 + anim_sound 0, 1, SFX_MEGA_KICK + anim_obj ANIM_OBJ_07, -13, 0, 7, 0, $0 + anim_obj ANIM_OBJ_00, -13, 0, 7, 0, $0 + anim_wait 6 + anim_loop 3, .loop + anim_wait 16 + anim_ret +; cabaa + +BattleAnim_LowKick: ; cabaa + anim_1gfx ANIM_GFX_HIT + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2 + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_07, 15, 4, 8, 0, $0 + anim_obj ANIM_OBJ_00, 15, 4, 8, 0, $0 + anim_wait 6 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2 + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_07, -16, 4, 8, 0, $0 + anim_obj ANIM_OBJ_00, -16, 4, 8, 0, $0 + anim_wait 6 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2 + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_07, -15, 4, 8, 0, $0 + anim_obj ANIM_OBJ_00, -15, 4, 8, 0, $0 + anim_wait 16 + anim_ret +; cabe6 + +BattleAnim_WingAttack: ; cabe6 + anim_1gfx ANIM_GFX_HIT + anim_sound 0, 1, SFX_WING_ATTACK + anim_obj ANIM_OBJ_01, -14, 4, 7, 0, $0 + anim_obj ANIM_OBJ_01, 14, 4, 7, 0, $0 + anim_wait 6 + anim_sound 0, 1, SFX_WING_ATTACK + anim_obj ANIM_OBJ_01, -14, 0, 7, 0, $0 + anim_obj ANIM_OBJ_01, 15, 0, 7, 0, $0 + anim_wait 6 + anim_sound 0, 1, SFX_WING_ATTACK + anim_obj ANIM_OBJ_01, -15, 4, 7, 0, $0 + anim_obj ANIM_OBJ_01, 15, 4, 7, 0, $0 + anim_wait 16 + anim_ret +; cac13 + +BattleAnim_Slam: ; cac13 + anim_1gfx ANIM_GFX_HIT + anim_sound 0, 1, SFX_WING_ATTACK + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $2 + anim_obj ANIM_OBJ_01, 15, 4, 5, 0, $0 + anim_wait 16 + anim_ret +; cac24 + +BattleAnim_Disable: ; cac24 + anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_STATUS + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_obj ANIM_OBJ_7C, -16, 4, 7, 0, $0 + anim_wait 16 + anim_sound 0, 1, SFX_BIND + anim_obj ANIM_OBJ_PARALYZED, 13, 0, 7, 0, $42 + anim_obj ANIM_OBJ_PARALYZED, -12, 0, 7, 0, $c2 + anim_wait 96 + anim_ret +; cac41 + +BattleAnim_TailWhip: ; cac41 + anim_1gfx ANIM_GFX_HIT + anim_call BattleAnim_FollowPlayerHead_0 + anim_sound 0, 0, SFX_TAIL_WHIP + anim_bgeffect ANIM_BG_26, $0, $1, $0 + anim_wait 32 + anim_incbgeffect ANIM_BG_26 + anim_call BattleAnim_ShowMon_0 + anim_ret +; cac55 + +BattleAnim_Struggle: ; cac55 + anim_1gfx ANIM_GFX_HIT + anim_sound 0, 1, SFX_POUND + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 + anim_wait 16 + anim_ret +; cac61 + +BattleAnim_Sketch: ; cac61 + anim_1gfx ANIM_GFX_OBJECTS + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_1A, $0, $1, $20 + anim_sound 0, 0, SFX_SKETCH + anim_obj ANIM_OBJ_98, 9, 0, 10, 0, $0 + anim_wait 80 + anim_incbgeffect ANIM_BG_1A + anim_call BattleAnim_ShowMon_0 + anim_wait 1 + anim_ret +; cac7b + +BattleAnim_TripleKick: ; cac7b + anim_1gfx ANIM_GFX_HIT + anim_if_param_equal $1, BattleAnim_TripleKick_branch_cac95 + anim_if_param_equal $2, BattleAnim_TripleKick_branch_caca5 + anim_sound 0, 1, SFX_MEGA_KICK + anim_obj ANIM_OBJ_07, -14, 0, 6, 0, $0 + anim_wait 6 + anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $0 + anim_wait 8 + anim_ret +; cac95 + +BattleAnim_TripleKick_branch_cac95: ; cac95 + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_07, 15, 0, 8, 0, $0 + anim_wait 6 + anim_obj ANIM_OBJ_01, 15, 0, 8, 0, $0 + anim_wait 8 + anim_ret +; caca5 + +BattleAnim_TripleKick_branch_caca5: ; caca5 + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_07, -16, 4, 4, 0, $0 + anim_wait 6 + anim_obj ANIM_OBJ_01, -16, 4, 4, 0, $0 + anim_wait 8 + anim_ret +; cacb5 + +BattleAnim_Thief: ; cacb5 + anim_1gfx ANIM_GFX_HIT + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0 + anim_wait 16 + anim_sound 0, 1, SFX_THIEF + anim_obj ANIM_OBJ_01, 16, 0, 6, 0, $0 + anim_wait 16 + anim_call BattleAnim_ShowMon_0 + anim_wait 1 + anim_1gfx ANIM_GFX_STATUS + anim_sound 0, 1, SFX_THIEF_2 + anim_obj ANIM_OBJ_8B, 15, 0, 9, 4, $1 + anim_wait 64 + anim_ret +; cacd9 + +BattleAnim_SpiderWeb: ; cacd9 + anim_1gfx ANIM_GFX_WEB + anim_bgeffect ANIM_BG_07, $0, $2, $0 + anim_obj ANIM_OBJ_92, -16, 4, 6, 0, $0 + anim_sound 6, 2, SFX_SPIDER_WEB + anim_obj ANIM_OBJ_5A, 8, 0, 10, 0, $0 + anim_wait 4 + anim_obj ANIM_OBJ_5A, 8, 0, 11, 0, $0 + anim_wait 4 + anim_obj ANIM_OBJ_5A, 8, 0, 10, 4, $0 + anim_wait 64 + anim_ret +; cacfb + +BattleAnim_MindReader: ; cacfb + anim_1gfx ANIM_GFX_MISC + anim_sound 0, 1, SFX_MIND_READER +.loop + anim_obj ANIM_OBJ_88, -16, 4, 6, 0, $3 + anim_obj ANIM_OBJ_88, -16, 4, 6, 0, $12 + anim_obj ANIM_OBJ_88, -16, 4, 6, 0, $20 + anim_obj ANIM_OBJ_88, -16, 4, 6, 0, $31 + anim_wait 16 + anim_loop 2, .loop + anim_wait 32 + anim_ret +; cad1b + +BattleAnim_Nightmare: ; cad1b + anim_1gfx ANIM_GFX_ANGELS + anim_bgp $1b + anim_obp0 $f + anim_obj ANIM_OBJ_94, -16, 4, 5, 0, $0 + anim_obj ANIM_OBJ_94, -16, 4, 5, 0, $a0 + anim_sound 0, 1, SFX_NIGHTMARE + anim_wait 96 + anim_ret +; cad30 + +BattleAnim_FlameWheel: ; cad30 + anim_1gfx ANIM_GFX_FIRE +.loop + anim_sound 0, 0, SFX_EMBER + anim_obj ANIM_OBJ_7F, 6, 0, 12, 0, $0 + anim_wait 6 + anim_loop 8, .loop + anim_wait 96 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0 + anim_wait 4 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3 + anim_sound 0, 1, SFX_EMBER + anim_obj ANIM_OBJ_0F, -15, 0, 6, 0, $1 + anim_obj ANIM_OBJ_0F, -15, 0, 6, 0, $4 + anim_obj ANIM_OBJ_0F, -15, 0, 6, 0, $5 + anim_wait 8 + anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0 + anim_wait 4 + anim_incobj 9 + anim_wait 8 + anim_ret +; cad6b + +BattleAnim_Snore: ; cad6b + anim_2gfx ANIM_GFX_STATUS, ANIM_GFX_NOISE + anim_obj ANIM_OBJ_54, 8, 0, 10, 0, $0 + anim_wait 32 + anim_bgeffect ANIM_BG_1F, $60, $2, $0 + anim_sound 0, 0, SFX_SNORE +.loop + anim_call BattleAnim_Snore_branch_cbbbc + anim_wait 16 + anim_loop 2, .loop + anim_wait 8 + anim_ret +; cad86 + +BattleAnim_Curse: ; cad86 + anim_if_param_equal $1, .NotGhost + anim_2gfx ANIM_GFX_HIT, ANIM_GFX_OBJECTS + anim_obj ANIM_OBJ_A5, 8, 4, 9, 0, $0 + anim_sound 0, 0, SFX_CURSE + anim_wait 32 + anim_incobj 1 + anim_wait 12 + anim_sound 0, 0, SFX_POISON_STING + anim_obj ANIM_OBJ_04, 5, 4, 12, 0, $0 + anim_wait 16 + anim_ret +; cada3 + +.NotGhost: ; cada3 + anim_1gfx ANIM_GFX_SPEED + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_19, $0, $1, $40 + anim_sound 0, 0, SFX_SHARPEN + anim_wait 64 + anim_incbgeffect ANIM_BG_19 + anim_wait 1 + anim_bgeffect ANIM_BG_16, $0, $1, $40 +.loop + anim_sound 0, 0, SFX_SWORDS_DANCE + anim_obj ANIM_OBJ_47, 5, 4, 13, 4, $6 + anim_wait 2 + anim_obj ANIM_OBJ_47, 4, 4, 13, 4, $6 + anim_wait 2 + anim_obj ANIM_OBJ_47, 6, 4, 13, 4, $8 + anim_wait 2 + anim_obj ANIM_OBJ_47, 3, 4, 13, 4, $8 + anim_wait 2 + anim_obj ANIM_OBJ_47, 7, 4, 13, 4, $6 + anim_wait 2 + anim_obj ANIM_OBJ_47, 2, 4, 13, 4, $8 + anim_wait 2 + anim_obj ANIM_OBJ_47, 8, 4, 13, 4, $8 + anim_wait 2 + anim_loop 3, .loop + anim_wait 8 + anim_incbgeffect ANIM_BG_16 + anim_call BattleAnim_ShowMon_0 + anim_ret +; cadf1 + +BattleAnim_Flail: ; cadf1 + anim_1gfx ANIM_GFX_HIT + anim_call BattleAnim_FollowEnemyFeet_0 + anim_sound 0, 0, SFX_SUBMISSION + anim_bgeffect ANIM_BG_2C, $0, $1, $0 + anim_wait 8 + anim_obj ANIM_OBJ_01, 15, 0, 6, 0, $0 + anim_wait 8 + anim_obj ANIM_OBJ_01, -13, 0, 6, 0, $0 + anim_wait 8 + anim_obj ANIM_OBJ_01, -15, 0, 6, 0, $0 + anim_wait 8 + anim_incbgeffect ANIM_BG_2C + anim_call BattleAnim_ShowMon_0 + anim_ret +; cae17 + +BattleAnim_Conversion: ; cae17 + anim_1gfx ANIM_GFX_EXPLOSION + anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0 + anim_sound 63, 3, SFX_SHARPEN + anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $0 + anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $8 + anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $10 + anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $18 + anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $20 + anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $28 + anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $30 + anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $38 + anim_wait 128 + anim_ret +; cae4b + +BattleAnim_Aeroblast: ; cae4b + anim_2gfx ANIM_GFX_BEAM, ANIM_GFX_AEROBLAST + anim_bgp $1b + anim_bgeffect ANIM_BG_1F, $50, $4, $10 + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_sound 0, 0, SFX_AEROBLAST + anim_obj ANIM_OBJ_B3, 9, 0, 11, 0, $0 + anim_wait 32 + anim_sound 0, 0, SFX_HYPER_BEAM + anim_obj ANIM_OBJ_27, 10, 0, 10, 4, $0 + anim_wait 2 + anim_sound 0, 1, SFX_HYPER_BEAM + anim_obj ANIM_OBJ_27, 12, 0, 9, 4, $0 + anim_wait 2 + anim_sound 0, 1, SFX_HYPER_BEAM + anim_obj ANIM_OBJ_27, 14, 0, 8, 4, $0 + anim_obj ANIM_OBJ_28, 15, 6, 7, 6, $0 + anim_wait 48 + anim_ret +; cae84 + +BattleAnim_CottonSpore: ; cae84 + anim_obp0 $54 + anim_1gfx ANIM_GFX_MISC + anim_sound 0, 1, SFX_POWDER +.loop ; cae8b + anim_obj ANIM_OBJ_COTTON_SPORE, -16, 4, 4, 0, $0 + anim_wait 8 + anim_loop 5, .loop + anim_wait 96 + anim_ret +; cae97 + +BattleAnim_Reversal: ; cae97 + anim_2gfx ANIM_GFX_SHINE, ANIM_GFX_HIT + anim_bgeffect ANIM_BG_07, $0, $0, $0 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_04, 14, 0, 8, 0, $0 + anim_wait 2 + anim_sound 0, 1, SFX_SHINE + anim_obj ANIM_OBJ_A7, 15, 0, 7, 0, $0 + anim_wait 2 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_04, 16, 0, 7, 0, $0 + anim_wait 2 + anim_sound 0, 1, SFX_SHINE + anim_obj ANIM_OBJ_A7, -15, 0, 6, 0, $0 + anim_wait 2 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_04, -14, 0, 6, 0, $0 + anim_wait 2 + anim_sound 0, 1, SFX_SHINE + anim_obj ANIM_OBJ_A7, -13, 0, 5, 0, $0 + anim_wait 24 + anim_ret +; caed6 + +BattleAnim_Spite: ; caed6 + anim_1gfx ANIM_GFX_ANGELS + anim_obj ANIM_OBJ_A4, -16, 4, 2, 0, $0 + anim_sound 0, 1, SFX_SPITE + anim_wait 96 + anim_ret +; caee2 + +BattleAnim_PowderSnow: ; caee2 + anim_1gfx ANIM_GFX_ICE +.loop ; caee4 + anim_sound 6, 2, SFX_SHINE + anim_obj ANIM_OBJ_8F, 8, 0, 11, 0, $23 + anim_wait 2 + anim_sound 6, 2, SFX_SHINE + anim_obj ANIM_OBJ_8F, 8, 0, 10, 0, $24 + anim_wait 2 + anim_sound 6, 2, SFX_SHINE + anim_obj ANIM_OBJ_8F, 8, 0, 12, 0, $23 + anim_wait 2 + anim_loop 2, .loop + anim_bgeffect ANIM_BG_WHITE_HUES, $0, $8, $0 + anim_wait 40 + anim_call BattleAnim_PowderSnow_branch_cbbdf + anim_wait 32 + anim_ret +; caf0e + +BattleAnim_Protect: ; caf0e + anim_1gfx ANIM_GFX_OBJECTS + anim_bgeffect ANIM_BG_07, $0, $2, $0 + anim_obj ANIM_OBJ_8A, 10, 0, 10, 0, $0 + anim_obj ANIM_OBJ_8A, 10, 0, 10, 0, $d + anim_obj ANIM_OBJ_8A, 10, 0, 10, 0, $1a + anim_obj ANIM_OBJ_8A, 10, 0, 10, 0, $27 + anim_obj ANIM_OBJ_8A, 10, 0, 10, 0, $34 + anim_sound 0, 0, SFX_PROTECT + anim_wait 96 + anim_ret +; caf33 + +BattleAnim_MachPunch: ; caf33 + anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_HIT + anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0 + anim_sound 0, 0, SFX_MENU + anim_obj ANIM_OBJ_77, 3, 0, 11, 0, $2 + anim_obj ANIM_OBJ_77, 4, 0, 11, 0, $1 + anim_obj ANIM_OBJ_77, 5, 0, 11, 0, $0 + anim_obj ANIM_OBJ_77, 6, 0, 11, 0, $80 + anim_obj ANIM_OBJ_77, 7, 0, 11, 0, $81 + anim_obj ANIM_OBJ_77, 8, 0, 11, 0, $82 + anim_wait 12 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_06, -15, 0, 7, 0, $0 + anim_wait 6 + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 + anim_wait 8 + anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 + anim_wait 16 + anim_ret +; caf73 + +BattleAnim_ScaryFace: ; caf73 + anim_1gfx ANIM_GFX_BEAM + anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0 + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_call BattleAnim_ScaryFace_branch_cbadc + anim_wait 64 + anim_ret +; caf84 + +BattleAnim_FaintAttack: ; caf84 + anim_1gfx ANIM_GFX_HIT + anim_sound 0, 0, SFX_CURSE + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_1D, $0, $1, $80 + anim_wait 96 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_04, 15, 0, 4, 0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_04, -13, 0, 5, 0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_04, -15, 0, 6, 0, $0 + anim_wait 32 + anim_incbgeffect ANIM_BG_1D + anim_call BattleAnim_ShowMon_0 + anim_wait 4 + anim_ret +; cafb4 + +BattleAnim_SweetKiss: ; cafb4 + anim_2gfx ANIM_GFX_OBJECTS, ANIM_GFX_ANGELS + anim_bgeffect ANIM_BG_07, $0, $2, $0 + anim_obj ANIM_OBJ_97, 12, 0, 5, 0, $0 + anim_sound 0, 1, SFX_SWEET_KISS + anim_wait 32 + anim_sound 0, 1, SFX_SWEET_KISS_2 + anim_obj ANIM_OBJ_HEART, 15, 0, 5, 0, $0 + anim_wait 40 + anim_ret +; cafcf + +BattleAnim_BellyDrum: ; cafcf + anim_2gfx ANIM_GFX_HIT, ANIM_GFX_NOISE + anim_sound 0, 0, SFX_BELLY_DRUM + anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0 + anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8 + anim_wait 24 + anim_sound 0, 0, SFX_BELLY_DRUM + anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0 + anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8 + anim_wait 24 + anim_sound 0, 0, SFX_BELLY_DRUM + anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0 + anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8 + anim_wait 12 + anim_sound 0, 0, SFX_BELLY_DRUM + anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0 + anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8 + anim_wait 12 + anim_sound 0, 0, SFX_BELLY_DRUM + anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0 + anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8 + anim_wait 24 + anim_sound 0, 0, SFX_BELLY_DRUM + anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0 + anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8 + anim_wait 12 + anim_sound 0, 0, SFX_BELLY_DRUM + anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0 + anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8 + anim_wait 12 + anim_sound 0, 0, SFX_BELLY_DRUM + anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0 + anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8 + anim_wait 12 + anim_sound 0, 0, SFX_BELLY_DRUM + anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0 + anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8 + anim_wait 12 + anim_ret +; cb051 + +BattleAnim_SludgeBomb: ; cb051 + anim_2gfx ANIM_GFX_EGG, ANIM_GFX_POISON + anim_bgeffect ANIM_BG_BLACK_HUES, $0, $8, $0 + anim_sound 6, 2, SFX_SLUDGE_BOMB + anim_obj ANIM_OBJ_62, 8, 0, 11, 4, $10 + anim_wait 36 + anim_call BattleAnim_SludgeBomb_branch_cbc15 + anim_wait 64 + anim_ret +; cb067 + +BattleAnim_MudSlap: ; cb067 + anim_1gfx ANIM_GFX_SAND + anim_obp0 $fc + anim_call BattleAnim_MudSlap_branch_cbc5b + anim_ret +; cb06f + +BattleAnim_Octazooka: ; cb06f + anim_3gfx ANIM_GFX_HAZE, ANIM_GFX_EGG, ANIM_GFX_SMOKE + anim_sound 6, 2, SFX_SLUDGE_BOMB + anim_obj ANIM_OBJ_8C, 8, 0, 11, 4, $4 + anim_wait 16 + anim_obj ANIM_OBJ_BALL_POOF, -16, 4, 7, 0, $10 + anim_wait 8 + anim_if_param_equal $0, .done +.loop + anim_obj ANIM_OBJ_74, -16, 4, 7, 4, $20 + anim_wait 8 + anim_loop 5, .loop + anim_wait 128 +.done + anim_ret +; cb092 + +BattleAnim_Spikes: ; cb092 + anim_1gfx ANIM_GFX_MISC + anim_sound 6, 2, SFX_MENU + anim_obj ANIM_OBJ_SPIKES, 6, 0, 11, 0, $20 + anim_wait 8 + anim_sound 6, 2, SFX_MENU + anim_obj ANIM_OBJ_SPIKES, 6, 0, 11, 0, $30 + anim_wait 8 + anim_sound 6, 2, SFX_MENU + anim_obj ANIM_OBJ_SPIKES, 6, 0, 11, 0, $28 + anim_wait 64 + anim_ret +; cb0b0 + +BattleAnim_ZapCannon: ; cb0b0 + anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION + anim_bgp $1b + anim_obp0 $30 + anim_sound 6, 2, SFX_ZAP_CANNON + anim_obj ANIM_OBJ_A3, 8, 0, 11, 4, $2 + anim_wait 40 + anim_sound 0, 1, SFX_THUNDERSHOCK + anim_obj ANIM_OBJ_LIGHTNING_BOLT, -15, 0, 7, 0, $2 + anim_wait 16 + anim_obj ANIM_OBJ_31, -15, 0, 7, 0, $0 + anim_wait 128 + anim_ret +; cb0d0 + +BattleAnim_Foresight: ; cb0d0 + anim_1gfx ANIM_GFX_SHINE + anim_call BattleAnim_FollowEnemyFeet_1 + anim_bgeffect ANIM_BG_07, $0, $0, $0 + anim_sound 0, 1, SFX_FORESIGHT + anim_obj ANIM_OBJ_A7, -16, 4, 5, 0, $0 + anim_wait 24 + anim_bgeffect ANIM_BG_19, $0, $0, $40 + anim_wait 64 + anim_incbgeffect ANIM_BG_19 + anim_call BattleAnim_ShowMon_1 + anim_wait 8 + anim_ret +; cb0f0 + +BattleAnim_DestinyBond: ; cb0f0 + anim_1gfx ANIM_GFX_ANGELS + anim_bgp $1b + anim_obp0 $0 + anim_if_param_equal $1, BattleAnim_DestinyBond_branch_cb104 + anim_sound 6, 2, SFX_WHIRLWIND + anim_obj ANIM_OBJ_9B, 5, 4, 15, 0, $2 + anim_wait 128 + anim_ret +; cb104 + +BattleAnim_DestinyBond_branch_cb104: ; cb104 + anim_obj ANIM_OBJ_9B, -16, 4, 9, 4, $0 + anim_sound 0, 1, SFX_KINESIS + anim_bgeffect ANIM_BG_RETURN_MON, $0, $0, $0 + anim_wait 32 + anim_ret +; cb113 + +BattleAnim_PerishSong: ; cb113 + anim_1gfx ANIM_GFX_NOISE + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0 + anim_sound 0, 2, SFX_PERISH_SONG + anim_obj ANIM_OBJ_PERISH_SONG, 11, 0, 0, 0, $0 + anim_obj ANIM_OBJ_PERISH_SONG, 11, 0, 0, 0, $8 + anim_obj ANIM_OBJ_PERISH_SONG, 11, 0, 0, 0, $10 + anim_obj ANIM_OBJ_PERISH_SONG, 11, 0, 0, 0, $18 + anim_obj ANIM_OBJ_PERISH_SONG, 11, 0, 0, 0, $20 + anim_obj ANIM_OBJ_PERISH_SONG, 11, 0, 0, 0, $28 + anim_obj ANIM_OBJ_PERISH_SONG, 11, 0, 0, 0, $30 + anim_obj ANIM_OBJ_PERISH_SONG, 11, 0, 0, 0, $38 + anim_wait 112 + anim_ret +; cb14c + +BattleAnim_IcyWind: ; cb14c + anim_1gfx ANIM_GFX_SPEED + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0 + anim_playerheadobj + anim_sound 0, 0, SFX_PSYCHIC +.loop + anim_wait 8 + anim_obj ANIM_OBJ_AE, 8, 0, 11, 0, $4 + anim_wait 8 + anim_obj ANIM_OBJ_AE, 8, 0, 10, 0, $4 + anim_wait 8 + anim_obj ANIM_OBJ_AE, 8, 0, 12, 0, $4 + anim_wait 8 + anim_loop 2, .loop + anim_wait 16 + anim_bgeffect ANIM_BG_HEAD_FOLLOW, $0, $1, $0 + anim_wait 6 + anim_bgeffect ANIM_BG_NIGHT_SHADE, $0, $0, $8 + anim_wait 64 + anim_incbgeffect ANIM_BG_NIGHT_SHADE + anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 + anim_wait 4 + anim_incobj 7 + anim_wait 1 + anim_ret +; cb18c + +BattleAnim_Detect: ; cb18c + anim_1gfx ANIM_GFX_SHINE + anim_bgeffect ANIM_BG_07, $0, $0, $0 + anim_sound 0, 0, SFX_FORESIGHT + anim_obj ANIM_OBJ_A7, 8, 0, 11, 0, $0 + anim_wait 24 + anim_ret +; cb19d + +BattleAnim_BoneRush: ; cb19d + anim_2gfx ANIM_GFX_HIT, ANIM_GFX_MISC + anim_sound 0, 1, SFX_BONE_CLUB + anim_obj ANIM_OBJ_69, -16, 4, 7, 0, $2 + anim_wait 16 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_01, 15, 0, 6, 0, $0 + anim_wait 16 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_01, -14, 0, 8, 0, $0 + anim_wait 16 + anim_ret +; cb1bc + +BattleAnim_LockOn: ; cb1bc + anim_1gfx ANIM_GFX_MISC + anim_sound 0, 1, SFX_MIND_READER +.loop + anim_obj ANIM_OBJ_87, -16, 4, 6, 0, $3 + anim_obj ANIM_OBJ_87, -16, 4, 6, 0, $12 + anim_obj ANIM_OBJ_87, -16, 4, 6, 0, $20 + anim_obj ANIM_OBJ_87, -16, 4, 6, 0, $31 + anim_wait 16 + anim_loop 2, .loop + anim_wait 32 + anim_ret +; cb1dc + +BattleAnim_Outrage: ; cb1dc + anim_1gfx ANIM_GFX_HIT + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_1A, $0, $1, $20 + anim_sound 0, 0, SFX_OUTRAGE + anim_wait 72 + anim_incbgeffect ANIM_BG_1A + anim_call BattleAnim_ShowMon_0 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3 + anim_sound 0, 1, SFX_MOVE_PUZZLE_PIECE + anim_obj ANIM_OBJ_00, 15, 0, 9, 0, $0 + anim_wait 6 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 + anim_wait 6 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_00, -13, 0, 5, 0, $0 + anim_wait 16 + anim_ret +; cb210 + +BattleAnim_Sandstorm: ; cb210 + anim_1gfx ANIM_GFX_POWDER + anim_obj ANIM_OBJ_A2, 11, 0, 0, 0, $0 + anim_wait 8 + anim_obj ANIM_OBJ_A2, 9, 0, 0, 0, $1 + anim_wait 8 + anim_obj ANIM_OBJ_A2, 7, 0, 0, 0, $2 +.loop + anim_sound 0, 1, SFX_MENU + anim_wait 8 + anim_loop 16, .loop + anim_wait 8 + anim_ret +; cb22d + +BattleAnim_GigaDrain: ; cb22d + anim_2gfx ANIM_GFX_BUBBLE, ANIM_GFX_CHARGE + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_1C, $0, $0, $10 + anim_sound 6, 3, SFX_GIGA_DRAIN + anim_call BattleAnim_GigaDrain_branch_cbab3 + anim_wait 48 + anim_wait 128 + anim_incbgeffect ANIM_BG_1C + anim_call BattleAnim_ShowMon_0 + anim_wait 1 + anim_1gfx ANIM_GFX_SHINE + anim_bgeffect ANIM_BG_07, $0, $0, $0 +.loop + anim_sound 0, 0, SFX_METRONOME + anim_obj ANIM_OBJ_9D, 3, 0, 8, 0, $0 + anim_wait 5 + anim_obj ANIM_OBJ_9D, 7, 0, 13, 0, $0 + anim_wait 5 + anim_obj ANIM_OBJ_9D, 3, 0, 13, 0, $0 + anim_wait 5 + anim_obj ANIM_OBJ_9D, 7, 0, 8, 0, $0 + anim_wait 5 + anim_obj ANIM_OBJ_9D, 5, 0, 10, 4, $0 + anim_wait 5 + anim_loop 2, .loop + anim_wait 32 + anim_ret +; cb274 + +BattleAnim_Endure: ; cb274 + anim_1gfx ANIM_GFX_SPEED + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_1A, $0, $1, $20 + anim_bgeffect ANIM_BG_07, $0, $2, $0 +.loop + anim_sound 0, 0, SFX_SWORDS_DANCE + anim_obj ANIM_OBJ_47, 5, 4, 13, 4, $6 + anim_wait 2 + anim_obj ANIM_OBJ_47, 4, 4, 13, 4, $6 + anim_wait 2 + anim_obj ANIM_OBJ_47, 6, 4, 13, 4, $8 + anim_wait 2 + anim_obj ANIM_OBJ_47, 3, 4, 13, 4, $8 + anim_wait 2 + anim_obj ANIM_OBJ_47, 7, 4, 13, 4, $6 + anim_wait 2 + anim_obj ANIM_OBJ_47, 2, 4, 13, 4, $8 + anim_wait 2 + anim_obj ANIM_OBJ_47, 8, 4, 13, 4, $8 + anim_wait 2 + anim_loop 5, .loop + anim_wait 8 + anim_incbgeffect ANIM_BG_1A + anim_call BattleAnim_ShowMon_0 + anim_ret +; cb2bb + +BattleAnim_Charm: ; cb2bb + anim_1gfx ANIM_GFX_OBJECTS + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_26, $0, $1, $0 + anim_sound 0, 0, SFX_ATTRACT + anim_obj ANIM_OBJ_HEART, 8, 0, 10, 0, $0 + anim_wait 32 + anim_incbgeffect ANIM_BG_26 + anim_call BattleAnim_ShowMon_0 + anim_wait 4 + anim_ret +; cb2d5 + +BattleAnim_Rollout: ; cb2d5 + anim_1gfx ANIM_GFX_HIT + anim_sound 0, 0, SFX_SPARK + anim_call BattleAnim_FollowPlayerHead_0 + anim_bgeffect ANIM_BG_2E, $60, $1, $1 + anim_bgeffect ANIM_BG_25, $0, $1, $0 + anim_wait 4 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_03, -15, 0, 5, 0, $0 + anim_wait 8 + anim_call BattleAnim_ShowMon_0 + anim_ret +; cb2f5 + +BattleAnim_FalseSwipe: ; cb2f5 + anim_2gfx ANIM_GFX_SHINE, ANIM_GFX_CUT + anim_bgeffect ANIM_BG_07, $0, $0, $0 + anim_sound 0, 1, SFX_CUT + anim_obj ANIM_OBJ_3A, -13, 0, 5, 0, $0 + anim_wait 4 + anim_obj ANIM_OBJ_9D, -15, 0, 5, 0, $0 + anim_wait 32 + anim_ret +; cb30d + +BattleAnim_Swagger: ; cb30d + anim_2gfx ANIM_GFX_MISC, ANIM_GFX_WIND +.loop + anim_sound 0, 0, SFX_MENU + anim_obj ANIM_OBJ_A9, 9, 0, 11, 0, $44 + anim_wait 32 + anim_loop 2, .loop + anim_wait 32 + anim_sound 0, 1, SFX_KINESIS_2 + anim_obj ANIM_OBJ_83, 13, 0, 5, 0, $0 + anim_wait 40 + anim_ret +; cb328 + +BattleAnim_MilkDrink: ; cb328 + anim_2gfx ANIM_GFX_MISC, ANIM_GFX_BUBBLE + anim_call BattleAnim_FollowEnemyFeet_0 + anim_obj ANIM_OBJ_82, 9, 2, 13, 0, $0 + anim_wait 16 + anim_bgeffect ANIM_BG_18, $0, $1, $40 + anim_sound 0, 0, SFX_MILK_DRINK +.loop + anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $20 + anim_wait 8 + anim_loop 8, .loop + anim_wait 128 + anim_incbgeffect ANIM_BG_18 + anim_call BattleAnim_ShowMon_0 + anim_ret +; cb34d + +BattleAnim_Spark: ; cb34d + anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION + anim_sound 0, 0, SFX_ZAP_CANNON + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3 + anim_obj ANIM_OBJ_30, 6, 0, 11, 4, $0 + anim_wait 24 + anim_setobj $1, $3 + anim_wait 1 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0 + anim_sound 0, 0, SFX_SPARK + anim_wait 16 + anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0 + anim_wait 4 + anim_incobj 2 + anim_wait 1 + anim_sound 0, 1, SFX_THUNDERSHOCK + anim_obj ANIM_OBJ_LIGHTNING_BOLT, -15, 0, 7, 0, $2 + anim_obj ANIM_OBJ_33, -15, 0, 7, 0, $0 + anim_wait 32 + anim_ret +; cb386 + +BattleAnim_FuryCutter: ; cb386 + anim_1gfx ANIM_GFX_CUT +.loop + anim_sound 0, 1, SFX_CUT + anim_if_param_and %00000001, .obj1 + anim_obj ANIM_OBJ_3A, -13, 0, 5, 0, $0 + anim_jump .okay + +.obj1 + anim_obj ANIM_OBJ_3B, 14, 0, 5, 0, $0 +.okay + anim_wait 16 + anim_jumpuntil .loop + anim_ret +; cb3a1 + +BattleAnim_SteelWing: ; cb3a1 + anim_1gfx ANIM_GFX_REFLECT + anim_obp0 $0 + anim_sound 0, 0, SFX_RAGE + anim_call BattleAnim_FollowEnemyFeet_0 + anim_call BattleAnim_SteelWing_branch_cbc43 + anim_call BattleAnim_ShowMon_0 + anim_1gfx ANIM_GFX_HIT + anim_resetobp0 + anim_sound 0, 1, SFX_WING_ATTACK + anim_obj ANIM_OBJ_01, -14, 4, 7, 0, $0 + anim_obj ANIM_OBJ_01, 14, 4, 7, 0, $0 + anim_wait 6 + anim_sound 0, 1, SFX_WING_ATTACK + anim_obj ANIM_OBJ_01, -14, 0, 7, 0, $0 + anim_obj ANIM_OBJ_01, 15, 0, 7, 0, $0 + anim_wait 6 + anim_sound 0, 1, SFX_WING_ATTACK + anim_obj ANIM_OBJ_01, -15, 4, 7, 0, $0 + anim_obj ANIM_OBJ_01, 15, 4, 7, 0, $0 + anim_wait 16 + anim_ret +; cb3df + +BattleAnim_MeanLook: ; cb3df + anim_1gfx ANIM_GFX_PSYCHIC + anim_obp0 $e0 + anim_sound 0, 1, SFX_MEAN_LOOK + anim_obj ANIM_OBJ_AC, -14, 4, 4, 0, $0 + anim_wait 5 + anim_obj ANIM_OBJ_AC, 14, 4, 8, 0, $0 + anim_wait 5 + anim_obj ANIM_OBJ_AC, -14, 4, 8, 0, $0 + anim_wait 5 + anim_obj ANIM_OBJ_AC, 14, 4, 4, 0, $0 + anim_wait 5 + anim_obj ANIM_OBJ_AC, -16, 4, 6, 0, $0 + anim_wait 128 + anim_ret +; cb405 + +BattleAnim_Attract: ; cb405 + anim_1gfx ANIM_GFX_OBJECTS +.loop + anim_sound 0, 0, SFX_ATTRACT + anim_obj ANIM_OBJ_66, 5, 4, 10, 0, $2 + anim_wait 8 + anim_loop 5, .loop + anim_wait 128 + anim_wait 64 + anim_ret +; cb417 + +BattleAnim_SleepTalk: ; cb417 + anim_1gfx ANIM_GFX_STATUS +.loop + anim_sound 0, 0, SFX_STRENGTH + anim_obj ANIM_OBJ_54, 8, 0, 10, 0, $0 + anim_wait 40 + anim_loop 2, .loop + anim_wait 32 + anim_ret +; cb428 + +BattleAnim_HealBell: ; cb428 + anim_2gfx ANIM_GFX_MISC, ANIM_GFX_NOISE + anim_obj ANIM_OBJ_84, 9, 0, 7, 0, $0 + anim_wait 32 +.loop + anim_sound 0, 0, SFX_HEAL_BELL + anim_obj ANIM_OBJ_85, 9, 0, 6, 4, $0 + anim_wait 8 + anim_sound 0, 0, SFX_HEAL_BELL + anim_obj ANIM_OBJ_85, 9, 0, 6, 4, $1 + anim_wait 8 + anim_sound 0, 0, SFX_HEAL_BELL + anim_obj ANIM_OBJ_85, 9, 0, 6, 4, $2 + anim_wait 8 + anim_sound 0, 0, SFX_HEAL_BELL + anim_obj ANIM_OBJ_85, 9, 0, 6, 4, $0 + anim_wait 8 + anim_sound 0, 0, SFX_HEAL_BELL + anim_obj ANIM_OBJ_85, 9, 0, 6, 4, $2 + anim_wait 8 + anim_loop 4, .loop + anim_wait 64 + anim_ret +; cb464 + +BattleAnim_Return: ; cb464 + anim_1gfx ANIM_GFX_HIT + anim_call BattleAnim_FollowPlayerHead_0 + anim_bgeffect ANIM_BG_BOUNCE_DOWN, $0, $1, $0 + anim_sound 0, 0, SFX_RETURN + anim_wait 64 + anim_incbgeffect ANIM_BG_BOUNCE_DOWN + anim_wait 32 + anim_bgeffect ANIM_BG_25, $0, $1, $0 + anim_wait 4 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_03, -15, 0, 5, 0, $0 + anim_wait 8 + anim_call BattleAnim_ShowMon_0 + anim_ret +; cb488 + +BattleAnim_Present: ; cb488 + anim_2gfx ANIM_GFX_STATUS, ANIM_GFX_BUBBLE + anim_sound 0, 1, SFX_PRESENT + anim_obj ANIM_OBJ_8D, 8, 0, 11, 0, $6c + anim_wait 56 + anim_obj ANIM_OBJ_53, 13, 0, 6, 0, $0 + anim_wait 48 + anim_incobj 2 + anim_if_param_equal $3, .heal + anim_incobj 1 + anim_wait 1 + anim_1gfx ANIM_GFX_EXPLOSION + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $12 +.loop + anim_call BattleAnim_Present_branch_cbb8f + anim_wait 16 + anim_jumpuntil .loop + anim_ret + +.heal + anim_sound 0, 1, SFX_METRONOME +.loop2 + anim_obj ANIM_OBJ_2C, -16, 4, 6, 0, $24 + anim_wait 8 + anim_loop 8, .loop2 + anim_wait 128 + anim_ret +; cb4c1 + +BattleAnim_Frustration: ; cb4c1 + anim_1gfx ANIM_GFX_MISC + anim_sound 0, 0, SFX_KINESIS_2 + anim_obj ANIM_OBJ_83, 9, 0, 10, 0, $0 + anim_wait 40 + anim_1gfx ANIM_GFX_HIT + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_26, $0, $1, $0 + anim_wait 8 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_01, 15, 0, 6, 0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_01, -13, 0, 6, 0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_01, -15, 0, 6, 0, $0 + anim_wait 8 + anim_incbgeffect ANIM_BG_26 + anim_wait 1 + anim_call BattleAnim_ShowMon_0 + anim_ret +; cb4f9 + +BattleAnim_Safeguard: ; cb4f9 + anim_1gfx ANIM_GFX_MISC + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_obj ANIM_OBJ_89, 10, 0, 10, 0, $0 + anim_obj ANIM_OBJ_89, 10, 0, 10, 0, $d + anim_obj ANIM_OBJ_89, 10, 0, 10, 0, $1a + anim_obj ANIM_OBJ_89, 10, 0, 10, 0, $27 + anim_obj ANIM_OBJ_89, 10, 0, 10, 0, $34 + anim_sound 0, 0, SFX_PROTECT + anim_wait 96 + anim_ret +; cb51e + +BattleAnim_PainSplit: ; cb51e + anim_2gfx ANIM_GFX_HIT, ANIM_GFX_OBJECTS + anim_call BattleAnim_FollowPlayerHead_0 + anim_bgeffect ANIM_BG_25, $0, $1, $0 + anim_wait 4 + anim_sound 0, 1, SFX_TACKLE + anim_obj ANIM_OBJ_04, 14, 0, 6, 0, $0 + anim_obj ANIM_OBJ_04, 9, 4, 12, 0, $0 + anim_wait 8 + anim_call BattleAnim_ShowMon_0 + anim_wait 1 + anim_ret +; cb53d + +BattleAnim_SacredFire: ; cb53d + anim_1gfx ANIM_GFX_FIRE + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0 +.loop + anim_sound 0, 0, SFX_EMBER + anim_obj ANIM_OBJ_80, 6, 0, 13, 0, $0 + anim_wait 8 + anim_loop 8, .loop + anim_wait 96 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0 + anim_wait 4 + anim_sound 0, 1, SFX_EMBER + anim_obj ANIM_OBJ_0F, -15, 0, 6, 0, $1 + anim_obj ANIM_OBJ_0F, -15, 0, 6, 0, $4 + anim_obj ANIM_OBJ_0F, -15, 0, 6, 0, $5 + anim_wait 8 + anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0 + anim_wait 4 + anim_incobj 9 + anim_wait 8 + anim_ret +; cb57d + +BattleAnim_Magnitude: ; cb57d + anim_1gfx ANIM_GFX_ROCKS +.loop + anim_bgeffect ANIM_BG_1F, $e, $4, $0 + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1E, 16, 0, 8, 0, $40 + anim_wait 2 + anim_obj ANIM_OBJ_1E, 15, 0, 8, 4, $30 + anim_wait 2 + anim_obj ANIM_OBJ_1E, -13, 0, 8, 4, $30 + anim_wait 2 + anim_obj ANIM_OBJ_1E, -14, 0, 8, 0, $40 + anim_wait 2 + anim_obj ANIM_OBJ_1E, -15, 0, 8, 4, $30 + anim_wait 2 + anim_jumpuntil .loop + anim_wait 96 + anim_ret +; cb5aa + +BattleAnim_Dynamicpunch: ; cb5aa + anim_2gfx ANIM_GFX_HIT, ANIM_GFX_EXPLOSION + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_0A, -15, 0, 7, 0, $43 + anim_wait 16 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $12 + anim_call BattleAnim_Dynamicpunch_branch_cbb8f + anim_wait 16 + anim_ret +; cb5c0 + +BattleAnim_Megahorn: ; cb5c0 + anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT + anim_bgeffect ANIM_BG_1F, $40, $2, $0 + anim_wait 48 + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3 + anim_obj ANIM_OBJ_HORN, 9, 0, 10, 0, $1 + anim_sound 0, 1, SFX_HORN_ATTACK + anim_wait 16 + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 + anim_wait 16 + anim_ret +; cb5de + +BattleAnim_Dragonbreath: ; cb5de + anim_1gfx ANIM_GFX_FIRE + anim_sound 6, 2, SFX_EMBER +.loop + anim_obj ANIM_OBJ_90, 8, 0, 11, 4, $4 + anim_wait 4 + anim_loop 10, .loop + anim_wait 64 + anim_ret +; cb5ef + +BattleAnim_BatonPass: ; cb5ef + anim_1gfx ANIM_GFX_MISC + anim_obj ANIM_OBJ_86, 5, 4, 13, 0, $20 + anim_sound 0, 0, SFX_BATON_PASS + anim_call BattleAnim_BatonPass_branch_c9486 + anim_wait 64 + anim_ret +; cb5fe + +BattleAnim_Encore: ; cb5fe + anim_1gfx ANIM_GFX_OBJECTS + anim_obj ANIM_OBJ_99, 8, 0, 10, 0, $90 + anim_obj ANIM_OBJ_99, 8, 0, 10, 0, $10 + anim_sound 0, 0, SFX_ENCORE + anim_wait 16 + anim_obj ANIM_OBJ_9A, 8, 0, 9, 0, $2c + anim_wait 32 + anim_obj ANIM_OBJ_9A, 8, 0, 9, 0, $34 + anim_wait 16 + anim_ret +; cb61b + +BattleAnim_Pursuit: ; cb61b + anim_1gfx ANIM_GFX_HIT + anim_if_param_equal $1, BattleAnim_Pursuit_branch_cb62b + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 + anim_wait 16 + anim_ret +; cb62b + +BattleAnim_Pursuit_branch_cb62b: ; cb62b + anim_bgeffect ANIM_BG_HIDE_MON, $0, $0, $0 + anim_wait 4 + anim_call BattleAnim_FollowEnemyFeet_1 + anim_obj ANIM_OBJ_AD, -16, 4, 8, 0, $0 + anim_wait 64 + anim_obj ANIM_OBJ_AD, -16, 4, 8, 0, $1 + anim_sound 0, 1, SFX_BALL_POOF + anim_bgeffect ANIM_BG_ENTER_MON, $0, $0, $0 + anim_wait 64 + anim_incobj 3 + anim_wait 16 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_00, 15, 0, 7, 0, $0 + anim_bgeffect ANIM_BG_2D, $0, $0, $0 + anim_wait 16 + anim_call BattleAnim_ShowMon_1 + anim_wait 1 + anim_ret +; cb65e + +BattleAnim_RapidSpin: ; cb65e + anim_2gfx ANIM_GFX_WIND, ANIM_GFX_HIT + anim_obp0 $e4 +.loop + anim_sound 0, 0, SFX_MENU + anim_obj ANIM_OBJ_A8, 5, 4, 14, 0, $0 + anim_wait 2 + anim_loop 5, .loop + anim_wait 24 + anim_call BattleAnim_FollowPlayerHead_0 + anim_bgeffect ANIM_BG_25, $0, $1, $0 + anim_wait 4 + anim_resetobp0 + anim_sound 0, 1, SFX_MEGA_KICK + anim_obj ANIM_OBJ_04, -15, 0, 5, 0, $0 + anim_wait 8 + anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0 + anim_wait 4 + anim_incobj 6 + anim_wait 1 + anim_ret +; cb68e + +BattleAnim_SweetScent: ; cb68e + anim_2gfx ANIM_GFX_FLOWER, ANIM_GFX_MISC + anim_sound 0, 0, SFX_SWEET_SCENT + anim_obj ANIM_OBJ_FLOWER, 8, 0, 12, 0, $2 + anim_wait 2 + anim_obj ANIM_OBJ_FLOWER, 8, 0, 10, 0, $2 + anim_wait 96 + anim_obp0 $54 + anim_sound 0, 1, SFX_SWEET_SCENT_2 + anim_obj ANIM_OBJ_COTTON, -15, 0, 5, 0, $15 + anim_obj ANIM_OBJ_COTTON, -15, 0, 5, 0, $2a + anim_obj ANIM_OBJ_COTTON, -15, 0, 5, 0, $3f + anim_wait 128 + anim_ret +; cb6b6 + +BattleAnim_IronTail: ; cb6b6 + anim_1gfx ANIM_GFX_REFLECT + anim_obp0 $0 + anim_sound 0, 0, SFX_RAGE + anim_call BattleAnim_FollowEnemyFeet_0 + anim_call BattleAnim_IronTail_branch_cbc43 + anim_wait 4 + anim_1gfx ANIM_GFX_HIT + anim_resetobp0 + anim_bgeffect ANIM_BG_26, $0, $1, $0 + anim_wait 16 + anim_sound 0, 1, SFX_MEGA_KICK + anim_obj ANIM_OBJ_00, -15, 0, 6, 0, $0 + anim_wait 16 + anim_incbgeffect ANIM_BG_26 + anim_call BattleAnim_ShowMon_0 + anim_ret +; cb6dc + +BattleAnim_MetalClaw: ; cb6dc + anim_1gfx ANIM_GFX_REFLECT + anim_obp0 $0 + anim_sound 0, 0, SFX_RAGE + anim_call BattleAnim_FollowEnemyFeet_0 + anim_call BattleAnim_MetalClaw_branch_cbc43 + anim_call BattleAnim_ShowMon_0 + anim_1gfx ANIM_GFX_CUT + anim_resetobp0 + anim_sound 0, 1, SFX_SCRATCH + anim_obj ANIM_OBJ_37, -14, 0, 6, 0, $0 + anim_obj ANIM_OBJ_37, -15, 4, 5, 4, $0 + anim_obj ANIM_OBJ_37, -15, 0, 5, 0, $0 + anim_wait 32 + anim_ret +; cb703 + +BattleAnim_VitalThrow: ; cb703 + anim_1gfx ANIM_GFX_HIT + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_2F, $0, $1, $0 + anim_wait 16 + anim_sound 0, 0, SFX_MENU + anim_obj ANIM_OBJ_04, 8, 0, 12, 0, $0 + anim_wait 8 + anim_sound 0, 0, SFX_MENU + anim_obj ANIM_OBJ_04, 7, 0, 11, 0, $0 + anim_wait 8 + anim_sound 0, 0, SFX_MENU + anim_obj ANIM_OBJ_04, 8, 4, 13, 0, $0 + anim_wait 8 + anim_incbgeffect ANIM_BG_2F + anim_wait 16 + anim_call BattleAnim_ShowMon_0 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_03, -16, 4, 7, 0, $0 + anim_wait 16 + anim_ret +; cb739 + +BattleAnim_MorningSun: ; cb739 + anim_1gfx ANIM_GFX_SHINE + anim_bgeffect ANIM_BG_07, $0, $0, $0 + anim_sound 0, 0, SFX_MORNING_SUN +.loop + anim_obj ANIM_OBJ_9C, 2, 0, 6, 0, $88 + anim_wait 6 + anim_loop 5, .loop + anim_wait 32 + anim_if_param_equal 0, .zero + anim_call BattleAnim_MorningSun_branch_cbc6a + anim_ret +; cb756 + +.zero + anim_call BattleAnim_MorningSun_branch_cbc80 + anim_ret +; cb75a + +BattleAnim_Synthesis: ; cb75a + anim_1gfx ANIM_GFX_SHINE + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_18, $0, $1, $40 + anim_bgeffect ANIM_BG_07, $0, $0, $0 + anim_sound 0, 0, SFX_OUTRAGE + anim_wait 72 + anim_incbgeffect ANIM_BG_18 + anim_call BattleAnim_ShowMon_0 + anim_if_param_equal $1, .one + anim_call BattleAnim_Synthesis_branch_cbc6a + anim_ret +; cb77a + +.one + anim_call BattleAnim_Synthesis_branch_cbc80 + anim_ret +; cb77e + +BattleAnim_Crunch: ; cb77e + anim_2gfx ANIM_GFX_CUT, ANIM_GFX_HIT + anim_bgp $1b + anim_obp0 $c0 + anim_bgeffect ANIM_BG_1F, $20, $2, $0 + anim_obj ANIM_OBJ_36, -15, 0, 7, 0, $a8 + anim_obj ANIM_OBJ_36, -15, 0, 7, 0, $28 + anim_wait 8 + anim_sound 0, 1, SFX_BITE + anim_obj ANIM_OBJ_00, -14, 0, 6, 0, $18 + anim_wait 16 + anim_sound 0, 1, SFX_BITE + anim_obj ANIM_OBJ_00, 16, 0, 8, 0, $18 + anim_wait 8 + anim_ret +; cb7a8 + +BattleAnim_Moonlight: ; cb7a8 + anim_1gfx ANIM_GFX_SHINE + anim_bgp $1b + anim_bgeffect ANIM_BG_07, $0, $0, $0 + anim_obj ANIM_OBJ_9E, 0, 0, 5, 0, $0 + anim_obj ANIM_OBJ_9E, 2, 0, 7, 0, $0 + anim_obj ANIM_OBJ_9E, 4, 0, 9, 0, $0 + anim_obj ANIM_OBJ_9E, 6, 0, 11, 0, $0 + anim_obj ANIM_OBJ_9E, 8, 0, 13, 0, $0 + anim_wait 1 + anim_sound 0, 0, SFX_MOONLIGHT + anim_wait 63 + anim_if_param_equal $3, .three + anim_call BattleAnim_Moonlight_branch_cbc6a + anim_ret + +.three + anim_call BattleAnim_Moonlight_branch_cbc80 + anim_ret +; cb7db + +BattleAnim_HiddenPower: ; cb7db + anim_1gfx ANIM_GFX_CHARGE + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_1A, $0, $1, $20 + anim_bgeffect ANIM_BG_07, $0, $2, $0 + anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $0 + anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $8 + anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $10 + anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $18 + anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $20 + anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $28 + anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $30 + anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $38 +.loop + anim_sound 0, 0, SFX_SWORDS_DANCE + anim_wait 8 + anim_loop 12, .loop + anim_incbgeffect ANIM_BG_1A + anim_call BattleAnim_ShowMon_0 + anim_wait 1 + anim_incobj 2 + anim_incobj 3 + anim_incobj 4 + anim_incobj 5 + anim_incobj 6 + anim_incobj 7 + anim_incobj 8 + anim_incobj 9 + anim_wait 16 + anim_1gfx ANIM_GFX_HIT + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 + anim_wait 32 + anim_ret +; cb83a + +BattleAnim_CrossChop: ; cb83a + anim_1gfx ANIM_GFX_CUT + anim_sound 0, 1, SFX_CUT + anim_obj ANIM_OBJ_A0, -13, 0, 5, 0, $0 + anim_obj ANIM_OBJ_A1, 15, 0, 9, 0, $0 + anim_wait 8 + anim_bgeffect ANIM_BG_1F, $58, $2, $0 + anim_wait 92 + anim_sound 0, 1, SFX_VICEGRIP + anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $10 + anim_wait 16 + anim_ret +; cb85a + +BattleAnim_Twister: ; cb85a + anim_2gfx ANIM_GFX_WIND, ANIM_GFX_HIT +.loop1 + anim_sound 0, 0, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_GUST, 8, 0, 14, 0, $0 + anim_wait 6 + anim_loop 9, .loop1 +.loop2 + anim_sound 0, 0, SFX_RAZOR_WIND + anim_wait 8 + anim_loop 8, .loop2 + anim_incobj 1 + anim_incobj 2 + anim_incobj 3 + anim_incobj 4 + anim_incobj 5 + anim_incobj 6 + anim_incobj 7 + anim_incobj 8 + anim_incobj 9 + anim_wait 64 + anim_obj ANIM_OBJ_01, -14, 0, 8, 0, $18 +.loop3 + anim_sound 0, 1, SFX_RAZOR_WIND + anim_wait 8 + anim_loop 4, .loop3 + anim_obj ANIM_OBJ_01, 16, 0, 4, 0, $18 +.loop4 + anim_sound 0, 1, SFX_RAZOR_WIND + anim_wait 8 + anim_loop 4, .loop4 + anim_incobj 1 + anim_incobj 2 + anim_incobj 3 + anim_incobj 4 + anim_incobj 5 + anim_incobj 6 + anim_incobj 7 + anim_incobj 8 + anim_incobj 9 + anim_wait 32 + anim_ret +; cb8b3 + +BattleAnim_RainDance: ; cb8b3 + anim_1gfx ANIM_GFX_WATER + anim_bgp $f8 + anim_obp0 $7c + anim_sound 0, 1, SFX_RAIN_DANCE + anim_obj ANIM_OBJ_AF, 11, 0, 0, 0, $0 + anim_wait 8 + anim_obj ANIM_OBJ_AF, 11, 0, 0, 0, $1 + anim_wait 8 + anim_obj ANIM_OBJ_AF, 11, 0, 0, 0, $2 + anim_wait 128 + anim_ret +; cb8cf + +BattleAnim_SunnyDay: ; cb8cf + anim_1gfx ANIM_GFX_WATER + anim_bgp $90 + anim_sound 0, 1, SFX_MORNING_SUN + anim_obj ANIM_OBJ_AF, 11, 0, 0, 0, $2 + anim_wait 8 + anim_obj ANIM_OBJ_AF, 11, 0, 0, 0, $2 + anim_wait 8 + anim_obj ANIM_OBJ_AF, 11, 0, 0, 0, $2 + anim_wait 128 + anim_ret +; cb8e9 + +BattleAnim_MirrorCoat: ; cb8e9 + anim_2gfx ANIM_GFX_REFLECT, ANIM_GFX_SPEED + anim_bgeffect ANIM_BG_06, $0, $2, $0 +.loop + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_50, 9, 0, 10, 0, $0 + anim_obj ANIM_OBJ_AE, 8, 0, 9, 0, $4 + anim_wait 8 + anim_obj ANIM_OBJ_AE, 8, 0, 11, 0, $4 + anim_wait 8 + anim_obj ANIM_OBJ_AE, 8, 0, 10, 0, $4 + anim_wait 8 + anim_obj ANIM_OBJ_AE, 8, 0, 12, 0, $4 + anim_wait 8 + anim_loop 3, .loop + anim_wait 32 + anim_ret +; cb917 + +BattleAnim_PsychUp: ; cb917 + anim_1gfx ANIM_GFX_STATUS + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_1A, $0, $1, $20 + anim_sound 0, 0, SFX_PSYBEAM + anim_obj ANIM_OBJ_B1, 5, 4, 11, 0, $0 + anim_obj ANIM_OBJ_B1, 5, 4, 11, 0, $10 + anim_obj ANIM_OBJ_B1, 5, 4, 11, 0, $20 + anim_obj ANIM_OBJ_B1, 5, 4, 11, 0, $30 + anim_wait 64 + anim_incbgeffect ANIM_BG_1A + anim_call BattleAnim_ShowMon_0 + anim_wait 16 + anim_ret +; cb940 + +BattleAnim_Extremespeed: ; cb940 + anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_CUT + anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0 + anim_sound 0, 0, SFX_MENU + anim_obj ANIM_OBJ_77, 3, 0, 11, 0, $2 + anim_obj ANIM_OBJ_77, 4, 0, 11, 0, $1 + anim_obj ANIM_OBJ_77, 5, 0, 11, 0, $0 + anim_obj ANIM_OBJ_77, 6, 0, 11, 0, $80 + anim_obj ANIM_OBJ_77, 7, 0, 11, 0, $81 + anim_obj ANIM_OBJ_77, 8, 0, 11, 0, $82 + anim_wait 12 + anim_sound 0, 1, SFX_CUT + anim_obj ANIM_OBJ_3A, -13, 0, 5, 0, $0 + anim_wait 32 + anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 + anim_wait 16 + anim_ret +; cb97a + +BattleAnim_Ancientpower: ; cb97a + anim_2gfx ANIM_GFX_ROCKS, ANIM_GFX_HIT + anim_sound 0, 0, SFX_SPARK + anim_obj ANIM_OBJ_B2, 8, 0, 13, 4, $20 + anim_wait 8 + anim_sound 0, 0, SFX_SPARK + anim_obj ANIM_OBJ_B2, 9, 3, 12, 6, $20 + anim_wait 8 + anim_sound 0, 0, SFX_SPARK + anim_obj ANIM_OBJ_B2, 10, 5, 12, 1, $20 + anim_wait 8 + anim_sound 0, 0, SFX_SPARK + anim_obj ANIM_OBJ_B2, 12, 0, 11, 4, $20 + anim_wait 8 + anim_sound 0, 1, SFX_SPARK + anim_obj ANIM_OBJ_B2, 13, 2, 10, 7, $20 + anim_wait 8 + anim_sound 0, 1, SFX_SPARK + anim_obj ANIM_OBJ_B2, 14, 4, 10, 2, $20 + anim_wait 8 + anim_sound 0, 1, SFX_SPARK + anim_obj ANIM_OBJ_B2, 15, 6, 9, 5, $20 + anim_wait 8 + anim_sound 0, 1, SFX_SPARK + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 + anim_wait 6 + anim_ret +; cb9c6 + +BattleAnim_ShadowBall: ; cb9c6 + anim_2gfx ANIM_GFX_EGG, ANIM_GFX_SMOKE + anim_bgp $1b + anim_sound 6, 2, SFX_SLUDGE_BOMB + anim_obj ANIM_OBJ_B4, 8, 0, 11, 4, $2 + anim_wait 32 + anim_obj ANIM_OBJ_BALL_POOF, -16, 4, 7, 0, $10 + anim_wait 24 + anim_ret +; cb9db + +BattleAnim_FutureSight: ; cb9db + anim_1gfx ANIM_GFX_WIND + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0 + anim_bgeffect ANIM_BG_PSYCHIC, $0, $0, $0 + anim_obj ANIM_OBJ_7D, 1, 0, 3, 0, $10 + anim_obj ANIM_OBJ_7D, 1, 0, 6, 0, $2 + anim_obj ANIM_OBJ_7D, 1, 0, 11, 0, $8 + anim_wait 4 + anim_obj ANIM_OBJ_7D, 1, 0, 4, 0, $6 + anim_obj ANIM_OBJ_7D, 1, 0, 7, 0, $c + anim_obj ANIM_OBJ_7D, 1, 0, 10, 0, $4 + anim_obj ANIM_OBJ_7D, 1, 0, 13, 0, $e +.loop + anim_sound 0, 0, SFX_THROW_BALL + anim_wait 16 + anim_loop 4, .loop + anim_incbgeffect ANIM_BG_PSYCHIC + anim_ret +; cba1b + +BattleAnim_RockSmash: ; cba1b + anim_2gfx ANIM_GFX_ROCKS, ANIM_GFX_HIT + anim_sound 0, 1, SFX_SPARK + anim_obj ANIM_OBJ_01, 16, 0, 7, 0, $0 + anim_sound 0, 1, SFX_SPARK + anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $28 + anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $5c + anim_sound 0, 1, SFX_SPARK + anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $10 + anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $e8 + anim_sound 0, 1, SFX_SPARK + anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $9c + anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $d0 + anim_wait 6 + anim_sound 0, 1, SFX_SPARK + anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $1c + anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $50 + anim_sound 0, 1, SFX_SPARK + anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $dc + anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $90 + anim_wait 32 + anim_ret +; cba6a + +BattleAnim_Whirlpool: ; cba6a + anim_1gfx ANIM_GFX_WIND + anim_bgeffect ANIM_BG_WHIRLPOOL, $0, $0, $0 + anim_sound 0, 1, SFX_SURF + anim_wait 16 +.loop + anim_obj ANIM_OBJ_GUST, -16, 4, 9, 0, $0 + anim_wait 6 + anim_loop 9, .loop + anim_wait 64 + anim_incbgeffect ANIM_BG_WHIRLPOOL + anim_wait 1 + anim_ret +; cba84 + +BattleAnim_BeatUp: ; cba84 + anim_if_param_equal $0, .current_mon + anim_sound 0, 0, SFX_BALL_POOF + anim_bgeffect ANIM_BG_RETURN_MON, $0, $1, $0 + anim_wait 16 + anim_beatup + anim_sound 0, 0, SFX_BALL_POOF + anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0 + anim_wait 16 +.current_mon + anim_1gfx ANIM_GFX_HIT + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0 + anim_wait 4 + anim_sound 0, 1, SFX_BEAT_UP + anim_obj ANIM_OBJ_00, -15, 0, 6, 0, $0 + anim_wait 8 + anim_call BattleAnim_ShowMon_0 + anim_ret +; cbab3 + +BattleAnim_DreamEater_branch_cbab3: ; cbab3 +BattleAnim_GigaDrain_branch_cbab3: ; cbab3 +BattleAnim_LeechLife_branch_cbab3: ; cbab3 + anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $0 + anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $8 + anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $10 + anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $18 + anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $20 + anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $28 + anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $30 + anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $38 + anim_ret +; cbadc + +BattleAnim_Glare_branch_cbadc: ; cbadc +BattleAnim_Leer_branch_cbadc: ; cbadc +BattleAnim_ScaryFace_branch_cbadc: ; cbadc + anim_sound 6, 2, SFX_LEER + anim_obj ANIM_OBJ_4E, 9, 0, 10, 4, $0 + anim_obj ANIM_OBJ_4E, 8, 0, 10, 0, $0 + anim_obj ANIM_OBJ_4E, 11, 0, 9, 4, $0 + anim_obj ANIM_OBJ_4E, 10, 0, 9, 0, $0 + anim_obj ANIM_OBJ_4E, 13, 0, 8, 4, $0 + anim_obj ANIM_OBJ_4E, 12, 0, 8, 0, $0 + anim_obj ANIM_OBJ_4E, 15, 0, 7, 4, $0 + anim_obj ANIM_OBJ_4E, 14, 0, 7, 0, $0 + anim_obj ANIM_OBJ_4F, -16, 2, 6, 6, $0 + anim_obj ANIM_OBJ_4F, 15, 2, 6, 2, $0 + anim_ret +; cbb12 + +BattleAnim_Fly_branch_cbb12: ; cbb12 +BattleAnim_Teleport_branch_cbb12: ; cbb12 + anim_sound 0, 0, SFX_WARP_TO + anim_obj ANIM_OBJ_44, 5, 4, 13, 4, $0 + anim_obj ANIM_OBJ_44, 5, 4, 12, 4, $0 + anim_obj ANIM_OBJ_44, 5, 4, 11, 4, $0 + anim_obj ANIM_OBJ_44, 5, 4, 10, 4, $0 + anim_obj ANIM_OBJ_44, 5, 4, 9, 4, $0 + anim_obj ANIM_OBJ_44, 5, 4, 8, 4, $0 + anim_obj ANIM_OBJ_44, 5, 4, 7, 4, $0 + anim_ret +; cbb39 + +BattleAnim_AuroraBeam_branch_cbb39: ; cbb39 +BattleAnim_HyperBeam_branch_cbb39: ; cbb39 +BattleAnim_Solarbeam_branch_cbb39: ; cbb39 + anim_sound 0, 0, SFX_HYPER_BEAM + anim_obj ANIM_OBJ_27, 8, 0, 11, 4, $0 + anim_wait 4 + anim_sound 0, 0, SFX_HYPER_BEAM + anim_obj ANIM_OBJ_27, 10, 0, 10, 4, $0 + anim_wait 4 + anim_sound 0, 1, SFX_HYPER_BEAM + anim_obj ANIM_OBJ_27, 12, 0, 9, 4, $0 + anim_wait 4 + anim_sound 0, 1, SFX_HYPER_BEAM + anim_obj ANIM_OBJ_27, 14, 0, 8, 4, $0 + anim_obj ANIM_OBJ_28, 15, 6, 7, 6, $0 + anim_ret +; cbb62 + +BattleAnim_Explosion_branch_cbb62: ; cbb62 +BattleAnim_Selfdestruct_branch_cbb62: ; cbb62 + anim_sound 0, 0, SFX_EGG_BOMB + anim_obj ANIM_OBJ_17, 3, 0, 8, 0, $0 + anim_wait 5 + anim_sound 0, 0, SFX_EGG_BOMB + anim_obj ANIM_OBJ_17, 7, 0, 13, 0, $0 + anim_wait 5 + anim_sound 0, 0, SFX_EGG_BOMB + anim_obj ANIM_OBJ_17, 3, 0, 13, 0, $0 + anim_wait 5 + anim_sound 0, 0, SFX_EGG_BOMB + anim_obj ANIM_OBJ_17, 7, 0, 8, 0, $0 + anim_wait 5 + anim_sound 0, 0, SFX_EGG_BOMB + anim_obj ANIM_OBJ_17, 5, 0, 10, 4, $0 + anim_ret +; cbb8f + +BattleAnim_Dynamicpunch_branch_cbb8f: ; cbb8f +BattleAnim_Explosion_branch_cbb8f: ; cbb8f +BattleAnim_Present_branch_cbb8f: ; cbb8f +BattleAnim_Selfdestruct_branch_cbb8f: ; cbb8f + anim_sound 0, 1, SFX_EGG_BOMB + anim_obj ANIM_OBJ_17, -14, 4, 4, 0, $0 + anim_wait 5 + anim_sound 0, 1, SFX_EGG_BOMB + anim_obj ANIM_OBJ_17, 14, 4, 9, 0, $0 + anim_wait 5 + anim_sound 0, 1, SFX_EGG_BOMB + anim_obj ANIM_OBJ_17, -14, 4, 9, 0, $0 + anim_wait 5 + anim_sound 0, 1, SFX_EGG_BOMB + anim_obj ANIM_OBJ_17, 14, 4, 4, 0, $0 + anim_wait 5 + anim_sound 0, 1, SFX_EGG_BOMB + anim_obj ANIM_OBJ_17, -16, 4, 6, 4, $0 + anim_ret +; cbbbc + +BattleAnim_Growl_branch_cbbbc: ; cbbbc +BattleAnim_Roar_branch_cbbbc: ; cbbbc +BattleAnim_Snore_branch_cbbbc: ; cbbbc + anim_obj ANIM_OBJ_4B, 8, 0, 9, 4, $0 + anim_obj ANIM_OBJ_4B, 8, 0, 11, 0, $1 + anim_obj ANIM_OBJ_4B, 8, 0, 12, 4, $2 + anim_ret +; cbbcc + +BattleAnim_FirePunch_branch_cbbcc: ; cbbcc +BattleAnim_TriAttack_branch_cbbcc: ; cbbcc + anim_sound 0, 1, SFX_EMBER +.loop + anim_obj ANIM_OBJ_BURNED, -15, 0, 7, 0, $10 + anim_obj ANIM_OBJ_BURNED, -15, 0, 7, 0, $90 + anim_wait 4 + anim_loop 4, .loop + anim_ret +; cbbdf + +BattleAnim_IcePunch_branch_cbbdf: ; cbbdf +BattleAnim_PowderSnow_branch_cbbdf: ; cbbdf +BattleAnim_TriAttack_branch_cbbdf: ; cbbdf + anim_sound 0, 1, SFX_SHINE + anim_obj ANIM_OBJ_12, 16, 0, 5, 2, $0 + anim_wait 6 + anim_sound 0, 1, SFX_SHINE + anim_obj ANIM_OBJ_12, -14, 0, 8, 6, $0 + anim_wait 6 + anim_sound 0, 1, SFX_SHINE + anim_obj ANIM_OBJ_12, 15, 0, 7, 0, $0 + anim_wait 6 + anim_sound 0, 1, SFX_SHINE + anim_obj ANIM_OBJ_12, -13, 0, 7, 0, $0 + anim_wait 6 + anim_sound 0, 1, SFX_SHINE + anim_obj ANIM_OBJ_12, -14, 0, 5, 2, $0 + anim_wait 6 + anim_sound 0, 1, SFX_SHINE + anim_obj ANIM_OBJ_12, 16, 0, 8, 6, $0 + anim_ret +; cbc15 + +BattleAnim_SludgeBomb_branch_cbc15: ; cbc15 +BattleAnim_Sludge_branch_cbc15: ; cbc15 +BattleAnim_Toxic_branch_cbc15: ; cbc15 +.loop + anim_sound 0, 1, SFX_UNKNOWN_7F + anim_obj ANIM_OBJ_1A, -16, 4, 9, 0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_UNKNOWN_7F + anim_obj ANIM_OBJ_1A, 14, 4, 9, 0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_UNKNOWN_7F + anim_obj ANIM_OBJ_1A, -14, 4, 9, 0, $0 + anim_wait 8 + anim_loop 5, .loop + anim_ret +; cbc35 + +BattleAnim_Acid_branch_cbc35: ; cbc35 +BattleAnim_Toxic_branch_cbc35: ; cbc35 +.loop + anim_sound 6, 2, SFX_BUBBLEBEAM + anim_obj ANIM_OBJ_19, 8, 0, 11, 4, $10 + anim_wait 5 + anim_loop 8, .loop + anim_ret +; cbc43 + +BattleAnim_Harden_branch_cbc43: ; cbc43 +BattleAnim_IronTail_branch_cbc43: ; cbc43 +BattleAnim_MetalClaw_branch_cbc43: ; cbc43 +BattleAnim_SteelWing_branch_cbc43: ; cbc43 + anim_sound 0, 0, SFX_SHINE + anim_bgeffect ANIM_BG_17, $0, $1, $40 + anim_wait 8 + anim_obj ANIM_OBJ_51, 6, 0, 10, 4, $0 + anim_wait 32 + anim_obj ANIM_OBJ_51, 6, 0, 10, 4, $0 + anim_wait 64 + anim_incbgeffect ANIM_BG_17 + anim_ret +; cbc5b + +BattleAnim_MudSlap_branch_cbc5b: ; cbc5b +BattleAnim_SandAttack_branch_cbc5b: ; cbc5b +.loop + anim_sound 6, 2, SFX_MENU + anim_obj ANIM_OBJ_58, 8, 0, 11, 4, $4 + anim_wait 4 + anim_loop 8, .loop + anim_wait 32 + anim_ret +; cbc6a + +BattleAnim_Moonlight_branch_cbc6a: ; cbc6a +BattleAnim_MorningSun_branch_cbc6a: ; cbc6a +BattleAnim_Synthesis_branch_cbc6a: ; cbc6a + anim_sound 0, 0, SFX_METRONOME + anim_obj ANIM_OBJ_9D, 5, 4, 8, 0, $0 + anim_wait 5 + anim_obj ANIM_OBJ_9D, 3, 0, 12, 0, $0 + anim_wait 5 + anim_obj ANIM_OBJ_9D, 7, 0, 13, 0, $0 + anim_wait 21 + anim_ret +; cbc80 + +BattleAnim_Moonlight_branch_cbc80: ; cbc80 +BattleAnim_MorningSun_branch_cbc80: ; cbc80 +BattleAnim_Synthesis_branch_cbc80: ; cbc80 + anim_sound 0, 0, SFX_METRONOME +.loop + anim_obj ANIM_OBJ_9D, 3, 0, 8, 0, $0 + anim_wait 5 + anim_obj ANIM_OBJ_9D, 7, 0, 13, 0, $0 + anim_wait 5 + anim_obj ANIM_OBJ_9D, 3, 0, 13, 0, $0 + anim_wait 5 + anim_obj ANIM_OBJ_9D, 7, 0, 8, 0, $0 + anim_wait 5 + anim_obj ANIM_OBJ_9D, 5, 0, 10, 4, $0 + anim_wait 5 + anim_loop 2, .loop + anim_wait 16 + anim_ret +; cbca7 + +BattleAnim_FollowEnemyFeet_0: ; cbca7 + anim_enemyfeetobj + anim_bgeffect ANIM_BG_FEET_FOLLOW, $0, $0, $0 + anim_wait 6 + anim_ret +; cbcaf + +BattleAnim_FollowPlayerHead_0: ; cbcaf + anim_playerheadobj + anim_bgeffect ANIM_BG_HEAD_FOLLOW, $0, $0, $0 + anim_wait 6 + anim_ret +; cbcb7 + +BattleAnim_ShowMon_0: ; cbcb7 + anim_wait 1 + anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0 + anim_wait 5 + anim_incobj 1 + anim_wait 1 + anim_ret +; cbcc2 + +BattleAnim_FollowEnemyFeet_1: ; cbcc2 + anim_enemyfeetobj + anim_bgeffect ANIM_BG_FEET_FOLLOW, $0, $1, $0 + anim_wait 6 + anim_ret +; cbcca + +BattleAnim_FollowPlayerHead_1: ; cbcca + anim_playerheadobj + anim_bgeffect ANIM_BG_HEAD_FOLLOW, $0, $1, $0 + anim_wait 4 + anim_ret +; cbcd2 + +BattleAnim_ShowMon_1: ; cbcd2 + anim_wait 1 + anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 + anim_wait 4 + anim_incobj 1 + anim_wait 1 + anim_ret +; cbcdd diff --git a/data/moves/move_descriptions.asm b/data/moves/move_descriptions.asm new file mode 100644 index 000000000..d86ceea37 --- /dev/null +++ b/data/moves/move_descriptions.asm @@ -0,0 +1,1270 @@ +MoveDescriptions:: ; 2cb52 +; entries correspond to move ids (see constants/move_constants.asm) + dw PoundDescription + dw KarateChopDescription + dw DoubleslapDescription + dw CometPunchDescription + dw MegaPunchDescription + dw PayDayDescription + dw FirePunchDescription + dw IcePunchDescription + dw ThunderpunchDescription + dw ScratchDescription + dw VicegripDescription + dw GuillotineDescription + dw RazorWindDescription + dw SwordsDanceDescription + dw CutDescription + dw GustDescription + dw WingAttackDescription + dw WhirlwindDescription + dw FlyDescription + dw BindDescription + dw SlamDescription + dw VineWhipDescription + dw StompDescription + dw DoubleKickDescription + dw MegaKickDescription + dw JumpKickDescription + dw RollingKickDescription + dw SandAttackDescription + dw HeadbuttDescription + dw HornAttackDescription + dw FuryAttackDescription + dw HornDrillDescription + dw TackleDescription + dw BodySlamDescription + dw WrapDescription + dw TakeDownDescription + dw ThrashDescription + dw DoubleEdgeDescription + dw TailWhipDescription + dw PoisonStingDescription + dw TwineedleDescription + dw PinMissileDescription + dw LeerDescription + dw BiteDescription + dw GrowlDescription + dw RoarDescription + dw SingDescription + dw SupersonicDescription + dw SonicboomDescription + dw DisableDescription + dw AcidDescription + dw EmberDescription + dw FlamethrowerDescription + dw MistDescription + dw WaterGunDescription + dw HydroPumpDescription + dw SurfDescription + dw IceBeamDescription + dw BlizzardDescription + dw PsybeamDescription + dw BubblebeamDescription + dw AuroraBeamDescription + dw HyperBeamDescription + dw PeckDescription + dw DrillPeckDescription + dw SubmissionDescription + dw LowKickDescription + dw CounterDescription + dw SeismicTossDescription + dw StrengthDescription + dw AbsorbDescription + dw MegaDrainDescription + dw LeechSeedDescription + dw GrowthDescription + dw RazorLeafDescription + dw SolarbeamDescription + dw PoisonpowderDescription + dw StunSporeDescription + dw SleepPowderDescription + dw PetalDanceDescription + dw StringShotDescription + dw DragonRageDescription + dw FireSpinDescription + dw ThundershockDescription + dw ThunderboltDescription + dw ThunderWaveDescription + dw ThunderDescription + dw RockThrowDescription + dw EarthquakeDescription + dw FissureDescription + dw DigDescription + dw ToxicDescription + dw ConfusionDescription + dw PsychicMDescription + dw HypnosisDescription + dw MeditateDescription + dw AgilityDescription + dw QuickAttackDescription + dw RageDescription + dw TeleportDescription + dw NightShadeDescription + dw MimicDescription + dw ScreechDescription + dw DoubleTeamDescription + dw RecoverDescription + dw HardenDescription + dw MinimizeDescription + dw SmokescreenDescription + dw ConfuseRayDescription + dw WithdrawDescription + dw DefenseCurlDescription + dw BarrierDescription + dw LightScreenDescription + dw HazeDescription + dw ReflectDescription + dw FocusEnergyDescription + dw BideDescription + dw MetronomeDescription + dw MirrorMoveDescription + dw SelfdestructDescription + dw EggBombDescription + dw LickDescription + dw SmogDescription + dw SludgeDescription + dw BoneClubDescription + dw FireBlastDescription + dw WaterfallDescription + dw ClampDescription + dw SwiftDescription + dw SkullBashDescription + dw SpikeCannonDescription + dw ConstrictDescription + dw AmnesiaDescription + dw KinesisDescription + dw SoftboiledDescription + dw HiJumpKickDescription + dw GlareDescription + dw DreamEaterDescription + dw PoisonGasDescription + dw BarrageDescription + dw LeechLifeDescription + dw LovelyKissDescription + dw SkyAttackDescription + dw TransformDescription + dw BubbleDescription + dw DizzyPunchDescription + dw SporeDescription + dw FlashDescription + dw PsywaveDescription + dw SplashDescription + dw AcidArmorDescription + dw CrabhammerDescription + dw ExplosionDescription + dw FurySwipesDescription + dw BonemerangDescription + dw RestDescription + dw RockSlideDescription + dw HyperFangDescription + dw SharpenDescription + dw ConversionDescription + dw TriAttackDescription + dw SuperFangDescription + dw SlashDescription + dw SubstituteDescription + dw StruggleDescription + dw SketchDescription + dw TripleKickDescription + dw ThiefDescription + dw SpiderWebDescription + dw MindReaderDescription + dw NightmareDescription + dw FlameWheelDescription + dw SnoreDescription + dw CurseDescription + dw FlailDescription + dw Conversion2Description + dw AeroblastDescription + dw CottonSporeDescription + dw ReversalDescription + dw SpiteDescription + dw PowderSnowDescription + dw ProtectDescription + dw MachPunchDescription + dw ScaryFaceDescription + dw FaintAttackDescription + dw SweetKissDescription + dw BellyDrumDescription + dw SludgeBombDescription + dw MudSlapDescription + dw OctazookaDescription + dw SpikesDescription + dw ZapCannonDescription + dw ForesightDescription + dw DestinyBondDescription + dw PerishSongDescription + dw IcyWindDescription + dw DetectDescription + dw BoneRushDescription + dw LockOnDescription + dw OutrageDescription + dw SandstormDescription + dw GigaDrainDescription + dw EndureDescription + dw CharmDescription + dw RolloutDescription + dw FalseSwipeDescription + dw SwaggerDescription + dw MilkDrinkDescription + dw SparkDescription + dw FuryCutterDescription + dw SteelWingDescription + dw MeanLookDescription + dw AttractDescription + dw SleepTalkDescription + dw HealBellDescription + dw ReturnDescription + dw PresentDescription + dw FrustrationDescription + dw SafeguardDescription + dw PainSplitDescription + dw SacredFireDescription + dw MagnitudeDescription + dw DynamicpunchDescription + dw MegahornDescription + dw DragonbreathDescription + dw BatonPassDescription + dw EncoreDescription + dw PursuitDescription + dw RapidSpinDescription + dw SweetScentDescription + dw IronTailDescription + dw MetalClawDescription + dw VitalThrowDescription + dw MorningSunDescription + dw SynthesisDescription + dw MoonlightDescription + dw HiddenPowerDescription + dw CrossChopDescription + dw TwisterDescription + dw RainDanceDescription + dw SunnyDayDescription + dw CrunchDescription + dw MirrorCoatDescription + dw PsychUpDescription + dw ExtremespeedDescription + dw AncientpowerDescription + dw ShadowBallDescription + dw FutureSightDescription + dw RockSmashDescription + dw WhirlpoolDescription + dw BeatUpDescription + dw MoveFCDescription + dw MoveFDDescription + dw MoveFEDescription + dw MoveFFDescription + dw Move00Description +; 2cd52 + +MoveFCDescription: +MoveFDDescription: +MoveFEDescription: +MoveFFDescription: +Move00Description: + db "?@" + +PoundDescription: + db "Pounds with fore-" + next "legs or tail.@" + +KarateChopDescription: + db "Has a high criti-" + next "cal hit ratio.@" + +DoubleslapDescription: + db "Repeatedly slaps" + next "2-5 times.@" + +CometPunchDescription: + db "Repeatedly punches" + next "2-5 times.@" + +MegaPunchDescription: + db "A powerful punch" + next "thrown very hard.@" + +PayDayDescription: + db "Throws coins. Gets" + next "them back later.@" + +FirePunchDescription: + db "A fiery punch. May" + next "cause a burn.@" + +IcePunchDescription: + db "An icy punch. May" + next "cause freezing.@" + +ThunderpunchDescription: + db "An electric punch." + next "It may paralyze.@" + +ScratchDescription: + db "Scratches with" + next "sharp claws.@" + +VicegripDescription: + db "Grips with power-" + next "ful pincers.@" + +GuillotineDescription: + db "A one-hit KO," + next "pincer attack.@" + +RazorWindDescription: + db "1st turn: Prepare" + next "2nd turn: Attack@" + +SwordsDanceDescription: + db "A dance that in-" + next "creases ATTACK.@" + +CutDescription: + db "Cuts using claws," + next "scythes, etc.@" + +GustDescription: + db "Whips up a strong" + next "gust of wind.@" + +WingAttackDescription: + db "Strikes the target" + next "with wings.@" + +WhirlwindDescription: + db "Blows away the foe" + next "& ends battle.@" + +FlyDescription: + db "1st turn: Fly" + next "2nd turn: Attack@" + +BindDescription: + db "Binds the target" + next "for 2-5 turns.@" + +SlamDescription: + db "Slams the foe with" + next "a tail, vine, etc.@" + +VineWhipDescription: + db "Whips the foe with" + next "slender vines.@" + +StompDescription: + db "An attack that may" + next "cause flinching.@" + +DoubleKickDescription: + db "A double kicking" + next "attack.@" + +MegaKickDescription: + db "A powerful kicking" + next "attack.@" + +JumpKickDescription: + db "May miss, damaging" + next "the user.@" + +RollingKickDescription: + db "A fast, spinning" + next "kick.@" + +SandAttackDescription: + db "Reduces accuracy" + next "by throwing sand.@" + +HeadbuttDescription: + db "An attack that may" + next "make foe flinch.@" + +HornAttackDescription: + db "An attack using a" + next "horn to jab.@" + +FuryAttackDescription: + db "Jabs the target" + next "2-5 times.@" + +HornDrillDescription: + db "A one-hit KO," + next "drill attack.@" + +TackleDescription: + db "A full-body charge" + next "attack.@" + +BodySlamDescription: + db "An attack that may" + next "cause paralysis.@" + +WrapDescription: + db "Squeezes the foe" + next "for 2-5 turns.@" + +TakeDownDescription: + db "A tackle that also" + next "hurts the user.@" + +ThrashDescription: + db "Works 2-3 turns" + next "and confuses user.@" + +DoubleEdgeDescription: + db "A tackle that also" + next "hurts the user.@" + +TailWhipDescription: + db "Lowers the foe's" + next "DEFENSE.@" + +PoisonStingDescription: + db "An attack that may" + next "poison the target.@" + +TwineedleDescription: + db "Jabs the foe twice" + next "using stingers.@" + +PinMissileDescription: + db "Fires pins that" + next "strike 2-5 times.@" + +LeerDescription: + db "Reduces the foe's" + next "DEFENSE.@" + +BiteDescription: + db "An attack that may" + next "cause flinching.@" + +GrowlDescription: + db "Reduces the foe's" + next "ATTACK.@" + +RoarDescription: + db "Scares wild foes" + next "to end battle.@" + +SingDescription: + db "May cause the foe" + next "to fall asleep.@" + +SupersonicDescription: + db "Sound waves that" + next "cause confusion.@" + +SonicboomDescription: + db "Always inflicts" + next "20HP damage.@" + +DisableDescription: + db "Disables the foe's" + next "most recent move.@" + +AcidDescription: + db "An attack that may" + next "lower DEFENSE.@" + +EmberDescription: + db "An attack that may" + next "inflict a burn.@" + +FlamethrowerDescription: + db "An attack that may" + next "inflict a burn.@" + +MistDescription: + db "Prevents stat" + next "reduction.@" + +WaterGunDescription: + db "Squirts water to" + next "attack.@" + +HydroPumpDescription: + db "A powerful water-" + next "type attack.@" + +SurfDescription: + db "A strong water-" + next "type attack.@" + +IceBeamDescription: + db "An attack that may" + next "freeze the foe.@" + +BlizzardDescription: + db "An attack that may" + next "freeze the foe.@" + +PsybeamDescription: + db "An attack that may" + next "confuse the foe.@" + +BubblebeamDescription: + db "An attack that may" + next "lower SPEED.@" + +AuroraBeamDescription: + db "An attack that may" + next "lower ATTACK.@" + +HyperBeamDescription: + db "1st turn: Attack" + next "2nd turn: Rest@" + +PeckDescription: + db "Jabs the foe with" + next "a beak, etc.@" + +DrillPeckDescription: + db "A strong, spin-" + next "ning-peck attack.@" + +SubmissionDescription: + db "An attack that al-" + next "so hurts the user.@" + +LowKickDescription: + db "An attack that may" + next "cause flinching.@" + +CounterDescription: + db "Returns a physical" + next "blow double.@" + +SeismicTossDescription: + db "The user's level" + next "equals damage HP.@" + +StrengthDescription: + db "A powerful physi-" + next "cal attack.@" + +AbsorbDescription: + db "Steals 1/2 of the" + next "damage inflicted.@" + +MegaDrainDescription: + db "Steals 1/2 of the" + next "damage inflicted.@" + +LeechSeedDescription: + db "Steals HP from the" + next "foe on every turn.@" + +GrowthDescription: + db "Raises the SPCL." + next "ATK rating.@" + +RazorLeafDescription: + db "Has a high criti-" + next "cal hit ratio.@" + +SolarbeamDescription: + db "1st turn: Prepare" + next "2nd turn: Attack@" + +PoisonpowderDescription: + db "A move that may" + next "poison the foe.@" + +StunSporeDescription: + db "A move that may" + next "paralyze the foe.@" + +SleepPowderDescription: + db "May cause the foe" + next "to fall asleep.@" + +PetalDanceDescription: + db "Works 2-3 turns" + next "and confuses user.@" + +StringShotDescription: + db "A move that lowers" + next "the foe's SPEED.@" + +DragonRageDescription: + db "Always inflicts" + next "40HP damage.@" + +FireSpinDescription: + db "Traps foe in fire" + next "for 2-5 turns.@" + +ThundershockDescription: + db "An attack that may" + next "cause paralysis.@" + +ThunderboltDescription: + db "An attack that may" + next "cause paralysis.@" + +ThunderWaveDescription: + db "A move that may" + next "cause paralysis.@" + +ThunderDescription: + db "An attack that may" + next "cause paralysis.@" + +RockThrowDescription: + db "Drops rocks on the" + next "enemy.@" + +EarthquakeDescription: + db "Tough but useless" + next "vs. flying foes.@" + +FissureDescription: + db "A ground-type," + next "one-hit KO attack.@" + +DigDescription: + db "1st turn: Burrow" + next "2nd turn: Attack@" + +ToxicDescription: + db "A poison move with" + next "increasing damage.@" + +ConfusionDescription: + db "An attack that may" + next "cause confusion.@" + +PsychicMDescription: + db "An attack that may" + next "lower SPCL.DEF.@" + +HypnosisDescription: + db "May put the foe to" + next "sleep.@" + +MeditateDescription: + db "Raises the user's" + next "ATTACK.@" + +AgilityDescription: + db "Sharply increases" + next "the user's SPEED.@" + +QuickAttackDescription: + db "Lets the user get" + next "in the first hit.@" + +RageDescription: + db "Raises ATTACK if" + next "the user is hit.@" + +TeleportDescription: + db "A move for fleeing" + next "from battle.@" + +NightShadeDescription: + db "The user's level" + next "equals damage HP.@" + +MimicDescription: + db "Copies a move used" + next "by the foe.@" + +ScreechDescription: + db "Sharply reduces" + next "the foe's DEFENSE.@" + +DoubleTeamDescription: + db "Heightens evasive-" + next "ness.@" + +RecoverDescription: + db "Restores HP by 1/2" + next "the max HP.@" + +HardenDescription: + db "Raises the user's" + next "DEFENSE.@" + +MinimizeDescription: + db "Heightens evasive-" + next "ness.@" + +SmokescreenDescription: + db "Lowers the foe's" + next "accuracy.@" + +ConfuseRayDescription: + db "A move that causes" + next "confusion.@" + +WithdrawDescription: + db "Heightens the" + next "user's DEFENSE.@" + +DefenseCurlDescription: + db "Heightens the" + next "user's DEFENSE.@" + +BarrierDescription: + db "Sharply increases" + next "user's DEFENSE.@" + +LightScreenDescription: + db "Ups SPCL.DEF with" + next "a wall of light.@" + +HazeDescription: + db "Eliminates all" + next "stat changes.@" + +ReflectDescription: + db "Raises DEFENSE" + next "with a barrier.@" + +FocusEnergyDescription: + db "Raises the criti-" + next "cal hit ratio.@" + +BideDescription: + db "Waits 2-3 turns &" + next "hits back double.@" + +MetronomeDescription: + db "Randomly uses any" + next "#MON move.@" + +MirrorMoveDescription: + db "Counters with the" + next "same move.@" + +SelfdestructDescription: + db "Powerful but makes" + next "the user faint.@" + +EggBombDescription: + db "Eggs are hurled at" + next "the foe.@" + +LickDescription: + db "An attack that may" + next "cause paralysis.@" + +SmogDescription: + db "An attack that may" + next "poison the foe.@" + +SludgeDescription: + db "An attack that may" + next "poison the foe.@" + +BoneClubDescription: + db "An attack that may" + next "cause flinching.@" + +FireBlastDescription: + db "An attack that" + next "may cause a burn.@" + +WaterfallDescription: + db "An aquatic charge" + next "attack.@" + +ClampDescription: + db "Traps the foe for" + next "2-5 turns.@" + +SwiftDescription: + db "An attack that" + next "never misses.@" + +SkullBashDescription: + db "1st turn: Prepare" + next "2nd turn: Attack@" + +SpikeCannonDescription: + db "Fires spikes to" + next "hit 2-5 times.@" + +ConstrictDescription: + db "An attack that may" + next "lower SPEED.@" + +AmnesiaDescription: + db "Sharply raises the" + next "user's SPCL.DEF.@" + +KinesisDescription: + db "Reduces the foe's" + next "accuracy.@" + +SoftboiledDescription: + db "Restores HP by 1/2" + next "the user's max HP.@" + +HiJumpKickDescription: + db "May miss and hurt" + next "the user.@" + +GlareDescription: + db "A move that may" + next "cause paralysis.@" + +DreamEaterDescription: + db "Steals HP from a" + next "sleeping victim.@" + +PoisonGasDescription: + db "A move that may" + next "poison the foe.@" + +BarrageDescription: + db "Throws orbs to hit" + next "2-5 times.@" + +LeechLifeDescription: + db "Steals 1/2 of the" + next "damage inflicted.@" + +LovelyKissDescription: + db "May cause the foe" + next "to fall asleep.@" + +SkyAttackDescription: + db "1st turn: Prepare" + next "2nd turn: Attack@" +TransformDescription: + db "The user assumes" + next "the foe's guise.@" + +BubbleDescription: + db "An attack that may" + next "reduce SPEED.@" + +DizzyPunchDescription: + db "An attack that may" + next "cause confusion.@" + +SporeDescription: + db "A move that" + next "induces sleep.@" + +FlashDescription: + db "Blinds the foe to" + next "reduce accuracy.@" + +PsywaveDescription: + db "An attack with" + next "variable power.@" + +SplashDescription: + db "Has no effect" + next "whatsoever.@" + +AcidArmorDescription: + db "Sharply raises the" + next "user's DEFENSE.@" + +CrabhammerDescription: + db "Has a high criti-" + next "cal hit ratio.@" + +ExplosionDescription: + db "Very powerful but" + next "makes user faint.@" + +FurySwipesDescription: + db "Quickly scratches" + next "2-5 times.@" + +BonemerangDescription: + db "An attack that" + next "strikes twice.@" + +RestDescription: + db "Sleep for 2 turns" + next "to fully recover.@" + +RockSlideDescription: + db "An attack that may" + next "cause flinching.@" + +HyperFangDescription: + db "An attack that may" + next "cause flinching.@" + +SharpenDescription: + db "A move that raises" + next "the user's ATTACK.@" + +ConversionDescription: + db "Change user's type" + next "to a move's type.@" + +TriAttackDescription: + db "Fires three kinds" + next "of beams at once.@" + +SuperFangDescription: + db "Cuts the foe's HP" + next "by 1/2.@" + +SlashDescription: + db "Has a high criti-" + next "cal hit ratio.@" + +SubstituteDescription: + db "Makes a decoy with" + next "1/4 user's max HP.@" + +StruggleDescription: + db "Used only if all" + next "PP are exhausted.@" + +SketchDescription: + db "Copies the foe's" + next "move permanently.@" + +TripleKickDescription: + db "Hits three times" + next "with rising power.@" + +ThiefDescription: + db "An attack that may" + next "steal a held item.@" + +SpiderWebDescription: + db "Prevents fleeing" + next "or switching.@" + +MindReaderDescription: + db "Ensures the next" + next "attack will hit.@" + +NightmareDescription: + db "A sleeper loses" + next "1/4 HP every turn.@" + +FlameWheelDescription: + db "An attack that may" + next "cause a burn.@" + +SnoreDescription: + db "An attack useable" + next "only while asleep.@" + +CurseDescription: + db "Works differently" + next "for ghost-types.@" + +FlailDescription: + db "Stronger if the" + next "user's HP is low.@" + +Conversion2Description: + db "The user's type is" + next "made resistant.@" + +AeroblastDescription: + db "Has a high criti-" + next "cal hit ratio.@" + +CottonSporeDescription: + db "Sharply reduces" + next "the foe's SPEED.@" + +ReversalDescription: + db "Stronger if the" + next "user's HP is low.@" + +SpiteDescription: + db "Cuts the PP of the" + next "foe's last move.@" + +PowderSnowDescription: + db "An attack that may" + next "cause freezing.@" + +ProtectDescription: + db "Foils attack that" + next "turn. It may fail.@" + +MachPunchDescription: + db "A fast punch that" + next "lands first.@" + +ScaryFaceDescription: + db "Sharply reduces" + next "the foe's SPEED.@" + +FaintAttackDescription: + db "An attack that" + next "never misses.@" + +SweetKissDescription: + db "A move that causes" + next "confusion.@" + +BellyDrumDescription: + db "Reduces own HP to" + next "maximize ATTACK.@" + +SludgeBombDescription: + db "An attack that may" + next "poison the foe.@" + +MudSlapDescription: + db "Reduces the foe's" + next "accuracy.@" + +OctazookaDescription: + db "An attack that may" + next "reduce accuracy.@" + +SpikesDescription: + db "Hurts foes when" + next "they switch out.@" + +ZapCannonDescription: + db "An attack that" + next "always paralyzes.@" + +ForesightDescription: + db "Negates accuracy" + next "reduction moves.@" + +DestinyBondDescription: + db "The foe faints if" + next "the user does.@" + +PerishSongDescription: + db "Both user and foe" + next "faint in 3 turns.@" + +IcyWindDescription: + db "An icy attack that" + next "lowers SPEED.@" + +DetectDescription: + db "Evades attack that" + next "turn. It may fail.@" + +BoneRushDescription: + db "An attack that" + next "hits 2-5 times.@" + +LockOnDescription: + db "Ensures the next" + next "attack will hit.@" + +OutrageDescription: + db "Works 2-3 turns" + next "and confuses user.@" + +SandstormDescription: + db "Inflicts damage" + next "every turn.@" + +GigaDrainDescription: + db "Steals 1/2 of the" + next "damage inflicted.@" + +EndureDescription: + db "Always leaves at" + next "least 1HP.@" + +CharmDescription: + db "Sharply lowers the" + next "foe's ATTACK.@" + +RolloutDescription: + db "Attacks 5 turns" + next "with rising power.@" + +FalseSwipeDescription: + db "Leaves the foe" + next "with at least 1HP.@" + +SwaggerDescription: + db "Causes confusion" + next "and raises ATTACK.@" + +MilkDrinkDescription: + db "Restores HP by 1/2" + next "the max HP.@" + +SparkDescription: + db "An attack that may" + next "cause paralysis.@" + +FuryCutterDescription: + db "Successive hits" + next "raise power.@" + +SteelWingDescription: + db "Stiff wings strike" + next "the foe.@" + +MeanLookDescription: + db "Prevents fleeing" + next "or switching.@" + +AttractDescription: + db "Makes the opposite" + next "gender infatuated.@" + +SleepTalkDescription: + db "Randomly attacks" + next "while asleep.@" + +HealBellDescription: + db "Eliminates all" + next "status problems.@" + +ReturnDescription: + db "An attack that is" + next "based on loyalty.@" + +PresentDescription: + db "A bomb that may" + next "restore HP.@" + +FrustrationDescription: + db "An attack based on" + next "lack of loyalty.@" + +SafeguardDescription: + db "Prevents all" + next "status problems.@" + +PainSplitDescription: + db "Adds user & foe's" + next "HPs. Shares total.@" + +SacredFireDescription: + db "An attack that may" + next "inflict a burn.@" + +MagnitudeDescription: + db "A ground attack" + next "with random power.@" + +DynamicpunchDescription: + db "An attack that" + next "always confuses.@" + +MegahornDescription: + db "A powerful charge" + next "attack.@" + +DragonbreathDescription: + db "A strong breath" + next "attack.@" + +BatonPassDescription: + db "Switches while" + next "keeping effects.@" + +EncoreDescription: + db "Makes the foe re-" + next "peat 2-6 times.@" + +PursuitDescription: + db "Heavily strikes" + next "switching #MON.@" + +RapidSpinDescription: + db "A high-speed" + next "spinning attack.@" + +SweetScentDescription: + db "Reduces the foe's" + next "evasiveness.@" + +IronTailDescription: + db "An attack that may" + next "reduce DEFENSE.@" + +MetalClawDescription: + db "An attack that may" + next "up user's ATTACK.@" + +VitalThrowDescription: + db "A 2nd-strike move" + next "that never misses.@" + +MorningSunDescription: + db "Restores HP" + next "(varies by time).@" + +SynthesisDescription: + db "Restores HP" + next "(varies by time).@" + +MoonlightDescription: + db "Restores HP" + next "(varies by time).@" + +HiddenPowerDescription: + db "The power varies" + next "with the #MON.@" + +CrossChopDescription: + db "Has a high criti-" + next "cal hit ratio.@" + +TwisterDescription: + db "Whips up a tornado" + next "to attack.@" + +RainDanceDescription: + db "Boosts water-type" + next "moves for 5 turns.@" + +SunnyDayDescription: + db "Boosts fire-type" + next "moves for 5 turns.@" + +CrunchDescription: + db "An attack that may" + next "lower SPCL.DEF.@" + +MirrorCoatDescription: + db "Counters a SPCL." + next "ATK move double.@" + +PsychUpDescription: + db "Copies the foe's" + next "stat changes.@" + +ExtremespeedDescription: + db "A powerful first-" + next "strike move.@" + +AncientpowerDescription: + db "An attack that may" + next "raise all stats.@" + +ShadowBallDescription: + db "An attack that may" + next "lower SPCL.DEF.@" + +FutureSightDescription: + db "An attack that" + next "hits on 3rd turn.@" + +RockSmashDescription: + db "An attack that may" + next "lower DEFENSE.@" + +WhirlpoolDescription: + db "Traps the foe for" + next "2-5 turns.@" + +BeatUpDescription: + db "Party #MON join" + next "in the attack.@" +; 2ed44 diff --git a/data/moves/move_effects.asm b/data/moves/move_effects.asm new file mode 100644 index 000000000..c56ff2560 --- /dev/null +++ b/data/moves/move_effects.asm @@ -0,0 +1,2075 @@ +MoveEffects: ; 2732e + +NormalHit: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + kingsrock + endmove + +DoSleep: + checkobedience + usedmovetext + doturn + checkhit + checksafeguard + sleeptarget + endmove + +PoisonHit: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + poisontarget + endmove + +LeechHit: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + draintarget + checkdestinybond + buildopponentrage + kingsrock + endmove + +BurnHit: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + burntarget + endmove + +FreezeHit: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + freezetarget + endmove + +ParalyzeHit: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + paralyzetarget + endmove + +Selfdestruct: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + selfdestruct + hittargetnosub + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + kingsrock + endmove + +DreamEater: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + eatdream + checkdestinybond + buildopponentrage + endmove + +MirrorMove: + checkobedience + usedmovetext + doturn + mirrormove + endmove + +AttackUp: + checkobedience + usedmovetext + doturn + attackup + lowersub + statupanim + raisesub + statupmessage + statupfailtext + endmove + +DefenseUp: + checkobedience + usedmovetext + doturn + defenseup + lowersub + statupanim + raisesub + statupmessage + statupfailtext + endmove + +SpeedUp: + checkobedience + usedmovetext + doturn + speedup + lowersub + statupanim + raisesub + statupmessage + statupfailtext + endmove + +SpecialAttackUp: + checkobedience + usedmovetext + doturn + specialattackup + lowersub + statupanim + raisesub + statupmessage + statupfailtext + endmove + +SpecialDefenseUp: + checkobedience + usedmovetext + doturn + specialdefenseup + lowersub + statupanim + raisesub + statupmessage + statupfailtext + endmove + +AccuracyUp: + checkobedience + usedmovetext + doturn + accuracyup + lowersub + statupanim + raisesub + statupmessage + statupfailtext + endmove + +EvasionUp: + checkobedience + usedmovetext + doturn + lowersub + evasionup + statupanim + lowersubnoanim + raisesub + statupmessage + statupfailtext + endmove + +AttackUp2: + checkobedience + usedmovetext + doturn + attackup2 + lowersub + statupanim + raisesub + statupmessage + statupfailtext + endmove + +DefenseUp2: + checkobedience + usedmovetext + doturn + defenseup2 + lowersub + statupanim + raisesub + statupmessage + statupfailtext + endmove + +SpeedUp2: + checkobedience + usedmovetext + doturn + speedup2 + lowersub + statupanim + raisesub + statupmessage + statupfailtext + endmove + +SpecialAttackUp2: + checkobedience + usedmovetext + doturn + specialattackup2 + lowersub + statupanim + raisesub + statupmessage + statupfailtext + endmove + +SpecialDefenseUp2: + checkobedience + usedmovetext + doturn + specialdefenseup2 + lowersub + statupanim + raisesub + statupmessage + statupfailtext + endmove + +AccuracyUp2: + checkobedience + usedmovetext + doturn + accuracyup2 + lowersub + statupanim + raisesub + statupmessage + statupfailtext + endmove + +EvasionUp2: + checkobedience + usedmovetext + doturn + evasionup2 + lowersub + statupanim + raisesub + statupmessage + statupfailtext + endmove + +AttackDown: + checkobedience + usedmovetext + doturn + checkhit + attackdown + lowersub + statdownanim + raisesub + statdownmessage + statdownfailtext + endmove + +DefenseDown: + checkobedience + usedmovetext + doturn + checkhit + defensedown + lowersub + statdownanim + raisesub + statdownmessage + statdownfailtext + endmove + +SpeedDown: + checkobedience + usedmovetext + doturn + checkhit + speeddown + lowersub + statdownanim + raisesub + statdownmessage + statdownfailtext + endmove + +SpecialAttackDown: + checkobedience + usedmovetext + doturn + checkhit + specialattackdown + lowersub + statdownanim + raisesub + statdownmessage + statdownfailtext + endmove + +SpecialDefenseDown: + checkobedience + usedmovetext + doturn + checkhit + specialdefensedown + lowersub + statdownanim + raisesub + statdownmessage + statdownfailtext + endmove + +AccuracyDown: + checkobedience + usedmovetext + doturn + checkhit + accuracydown + lowersub + statdownanim + raisesub + statdownmessage + statdownfailtext + endmove + +EvasionDown: + checkobedience + usedmovetext + doturn + checkhit + evasiondown + lowersub + statdownanim + raisesub + statdownmessage + statdownfailtext + endmove + +AttackDown2: + checkobedience + usedmovetext + doturn + checkhit + attackdown2 + lowersub + statdownanim + raisesub + statdownmessage + statdownfailtext + endmove + +DefenseDown2: + checkobedience + usedmovetext + doturn + checkhit + defensedown2 + lowersub + statdownanim + raisesub + statdownmessage + statdownfailtext + endmove + +SpeedDown2: + checkobedience + usedmovetext + doturn + checkhit + speeddown2 + lowersub + statdownanim + raisesub + statdownmessage + statdownfailtext + endmove + +SpecialAttackDown2: + checkobedience + usedmovetext + doturn + checkhit + specialattackdown2 + lowersub + statdownanim + raisesub + statdownmessage + statdownfailtext + endmove + +SpecialDefenseDown2: + checkobedience + usedmovetext + doturn + checkhit + specialdefensedown2 + lowersub + statdownanim + raisesub + statdownmessage + statdownfailtext + endmove + +AccuracyDown2: + checkobedience + usedmovetext + doturn + checkhit + accuracydown2 + lowersub + statdownanim + raisesub + statdownmessage + statdownfailtext + endmove + +EvasionDown2: + checkobedience + usedmovetext + doturn + checkhit + evasiondown2 + lowersub + statdownanim + raisesub + statdownmessage + statdownfailtext + endmove + +AttackDownHit: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + attackdown + statdownmessage + endmove + +DefenseDownHit: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + effectchance ; bug: duplicate effectchance shouldn't be here + defensedown + statdownmessage + endmove + +SpeedDownHit: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + speeddown + statdownmessage + endmove + +SpecialAttackDownHit: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + specialattackdown + statdownmessage + endmove + +SpecialDefenseDownHit: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + specialdefensedown + statdownmessage + endmove + +AccuracyDownHit: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + accuracydown + statdownmessage + endmove + +EvasionDownHit: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + evasiondown + statdownmessage + endmove + +DefenseUpHit: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + defenseup + statupmessage + endmove + +AttackUpHit: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + attackup + statupmessage + endmove + +AllUpHit: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + allstatsup + endmove + +PayDay: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + payday + checkdestinybond + buildopponentrage + kingsrock + endmove + +Conversion: + checkobedience + usedmovetext + doturn + conversion + endmove + +ResetStats: + checkobedience + usedmovetext + doturn + resetstats + endmove + +Bide: + storeenergy + checkobedience + doturn + usedmovetext + unleashenergy + resettypematchup + checkhit + hittarget + effect0xa5 + checkfaint + checkdestinybond + buildopponentrage + kingsrock + endmove + +Rampage: + checkrampage + checkobedience + doturn + rampage + usedmovetext + checkhit + critical + damagestats + damagecalc + stab + damagevariation + clearmissdamage + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + kingsrock + endmove + +ForceSwitch: + checkobedience + usedmovetext + doturn + checkhit + forceswitch + endmove + +MultiHit: + checkobedience + usedmovetext + doturn + startloop + lowersub + checkhit + critical + damagestats + damagecalc + stab + damagevariation + clearmissdamage + hittargetnosub + failuretext + checkfaint + criticaltext + cleartext + supereffectivelooptext + checkdestinybond + buildopponentrage + endloop + raisesub + kingsrock + endmove + +PoisonMultiHit: + checkobedience + usedmovetext + doturn + startloop + lowersub + checkhit + effectchance + critical + damagestats + damagecalc + stab + damagevariation + clearmissdamage + hittargetnosub + failuretext + checkfaint + criticaltext + cleartext + supereffectivelooptext + checkdestinybond + buildopponentrage + endloop + raisesub + kingsrock + poisontarget + endmove + +FlinchHit: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + flinchtarget + endmove + +OHKOHit: + checkobedience + usedmovetext + doturn + stab + ohko + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + endmove + +RecoilHit: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + recoil + checkdestinybond + buildopponentrage + kingsrock + endmove + +Mist: + checkobedience + usedmovetext + doturn + mist + endmove + +FocusEnergy: + checkobedience + usedmovetext + doturn + focusenergy + endmove + +DoConfuse: + checkobedience + usedmovetext + doturn + checkhit + checksafeguard + confuse + endmove + +ConfuseHit: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + confusetarget + endmove + +Heal: + checkobedience + usedmovetext + doturn + heal + endmove + +Transform: + checkobedience + usedmovetext + doturn + transform + endmove + +LightScreen: +Reflect: + checkobedience + usedmovetext + doturn + screen + endmove + +TriAttack: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + tristatuschance + endmove + +Toxic: +DoPoison: + checkobedience + usedmovetext + doturn + checkhit + stab + checksafeguard + poison + endmove + +DoParalyze: + checkobedience + usedmovetext + doturn + stab + checkhit + checksafeguard + paralyze + endmove + +SkyAttack: + checkcharge + checkobedience + doturn + charge + usedmovetext + critical + damagestats + damagecalc + stab + damagevariation + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + flinchtarget + kingsrock + endmove + +Substitute: + checkobedience + usedmovetext + doturn + substitute + endmove + +HyperBeam: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + rechargenextturn + checkdestinybond + buildopponentrage + endmove + +Rage: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + checkhit + ragedamage + damagevariation + hittarget + failuretext + rage + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + kingsrock + endmove + +Mimic: + checkobedience + usedmovetext + doturn + checkhit + mimic + endmove + +Metronome: + checkobedience + usedmovetext + doturn + metronome + endmove + +LeechSeed: + checkobedience + usedmovetext + doturn + checkhit + leechseed + endmove + +Splash: + checkobedience + usedmovetext + doturn + splash + endmove + +Disable: + checkobedience + usedmovetext + doturn + checkhit + disable + endmove + +RazorWind: + checkcharge + checkobedience + doturn + charge + usedmovetext + critical + damagestats + damagecalc + stab + damagevariation + checkhit + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + kingsrock + endmove + +Fly: + checkcharge + checkobedience + doturn + charge + usedmovetext + critical + damagestats + damagecalc + stab + damagevariation + checkhit + hittargetnosub + raisesub + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + kingsrock + endmove + +TrapTarget: + checkobedience + usedmovetext + doturn + checkhit + critical + damagestats + damagecalc + stab + damagevariation + clearmissdamage + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + traptarget + endmove + +SuperFang: +Psywave: +StaticDamage: + checkobedience + usedmovetext + doturn + constantdamage + checkhit + resettypematchup + hittarget + failuretext + checkfaint + checkdestinybond + buildopponentrage + kingsrock + endmove + +Reversal: + checkobedience + usedmovetext + doturn + constantdamage + stab + checkhit + hittarget + failuretext + checkfaint + supereffectivetext + checkdestinybond + buildopponentrage + kingsrock + endmove + +Counter: + checkobedience + usedmovetext + doturn + counter + hittarget + failuretext + checkfaint + checkdestinybond + buildopponentrage + kingsrock + endmove + +Encore: + checkobedience + usedmovetext + doturn + checkhit + encore + endmove + +PainSplit: + checkobedience + usedmovetext + doturn + checkhit + painsplit + endmove + +Snore: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + effectchance + snore + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + flinchtarget + kingsrock + endmove + +Conversion2: + checkobedience + usedmovetext + doturn + checkhit + conversion2 + endmove + +LockOn: + checkobedience + usedmovetext + doturn + checkhit + lockon + endmove + +Sketch: + checkobedience + usedmovetext + doturn + sketch + endmove + +DefrostOpponent: + checkobedience + usedmovetext + doturn + defrostopponent + endmove + +SleepTalk: + checkobedience + usedmovetext + doturn + sleeptalk + endmove + +DestinyBond: + checkobedience + usedmovetext + doturn + destinybond + endmove + +Spite: + checkobedience + usedmovetext + doturn + checkhit + spite + endmove + +FalseSwipe: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + falseswipe + checkhit + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + kingsrock + endmove + +HealBell: + checkobedience + usedmovetext + doturn + healbell + endmove + +TripleKick: + checkobedience + usedmovetext + doturn + startloop + lowersub + checkhit + critical + damagestats + damagecalc + triplekick + stab + damagevariation + clearmissdamage + hittargetnosub + failuretext + checkfaint + criticaltext + cleartext + supereffectivelooptext + checkdestinybond + buildopponentrage + kickcounter + endloop + raisesub + kingsrock + endmove + +Thief: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + thief + checkdestinybond + buildopponentrage + kingsrock + endmove + +MeanLook: + checkobedience + usedmovetext + doturn + arenatrap + endmove + +Nightmare: + checkobedience + usedmovetext + doturn + nightmare + endmove + +FlameWheel: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + defrost + checkdestinybond + buildopponentrage + burntarget + endmove + +Curse: + checkobedience + usedmovetext + doturn + curse + endmove + +Protect: + checkobedience + usedmovetext + doturn + protect + endmove + +Spikes: + checkobedience + usedmovetext + doturn + spikes + endmove + +Foresight: + checkobedience + usedmovetext + doturn + checkhit + foresight + endmove + +PerishSong: + checkobedience + usedmovetext + doturn + perishsong + endmove + +Sandstorm: + checkobedience + usedmovetext + doturn + startsandstorm + endmove + +Endure: + checkobedience + usedmovetext + doturn + endure + endmove + +Rollout: + checkcurl + checkobedience + doturn + usedmovetext + critical + damagestats + damagecalc + stab + checkhit + rolloutpower + damagevariation + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + kingsrock + endmove + +Swagger: + checkobedience + usedmovetext + doturn + checkhit + switchturn + attackup2 + switchturn + lowersub + statupanim + raisesub + failuretext + switchturn + statupmessage + switchturn + confusetarget + endmove + +FuryCutter: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + checkhit + furycutter + damagevariation + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + kingsrock + endmove + +Attract: + checkobedience + usedmovetext + doturn + checkhit + attract + endmove + +Return: + checkobedience + usedmovetext + doturn + critical + damagestats + happinesspower + damagecalc + stab + damagevariation + checkhit + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + kingsrock + endmove + +Present: + checkobedience + usedmovetext + doturn + checkhit + critical + damagestats + present + damagecalc + stab + damagevariation + clearmissdamage + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + kingsrock + endmove + +Frustration: + checkobedience + usedmovetext + doturn + critical + damagestats + frustrationpower + damagecalc + stab + damagevariation + checkhit + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + kingsrock + endmove + +Safeguard: + checkobedience + usedmovetext + doturn + safeguard + endmove + +SacredFire: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + defrost + checkdestinybond + buildopponentrage + burntarget + endmove + +Magnitude: + checkobedience + usedmovetext + doturn + critical + damagestats + getmagnitude + damagecalc + stab + damagevariation + checkhit + doubleundergrounddamage + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + kingsrock + endmove + +BatonPass: + checkobedience + usedmovetext + doturn + batonpass + endmove + +Pursuit: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + pursuit + checkhit + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + kingsrock + endmove + +RapidSpin: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + checkhit + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + clearhazards + checkdestinybond + buildopponentrage + kingsrock + endmove + +MorningSun: + checkobedience + usedmovetext + doturn + healmorn + endmove + +Synthesis: + checkobedience + usedmovetext + doturn + healday + endmove + +Moonlight: + checkobedience + usedmovetext + doturn + healnite + endmove + +HiddenPower: + checkobedience + usedmovetext + doturn + critical + hiddenpower + damagecalc + stab + damagevariation + checkhit + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + kingsrock + endmove + +RainDance: + checkobedience + usedmovetext + doturn + startrain + endmove + +SunnyDay: + checkobedience + usedmovetext + doturn + startsun + endmove + +FakeOut: + checkobedience + usedmovetext + doturn + checkhit + fakeout + hittarget + failuretext + endmove + +BellyDrum: + checkobedience + usedmovetext + doturn + bellydrum + endmove + +PsychUp: + checkobedience + usedmovetext + doturn + psychup + endmove + +MirrorCoat: + checkobedience + usedmovetext + doturn + mirrorcoat + hittarget + failuretext + checkfaint + checkdestinybond + buildopponentrage + kingsrock + endmove + +SkullBash: + checkcharge + checkobedience + doturn + charge + usedmovetext + critical + damagestats + damagecalc + stab + damagevariation + checkhit + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + kingsrock + endturn + defenseup + statupmessage + endmove + +Twister: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + doubleflyingdamage + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + flinchtarget + endmove + +Earthquake: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + doubleundergrounddamage + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + endmove + +FutureSight: + checkfuturesight + checkobedience + usedmovetext + doturn + damagestats + damagecalc + futuresight + damagevariation ; skip here if last turn + checkhit + hittargetnosub + failuretext + checkfaint + checkdestinybond + buildopponentrage + endmove + +Gust: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + doubleflyingdamage + checkhit + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + endmove + +Stomp: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + stab + damagevariation + doubleminimizedamage + checkhit + effectchance + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + flinchtarget + endmove + +Solarbeam: + checkcharge + checkobedience + doturn + skipsuncharge + charge + usedmovetext + critical + damagestats + damagecalc + stab + damagevariation + checkhit + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + kingsrock + endmove + +Thunder: + checkobedience + usedmovetext + doturn + critical + damagestats + damagecalc + thunderaccuracy + checkhit + effectchance + stab + damagevariation + hittarget + failuretext + checkfaint + criticaltext + supereffectivetext + checkdestinybond + buildopponentrage + paralyzetarget + endmove + +Teleport: + checkobedience + usedmovetext + doturn + teleport + endmove + +BeatUp: + checkobedience + usedmovetext + movedelay + doturn + startloop + lowersub + checkhit + critical + beatup + damagecalc + damagevariation + clearmissdamage + hittargetnosub + failuretext + checkfaint + criticaltext + cleartext + supereffectivetext + checkdestinybond + buildopponentrage + endloop + effect0xa8 + raisesub + kingsrock + endmove + +DefenseCurl: + checkobedience + usedmovetext + doturn + defenseup + curl + lowersub + statupanim + raisesub + statupmessage + statupfailtext + endmove diff --git a/data/moves/move_effects_pointers.asm b/data/moves/move_effects_pointers.asm new file mode 100644 index 000000000..a12092881 --- /dev/null +++ b/data/moves/move_effects_pointers.asm @@ -0,0 +1,159 @@ +MoveEffectsPointers: ; 271f4 +; entries correspond to EFFECT_* constants + dw NormalHit + dw DoSleep + dw PoisonHit + dw LeechHit + dw BurnHit + dw FreezeHit + dw ParalyzeHit + dw Selfdestruct + dw DreamEater + dw MirrorMove + dw AttackUp + dw DefenseUp + dw SpeedUp + dw SpecialAttackUp + dw SpecialDefenseUp + dw AccuracyUp + dw EvasionUp + dw NormalHit + dw AttackDown + dw DefenseDown + dw SpeedDown + dw SpecialAttackDown + dw SpecialDefenseDown + dw AccuracyDown + dw EvasionDown + dw ResetStats + dw Bide + dw Rampage + dw ForceSwitch + dw MultiHit + dw Conversion + dw FlinchHit + dw Heal + dw Toxic + dw PayDay + dw LightScreen + dw TriAttack + dw NormalHit + dw OHKOHit + dw RazorWind + dw SuperFang + dw StaticDamage + dw TrapTarget + dw NormalHit + dw MultiHit + dw NormalHit + dw Mist + dw FocusEnergy + dw RecoilHit + dw DoConfuse + dw AttackUp2 + dw DefenseUp2 + dw SpeedUp2 + dw SpecialAttackUp2 + dw SpecialDefenseUp2 + dw AccuracyUp2 + dw EvasionUp2 + dw Transform + dw AttackDown2 + dw DefenseDown2 + dw SpeedDown2 + dw SpecialAttackDown2 + dw SpecialDefenseDown2 + dw AccuracyDown2 + dw EvasionDown2 + dw Reflect + dw DoPoison + dw DoParalyze + dw AttackDownHit + dw DefenseDownHit + dw SpeedDownHit + dw SpecialAttackDownHit + dw SpecialDefenseDownHit + dw AccuracyDownHit + dw EvasionDownHit + dw SkyAttack + dw ConfuseHit + dw PoisonMultiHit + dw NormalHit + dw Substitute + dw HyperBeam + dw Rage + dw Mimic + dw Metronome + dw LeechSeed + dw Splash + dw Disable + dw StaticDamage + dw Psywave + dw Counter + dw Encore + dw PainSplit + dw Snore + dw Conversion2 + dw LockOn + dw Sketch + dw DefrostOpponent + dw SleepTalk + dw DestinyBond + dw Reversal + dw Spite + dw FalseSwipe + dw HealBell + dw NormalHit + dw TripleKick + dw Thief + dw MeanLook + dw Nightmare + dw FlameWheel + dw Curse + dw NormalHit + dw Protect + dw Spikes + dw Foresight + dw PerishSong + dw Sandstorm + dw Endure + dw Rollout + dw Swagger + dw FuryCutter + dw Attract + dw Return + dw Present + dw Frustration + dw Safeguard + dw SacredFire + dw Magnitude + dw BatonPass + dw Pursuit + dw RapidSpin + dw NormalHit + dw NormalHit + dw MorningSun + dw Synthesis + dw Moonlight + dw HiddenPower + dw RainDance + dw SunnyDay + dw DefenseUpHit + dw AttackUpHit + dw AllUpHit + dw FakeOut + dw BellyDrum + dw PsychUp + dw MirrorCoat + dw SkullBash + dw Twister + dw Earthquake + dw FutureSight + dw Gust + dw Stomp + dw Solarbeam + dw Thunder + dw Teleport + dw BeatUp + dw Fly + dw DefenseCurl diff --git a/data/moves/move_names.asm b/data/moves/move_names.asm new file mode 100644 index 000000000..cfc7ac54f --- /dev/null +++ b/data/moves/move_names.asm @@ -0,0 +1,252 @@ +MoveNames:: + db "POUND@" + db "KARATE CHOP@" + db "DOUBLESLAP@" + db "COMET PUNCH@" + db "MEGA PUNCH@" + db "PAY DAY@" + db "FIRE PUNCH@" + db "ICE PUNCH@" + db "THUNDERPUNCH@" + db "SCRATCH@" + db "VICEGRIP@" + db "GUILLOTINE@" + db "RAZOR WIND@" + db "SWORDS DANCE@" + db "CUT@" + db "GUST@" + db "WING ATTACK@" + db "WHIRLWIND@" + db "FLY@" + db "BIND@" + db "SLAM@" + db "VINE WHIP@" + db "STOMP@" + db "DOUBLE KICK@" + db "MEGA KICK@" + db "JUMP KICK@" + db "ROLLING KICK@" + db "SAND-ATTACK@" + db "HEADBUTT@" + db "HORN ATTACK@" + db "FURY ATTACK@" + db "HORN DRILL@" + db "TACKLE@" + db "BODY SLAM@" + db "WRAP@" + db "TAKE DOWN@" + db "THRASH@" + db "DOUBLE-EDGE@" + db "TAIL WHIP@" + db "POISON STING@" + db "TWINEEDLE@" + db "PIN MISSILE@" + db "LEER@" + db "BITE@" + db "GROWL@" + db "ROAR@" + db "SING@" + db "SUPERSONIC@" + db "SONICBOOM@" + db "DISABLE@" + db "ACID@" + db "EMBER@" + db "FLAMETHROWER@" + db "MIST@" + db "WATER GUN@" + db "HYDRO PUMP@" + db "SURF@" + db "ICE BEAM@" + db "BLIZZARD@" + db "PSYBEAM@" + db "BUBBLEBEAM@" + db "AURORA BEAM@" + db "HYPER BEAM@" + db "PECK@" + db "DRILL PECK@" + db "SUBMISSION@" + db "LOW KICK@" + db "COUNTER@" + db "SEISMIC TOSS@" + db "STRENGTH@" + db "ABSORB@" + db "MEGA DRAIN@" + db "LEECH SEED@" + db "GROWTH@" + db "RAZOR LEAF@" + db "SOLARBEAM@" + db "POISONPOWDER@" + db "STUN SPORE@" + db "SLEEP POWDER@" + db "PETAL DANCE@" + db "STRING SHOT@" + db "DRAGON RAGE@" + db "FIRE SPIN@" + db "THUNDERSHOCK@" + db "THUNDERBOLT@" + db "THUNDER WAVE@" + db "THUNDER@" + db "ROCK THROW@" + db "EARTHQUAKE@" + db "FISSURE@" + db "DIG@" + db "TOXIC@" + db "CONFUSION@" + db "PSYCHIC@" + db "HYPNOSIS@" + db "MEDITATE@" + db "AGILITY@" + db "QUICK ATTACK@" + db "RAGE@" + db "TELEPORT@" + db "NIGHT SHADE@" + db "MIMIC@" + db "SCREECH@" + db "DOUBLE TEAM@" + db "RECOVER@" + db "HARDEN@" + db "MINIMIZE@" + db "SMOKESCREEN@" + db "CONFUSE RAY@" + db "WITHDRAW@" + db "DEFENSE CURL@" + db "BARRIER@" + db "LIGHT SCREEN@" + db "HAZE@" + db "REFLECT@" + db "FOCUS ENERGY@" + db "BIDE@" + db "METRONOME@" + db "MIRROR MOVE@" + db "SELFDESTRUCT@" + db "EGG BOMB@" + db "LICK@" + db "SMOG@" + db "SLUDGE@" + db "BONE CLUB@" + db "FIRE BLAST@" + db "WATERFALL@" + db "CLAMP@" + db "SWIFT@" + db "SKULL BASH@" + db "SPIKE CANNON@" + db "CONSTRICT@" + db "AMNESIA@" + db "KINESIS@" + db "SOFTBOILED@" + db "HI JUMP KICK@" + db "GLARE@" + db "DREAM EATER@" + db "POISON GAS@" + db "BARRAGE@" + db "LEECH LIFE@" + db "LOVELY KISS@" + db "SKY ATTACK@" + db "TRANSFORM@" + db "BUBBLE@" + db "DIZZY PUNCH@" + db "SPORE@" + db "FLASH@" + db "PSYWAVE@" + db "SPLASH@" + db "ACID ARMOR@" + db "CRABHAMMER@" + db "EXPLOSION@" + db "FURY SWIPES@" + db "BONEMERANG@" + db "REST@" + db "ROCK SLIDE@" + db "HYPER FANG@" + db "SHARPEN@" + db "CONVERSION@" + db "TRI ATTACK@" + db "SUPER FANG@" + db "SLASH@" + db "SUBSTITUTE@" + db "STRUGGLE@" + db "SKETCH@" + db "TRIPLE KICK@" + db "THIEF@" + db "SPIDER WEB@" + db "MIND READER@" + db "NIGHTMARE@" + db "FLAME WHEEL@" + db "SNORE@" + db "CURSE@" + db "FLAIL@" + db "CONVERSION2@" + db "AEROBLAST@" + db "COTTON SPORE@" + db "REVERSAL@" + db "SPITE@" + db "POWDER SNOW@" + db "PROTECT@" + db "MACH PUNCH@" + db "SCARY FACE@" + db "FAINT ATTACK@" + db "SWEET KISS@" + db "BELLY DRUM@" + db "SLUDGE BOMB@" + db "MUD-SLAP@" + db "OCTAZOOKA@" + db "SPIKES@" + db "ZAP CANNON@" + db "FORESIGHT@" + db "DESTINY BOND@" + db "PERISH SONG@" + db "ICY WIND@" + db "DETECT@" + db "BONE RUSH@" + db "LOCK-ON@" + db "OUTRAGE@" + db "SANDSTORM@" + db "GIGA DRAIN@" + db "ENDURE@" + db "CHARM@" + db "ROLLOUT@" + db "FALSE SWIPE@" + db "SWAGGER@" + db "MILK DRINK@" + db "SPARK@" + db "FURY CUTTER@" + db "STEEL WING@" + db "MEAN LOOK@" + db "ATTRACT@" + db "SLEEP TALK@" + db "HEAL BELL@" + db "RETURN@" + db "PRESENT@" + db "FRUSTRATION@" + db "SAFEGUARD@" + db "PAIN SPLIT@" + db "SACRED FIRE@" + db "MAGNITUDE@" + db "DYNAMICPUNCH@" + db "MEGAHORN@" + db "DRAGONBREATH@" + db "BATON PASS@" + db "ENCORE@" + db "PURSUIT@" + db "RAPID SPIN@" + db "SWEET SCENT@" + db "IRON TAIL@" + db "METAL CLAW@" + db "VITAL THROW@" + db "MORNING SUN@" + db "SYNTHESIS@" + db "MOONLIGHT@" + db "HIDDEN POWER@" + db "CROSS CHOP@" + db "TWISTER@" + db "RAIN DANCE@" + db "SUNNY DAY@" + db "CRUNCH@" + db "MIRROR COAT@" + db "PSYCH UP@" + db "EXTREMESPEED@" + db "ANCIENTPOWER@" + db "SHADOW BALL@" + db "FUTURE SIGHT@" + db "ROCK SMASH@" + db "WHIRLPOOL@" + db "BEAT UP@" diff --git a/data/moves/moves.asm b/data/moves/moves.asm new file mode 100644 index 000000000..b576fbaff --- /dev/null +++ b/data/moves/moves.asm @@ -0,0 +1,265 @@ +; Characteristics of each move. + +move: MACRO + db \1 ; animation + db \2 ; effect + db \3 ; power + db \4 ; type + db \5 percent ; accuracy + db \6 ; pp + db \7 percent ; effect chance +ENDM + +Moves: ; 41afb +; entries correspond to constants/move_constants.asm + move POUND, EFFECT_NORMAL_HIT, 40, NORMAL, 100, 35, 0 + move KARATE_CHOP, EFFECT_NORMAL_HIT, 50, FIGHTING, 100, 25, 0 + move DOUBLESLAP, EFFECT_MULTI_HIT, 15, NORMAL, 85, 10, 0 + move COMET_PUNCH, EFFECT_MULTI_HIT, 18, NORMAL, 85, 15, 0 + move MEGA_PUNCH, EFFECT_NORMAL_HIT, 80, NORMAL, 85, 20, 0 + move PAY_DAY, EFFECT_PAY_DAY, 40, NORMAL, 100, 20, 0 + move FIRE_PUNCH, EFFECT_BURN_HIT, 75, FIRE, 100, 15, 10 + move ICE_PUNCH, EFFECT_FREEZE_HIT, 75, ICE, 100, 15, 10 + move THUNDERPUNCH, EFFECT_PARALYZE_HIT, 75, ELECTRIC, 100, 15, 10 + move SCRATCH, EFFECT_NORMAL_HIT, 40, NORMAL, 100, 35, 0 + move VICEGRIP, EFFECT_NORMAL_HIT, 55, NORMAL, 100, 30, 0 + move GUILLOTINE, EFFECT_OHKO, 0, NORMAL, 30, 5, 0 + move RAZOR_WIND, EFFECT_RAZOR_WIND, 80, NORMAL, 75, 10, 0 + move SWORDS_DANCE, EFFECT_ATTACK_UP_2, 0, NORMAL, 100, 30, 0 + move CUT, EFFECT_NORMAL_HIT, 50, NORMAL, 95, 30, 0 + move GUST, EFFECT_GUST, 40, FLYING, 100, 35, 0 + move WING_ATTACK, EFFECT_NORMAL_HIT, 60, FLYING, 100, 35, 0 + move WHIRLWIND, EFFECT_FORCE_SWITCH, 0, NORMAL, 100, 20, 0 + move FLY, EFFECT_FLY, 70, FLYING, 95, 15, 0 + move BIND, EFFECT_TRAP_TARGET, 15, NORMAL, 75, 20, 0 + move SLAM, EFFECT_NORMAL_HIT, 80, NORMAL, 75, 20, 0 + move VINE_WHIP, EFFECT_NORMAL_HIT, 35, GRASS, 100, 10, 0 + move STOMP, EFFECT_STOMP, 65, NORMAL, 100, 20, 30 + move DOUBLE_KICK, EFFECT_DOUBLE_HIT, 30, FIGHTING, 100, 30, 0 + move MEGA_KICK, EFFECT_NORMAL_HIT, 120, NORMAL, 75, 5, 0 + move JUMP_KICK, EFFECT_JUMP_KICK, 70, FIGHTING, 95, 25, 0 + move ROLLING_KICK, EFFECT_FLINCH_HIT, 60, FIGHTING, 85, 15, 30 + move SAND_ATTACK, EFFECT_ACCURACY_DOWN, 0, GROUND, 100, 15, 0 + move HEADBUTT, EFFECT_FLINCH_HIT, 70, NORMAL, 100, 15, 30 + move HORN_ATTACK, EFFECT_NORMAL_HIT, 65, NORMAL, 100, 25, 0 + move FURY_ATTACK, EFFECT_MULTI_HIT, 15, NORMAL, 85, 20, 0 + move HORN_DRILL, EFFECT_OHKO, 1, NORMAL, 30, 5, 0 + move TACKLE, EFFECT_NORMAL_HIT, 35, NORMAL, 95, 35, 0 + move BODY_SLAM, EFFECT_PARALYZE_HIT, 85, NORMAL, 100, 15, 30 + move WRAP, EFFECT_TRAP_TARGET, 15, NORMAL, 85, 20, 0 + move TAKE_DOWN, EFFECT_RECOIL_HIT, 90, NORMAL, 85, 20, 0 + move THRASH, EFFECT_RAMPAGE, 90, NORMAL, 100, 20, 0 + move DOUBLE_EDGE, EFFECT_RECOIL_HIT, 120, NORMAL, 100, 15, 0 + move TAIL_WHIP, EFFECT_DEFENSE_DOWN, 0, NORMAL, 100, 30, 0 + move POISON_STING, EFFECT_POISON_HIT, 15, POISON, 100, 35, 30 + move TWINEEDLE, EFFECT_POISON_MULTI_HIT, 25, BUG, 100, 20, 20 + move PIN_MISSILE, EFFECT_MULTI_HIT, 14, BUG, 85, 20, 0 + move LEER, EFFECT_DEFENSE_DOWN, 0, NORMAL, 100, 30, 0 + move BITE, EFFECT_FLINCH_HIT, 60, DARK, 100, 25, 30 + move GROWL, EFFECT_ATTACK_DOWN, 0, NORMAL, 100, 40, 0 + move ROAR, EFFECT_FORCE_SWITCH, 0, NORMAL, 100, 20, 0 + move SING, EFFECT_SLEEP, 0, NORMAL, 55, 15, 0 + move SUPERSONIC, EFFECT_CONFUSE, 0, NORMAL, 55, 20, 0 + move SONICBOOM, EFFECT_STATIC_DAMAGE, 20, NORMAL, 90, 20, 0 + move DISABLE, EFFECT_DISABLE, 0, NORMAL, 55, 20, 0 + move ACID, EFFECT_DEFENSE_DOWN_HIT, 40, POISON, 100, 30, 10 + move EMBER, EFFECT_BURN_HIT, 40, FIRE, 100, 25, 10 + move FLAMETHROWER, EFFECT_BURN_HIT, 95, FIRE, 100, 15, 10 + move MIST, EFFECT_MIST, 0, ICE, 100, 30, 0 + move WATER_GUN, EFFECT_NORMAL_HIT, 40, WATER, 100, 25, 0 + move HYDRO_PUMP, EFFECT_NORMAL_HIT, 120, WATER, 80, 5, 0 + move SURF, EFFECT_NORMAL_HIT, 95, WATER, 100, 15, 0 + move ICE_BEAM, EFFECT_FREEZE_HIT, 95, ICE, 100, 10, 10 + move BLIZZARD, EFFECT_FREEZE_HIT, 120, ICE, 70, 5, 10 + move PSYBEAM, EFFECT_CONFUSE_HIT, 65, PSYCHIC, 100, 20, 10 + move BUBBLEBEAM, EFFECT_SPEED_DOWN_HIT, 65, WATER, 100, 20, 10 + move AURORA_BEAM, EFFECT_ATTACK_DOWN_HIT, 65, ICE, 100, 20, 10 + move HYPER_BEAM, EFFECT_HYPER_BEAM, 150, NORMAL, 90, 5, 0 + move PECK, EFFECT_NORMAL_HIT, 35, FLYING, 100, 35, 0 + move DRILL_PECK, EFFECT_NORMAL_HIT, 80, FLYING, 100, 20, 0 + move SUBMISSION, EFFECT_RECOIL_HIT, 80, FIGHTING, 80, 25, 0 + move LOW_KICK, EFFECT_FLINCH_HIT, 50, FIGHTING, 90, 20, 30 + move COUNTER, EFFECT_COUNTER, 1, FIGHTING, 100, 20, 0 + move SEISMIC_TOSS, EFFECT_LEVEL_DAMAGE, 1, FIGHTING, 100, 20, 0 + move STRENGTH, EFFECT_NORMAL_HIT, 80, NORMAL, 100, 15, 0 + move ABSORB, EFFECT_LEECH_HIT, 20, GRASS, 100, 20, 0 + move MEGA_DRAIN, EFFECT_LEECH_HIT, 40, GRASS, 100, 10, 0 + move LEECH_SEED, EFFECT_LEECH_SEED, 0, GRASS, 90, 10, 0 + move GROWTH, EFFECT_SP_ATK_UP, 0, NORMAL, 100, 40, 0 + move RAZOR_LEAF, EFFECT_NORMAL_HIT, 55, GRASS, 95, 25, 0 + move SOLARBEAM, EFFECT_SOLARBEAM, 120, GRASS, 100, 10, 0 + move POISONPOWDER, EFFECT_POISON, 0, POISON, 75, 35, 0 + move STUN_SPORE, EFFECT_PARALYZE, 0, GRASS, 75, 30, 0 + move SLEEP_POWDER, EFFECT_SLEEP, 0, GRASS, 75, 15, 0 + move PETAL_DANCE, EFFECT_RAMPAGE, 70, GRASS, 100, 20, 0 + move STRING_SHOT, EFFECT_SPEED_DOWN, 0, BUG, 95, 40, 0 + move DRAGON_RAGE, EFFECT_STATIC_DAMAGE, 40, DRAGON, 100, 10, 0 + move FIRE_SPIN, EFFECT_TRAP_TARGET, 15, FIRE, 70, 15, 0 + move THUNDERSHOCK, EFFECT_PARALYZE_HIT, 40, ELECTRIC, 100, 30, 10 + move THUNDERBOLT, EFFECT_PARALYZE_HIT, 95, ELECTRIC, 100, 15, 10 + move THUNDER_WAVE, EFFECT_PARALYZE, 0, ELECTRIC, 100, 20, 0 + move THUNDER, EFFECT_THUNDER, 120, ELECTRIC, 70, 10, 30 + move ROCK_THROW, EFFECT_NORMAL_HIT, 50, ROCK, 90, 15, 0 + move EARTHQUAKE, EFFECT_EARTHQUAKE, 100, GROUND, 100, 10, 0 + move FISSURE, EFFECT_OHKO, 1, GROUND, 30, 5, 0 + move DIG, EFFECT_FLY, 60, GROUND, 100, 10, 0 + move TOXIC, EFFECT_TOXIC, 0, POISON, 85, 10, 0 + move CONFUSION, EFFECT_CONFUSE_HIT, 50, PSYCHIC, 100, 25, 10 + move PSYCHIC_M, EFFECT_SP_DEF_DOWN_HIT, 90, PSYCHIC, 100, 10, 10 + move HYPNOSIS, EFFECT_SLEEP, 0, PSYCHIC, 60, 20, 0 + move MEDITATE, EFFECT_ATTACK_UP, 0, PSYCHIC, 100, 40, 0 + move AGILITY, EFFECT_SPEED_UP_2, 0, PSYCHIC, 100, 30, 0 + move QUICK_ATTACK, EFFECT_PRIORITY_HIT, 40, NORMAL, 100, 30, 0 + move RAGE, EFFECT_RAGE, 20, NORMAL, 100, 20, 0 + move TELEPORT, EFFECT_TELEPORT, 0, PSYCHIC, 100, 20, 0 + move NIGHT_SHADE, EFFECT_LEVEL_DAMAGE, 1, GHOST, 100, 15, 0 + move MIMIC, EFFECT_MIMIC, 0, NORMAL, 100, 10, 0 + move SCREECH, EFFECT_DEFENSE_DOWN_2, 0, NORMAL, 85, 40, 0 + move DOUBLE_TEAM, EFFECT_EVASION_UP, 0, NORMAL, 100, 15, 0 + move RECOVER, EFFECT_HEAL, 0, NORMAL, 100, 20, 0 + move HARDEN, EFFECT_DEFENSE_UP, 0, NORMAL, 100, 30, 0 + move MINIMIZE, EFFECT_EVASION_UP, 0, NORMAL, 100, 20, 0 + move SMOKESCREEN, EFFECT_ACCURACY_DOWN, 0, NORMAL, 100, 20, 0 + move CONFUSE_RAY, EFFECT_CONFUSE, 0, GHOST, 100, 10, 0 + move WITHDRAW, EFFECT_DEFENSE_UP, 0, WATER, 100, 40, 0 + move DEFENSE_CURL, EFFECT_DEFENSE_CURL, 0, NORMAL, 100, 40, 0 + move BARRIER, EFFECT_DEFENSE_UP_2, 0, PSYCHIC, 100, 30, 0 + move LIGHT_SCREEN, EFFECT_LIGHT_SCREEN, 0, PSYCHIC, 100, 30, 0 + move HAZE, EFFECT_RESET_STATS, 0, ICE, 100, 30, 0 + move REFLECT, EFFECT_REFLECT, 0, PSYCHIC, 100, 20, 0 + move FOCUS_ENERGY, EFFECT_FOCUS_ENERGY, 0, NORMAL, 100, 30, 0 + move BIDE, EFFECT_BIDE, 0, NORMAL, 100, 10, 0 + move METRONOME, EFFECT_METRONOME, 0, NORMAL, 100, 10, 0 + move MIRROR_MOVE, EFFECT_MIRROR_MOVE, 0, FLYING, 100, 20, 0 + move SELFDESTRUCT, EFFECT_SELFDESTRUCT, 200, NORMAL, 100, 5, 0 + move EGG_BOMB, EFFECT_NORMAL_HIT, 100, NORMAL, 75, 10, 0 + move LICK, EFFECT_PARALYZE_HIT, 20, GHOST, 100, 30, 30 + move SMOG, EFFECT_POISON_HIT, 20, POISON, 70, 20, 40 + move SLUDGE, EFFECT_POISON_HIT, 65, POISON, 100, 20, 30 + move BONE_CLUB, EFFECT_FLINCH_HIT, 65, GROUND, 85, 20, 10 + move FIRE_BLAST, EFFECT_BURN_HIT, 120, FIRE, 85, 5, 10 + move WATERFALL, EFFECT_NORMAL_HIT, 80, WATER, 100, 15, 0 + move CLAMP, EFFECT_TRAP_TARGET, 35, WATER, 75, 10, 0 + move SWIFT, EFFECT_ALWAYS_HIT, 60, NORMAL, 100, 20, 0 + move SKULL_BASH, EFFECT_SKULL_BASH, 100, NORMAL, 100, 15, 0 + move SPIKE_CANNON, EFFECT_MULTI_HIT, 20, NORMAL, 100, 15, 0 + move CONSTRICT, EFFECT_SPEED_DOWN_HIT, 10, NORMAL, 100, 35, 10 + move AMNESIA, EFFECT_SP_DEF_UP_2, 0, PSYCHIC, 100, 20, 0 + move KINESIS, EFFECT_ACCURACY_DOWN, 0, PSYCHIC, 80, 15, 0 + move SOFTBOILED, EFFECT_HEAL, 0, NORMAL, 100, 10, 0 + move HI_JUMP_KICK, EFFECT_JUMP_KICK, 85, FIGHTING, 90, 20, 0 + move GLARE, EFFECT_PARALYZE, 0, NORMAL, 75, 30, 0 + move DREAM_EATER, EFFECT_DREAM_EATER, 100, PSYCHIC, 100, 15, 0 + move POISON_GAS, EFFECT_POISON, 0, POISON, 55, 40, 0 + move BARRAGE, EFFECT_MULTI_HIT, 15, NORMAL, 85, 20, 0 + move LEECH_LIFE, EFFECT_LEECH_HIT, 20, BUG, 100, 15, 0 + move LOVELY_KISS, EFFECT_SLEEP, 0, NORMAL, 75, 10, 0 + move SKY_ATTACK, EFFECT_SKY_ATTACK, 140, FLYING, 90, 5, 0 + move TRANSFORM, EFFECT_TRANSFORM, 0, NORMAL, 100, 10, 0 + move BUBBLE, EFFECT_SPEED_DOWN_HIT, 20, WATER, 100, 30, 10 + move DIZZY_PUNCH, EFFECT_CONFUSE_HIT, 70, NORMAL, 100, 10, 20 + move SPORE, EFFECT_SLEEP, 0, GRASS, 100, 15, 0 + move FLASH, EFFECT_ACCURACY_DOWN, 0, NORMAL, 70, 20, 0 + move PSYWAVE, EFFECT_PSYWAVE, 1, PSYCHIC, 80, 15, 0 + move SPLASH, EFFECT_SPLASH, 0, NORMAL, 100, 40, 0 + move ACID_ARMOR, EFFECT_DEFENSE_UP_2, 0, POISON, 100, 40, 0 + move CRABHAMMER, EFFECT_NORMAL_HIT, 90, WATER, 85, 10, 0 + move EXPLOSION, EFFECT_SELFDESTRUCT, 250, NORMAL, 100, 5, 0 + move FURY_SWIPES, EFFECT_MULTI_HIT, 18, NORMAL, 80, 15, 0 + move BONEMERANG, EFFECT_DOUBLE_HIT, 50, GROUND, 90, 10, 0 + move REST, EFFECT_HEAL, 0, PSYCHIC, 100, 10, 0 + move ROCK_SLIDE, EFFECT_FLINCH_HIT, 75, ROCK, 90, 10, 30 + move HYPER_FANG, EFFECT_FLINCH_HIT, 80, NORMAL, 90, 15, 10 + move SHARPEN, EFFECT_ATTACK_UP, 0, NORMAL, 100, 30, 0 + move CONVERSION, EFFECT_CONVERSION, 0, NORMAL, 100, 30, 0 + move TRI_ATTACK, EFFECT_TRI_ATTACK, 80, NORMAL, 100, 10, 20 + move SUPER_FANG, EFFECT_SUPER_FANG, 1, NORMAL, 90, 10, 0 + move SLASH, EFFECT_NORMAL_HIT, 70, NORMAL, 100, 20, 0 + move SUBSTITUTE, EFFECT_SUBSTITUTE, 0, NORMAL, 100, 10, 0 + move STRUGGLE, EFFECT_RECOIL_HIT, 50, NORMAL, 100, 1, 0 + move SKETCH, EFFECT_SKETCH, 0, NORMAL, 100, 1, 0 + move TRIPLE_KICK, EFFECT_TRIPLE_KICK, 10, FIGHTING, 90, 10, 0 + move THIEF, EFFECT_THIEF, 40, DARK, 100, 10, 100 + move SPIDER_WEB, EFFECT_MEAN_LOOK, 0, BUG, 100, 10, 0 + move MIND_READER, EFFECT_LOCK_ON, 0, NORMAL, 100, 5, 0 + move NIGHTMARE, EFFECT_NIGHTMARE, 0, GHOST, 100, 15, 0 + move FLAME_WHEEL, EFFECT_FLAME_WHEEL, 60, FIRE, 100, 25, 10 + move SNORE, EFFECT_SNORE, 40, NORMAL, 100, 15, 30 + move CURSE, EFFECT_CURSE, 0, CURSE_T, 100, 10, 0 + move FLAIL, EFFECT_REVERSAL, 1, NORMAL, 100, 15, 0 + move CONVERSION2, EFFECT_CONVERSION2, 0, NORMAL, 100, 30, 0 + move AEROBLAST, EFFECT_NORMAL_HIT, 100, FLYING, 95, 5, 0 + move COTTON_SPORE, EFFECT_SPEED_DOWN_2, 0, GRASS, 85, 40, 0 + move REVERSAL, EFFECT_REVERSAL, 1, FIGHTING, 100, 15, 0 + move SPITE, EFFECT_SPITE, 0, GHOST, 100, 10, 0 + move POWDER_SNOW, EFFECT_FREEZE_HIT, 40, ICE, 100, 25, 10 + move PROTECT, EFFECT_PROTECT, 0, NORMAL, 100, 10, 0 + move MACH_PUNCH, EFFECT_PRIORITY_HIT, 40, FIGHTING, 100, 30, 0 + move SCARY_FACE, EFFECT_SPEED_DOWN_2, 0, NORMAL, 90, 10, 0 + move FAINT_ATTACK, EFFECT_ALWAYS_HIT, 60, DARK, 100, 20, 0 + move SWEET_KISS, EFFECT_CONFUSE, 0, NORMAL, 75, 10, 0 + move BELLY_DRUM, EFFECT_BELLY_DRUM, 0, NORMAL, 100, 10, 0 + move SLUDGE_BOMB, EFFECT_POISON_HIT, 90, POISON, 100, 10, 30 + move MUD_SLAP, EFFECT_ACCURACY_DOWN_HIT, 20, GROUND, 100, 10, 100 + move OCTAZOOKA, EFFECT_ACCURACY_DOWN_HIT, 65, WATER, 85, 10, 50 + move SPIKES, EFFECT_SPIKES, 0, GROUND, 100, 20, 0 + move ZAP_CANNON, EFFECT_PARALYZE_HIT, 100, ELECTRIC, 50, 5, 100 + move FORESIGHT, EFFECT_FORESIGHT, 0, NORMAL, 100, 40, 0 + move DESTINY_BOND, EFFECT_DESTINY_BOND, 0, GHOST, 100, 5, 0 + move PERISH_SONG, EFFECT_PERISH_SONG, 0, NORMAL, 100, 5, 0 + move ICY_WIND, EFFECT_SPEED_DOWN_HIT, 55, ICE, 95, 15, 100 + move DETECT, EFFECT_PROTECT, 0, FIGHTING, 100, 5, 0 + move BONE_RUSH, EFFECT_MULTI_HIT, 25, GROUND, 80, 10, 0 + move LOCK_ON, EFFECT_LOCK_ON, 0, NORMAL, 100, 5, 0 + move OUTRAGE, EFFECT_RAMPAGE, 90, DRAGON, 100, 15, 0 + move SANDSTORM, EFFECT_SANDSTORM, 0, ROCK, 100, 10, 0 + move GIGA_DRAIN, EFFECT_LEECH_HIT, 60, GRASS, 100, 5, 0 + move ENDURE, EFFECT_ENDURE, 0, NORMAL, 100, 10, 0 + move CHARM, EFFECT_ATTACK_DOWN_2, 0, NORMAL, 100, 20, 0 + move ROLLOUT, EFFECT_ROLLOUT, 30, ROCK, 90, 20, 0 + move FALSE_SWIPE, EFFECT_FALSE_SWIPE, 40, NORMAL, 100, 40, 0 + move SWAGGER, EFFECT_SWAGGER, 0, NORMAL, 90, 15, 100 + move MILK_DRINK, EFFECT_HEAL, 0, NORMAL, 100, 10, 0 + move SPARK, EFFECT_PARALYZE_HIT, 65, ELECTRIC, 100, 20, 30 + move FURY_CUTTER, EFFECT_FURY_CUTTER, 10, BUG, 95, 20, 0 + move STEEL_WING, EFFECT_DEFENSE_UP_HIT, 70, STEEL, 90, 25, 10 + move MEAN_LOOK, EFFECT_MEAN_LOOK, 0, NORMAL, 100, 5, 0 + move ATTRACT, EFFECT_ATTRACT, 0, NORMAL, 100, 15, 0 + move SLEEP_TALK, EFFECT_SLEEP_TALK, 0, NORMAL, 100, 10, 0 + move HEAL_BELL, EFFECT_HEAL_BELL, 0, NORMAL, 100, 5, 0 + move RETURN, EFFECT_RETURN, 1, NORMAL, 100, 20, 0 + move PRESENT, EFFECT_PRESENT, 1, NORMAL, 90, 15, 0 + move FRUSTRATION, EFFECT_FRUSTRATION, 1, NORMAL, 100, 20, 0 + move SAFEGUARD, EFFECT_SAFEGUARD, 0, NORMAL, 100, 25, 0 + move PAIN_SPLIT, EFFECT_PAIN_SPLIT, 0, NORMAL, 100, 20, 0 + move SACRED_FIRE, EFFECT_SACRED_FIRE, 100, FIRE, 95, 5, 50 + move MAGNITUDE, EFFECT_MAGNITUDE, 1, GROUND, 100, 30, 0 + move DYNAMICPUNCH, EFFECT_CONFUSE_HIT, 100, FIGHTING, 50, 5, 100 + move MEGAHORN, EFFECT_NORMAL_HIT, 120, BUG, 85, 10, 0 + move DRAGONBREATH, EFFECT_PARALYZE_HIT, 60, DRAGON, 100, 20, 30 + move BATON_PASS, EFFECT_BATON_PASS, 0, NORMAL, 100, 40, 0 + move ENCORE, EFFECT_ENCORE, 0, NORMAL, 100, 5, 0 + move PURSUIT, EFFECT_PURSUIT, 40, DARK, 100, 20, 0 + move RAPID_SPIN, EFFECT_RAPID_SPIN, 20, NORMAL, 100, 40, 0 + move SWEET_SCENT, EFFECT_EVASION_DOWN, 0, NORMAL, 100, 20, 0 + move IRON_TAIL, EFFECT_DEFENSE_DOWN_HIT, 100, STEEL, 75, 15, 30 + move METAL_CLAW, EFFECT_ATTACK_UP_HIT, 50, STEEL, 95, 35, 10 + move VITAL_THROW, EFFECT_ALWAYS_HIT, 70, FIGHTING, 100, 10, 0 + move MORNING_SUN, EFFECT_MORNING_SUN, 0, NORMAL, 100, 5, 0 + move SYNTHESIS, EFFECT_SYNTHESIS, 0, GRASS, 100, 5, 0 + move MOONLIGHT, EFFECT_MOONLIGHT, 0, NORMAL, 100, 5, 0 + move HIDDEN_POWER, EFFECT_HIDDEN_POWER, 1, NORMAL, 100, 15, 0 + move CROSS_CHOP, EFFECT_NORMAL_HIT, 100, FIGHTING, 80, 5, 0 + move TWISTER, EFFECT_TWISTER, 40, DRAGON, 100, 20, 20 + move RAIN_DANCE, EFFECT_RAIN_DANCE, 0, WATER, 90, 5, 0 + move SUNNY_DAY, EFFECT_SUNNY_DAY, 0, FIRE, 90, 5, 0 + move CRUNCH, EFFECT_SP_DEF_DOWN_HIT, 80, DARK, 100, 15, 20 + move MIRROR_COAT, EFFECT_MIRROR_COAT, 1, PSYCHIC, 100, 20, 0 + move PSYCH_UP, EFFECT_PSYCH_UP, 0, NORMAL, 100, 10, 0 + move EXTREMESPEED, EFFECT_PRIORITY_HIT, 80, NORMAL, 100, 5, 0 + move ANCIENTPOWER, EFFECT_ALL_UP_HIT, 60, ROCK, 100, 5, 10 + move SHADOW_BALL, EFFECT_SP_DEF_DOWN_HIT, 80, GHOST, 100, 15, 20 + move FUTURE_SIGHT, EFFECT_FUTURE_SIGHT, 80, PSYCHIC, 90, 15, 0 + move ROCK_SMASH, EFFECT_DEFENSE_DOWN_HIT, 20, FIGHTING, 100, 15, 50 + move WHIRLPOOL, EFFECT_TRAP_TARGET, 15, WATER, 70, 15, 0 + move BEAT_UP, EFFECT_BEAT_UP, 10, DARK, 100, 10, 0 diff --git a/data/moves/tmhm_moves.asm b/data/moves/tmhm_moves.asm new file mode 100644 index 000000000..fea29780c --- /dev/null +++ b/data/moves/tmhm_moves.asm @@ -0,0 +1,66 @@ +TMHMMoves: ; 1167a +; TMs + db DYNAMICPUNCH + db HEADBUTT + db CURSE + db ROLLOUT + db ROAR + db TOXIC + db ZAP_CANNON + db ROCK_SMASH + db PSYCH_UP + db HIDDEN_POWER + db SUNNY_DAY + db SWEET_SCENT + db SNORE + db BLIZZARD + db HYPER_BEAM + db ICY_WIND + db PROTECT + db RAIN_DANCE + db GIGA_DRAIN + db ENDURE + db FRUSTRATION + db SOLARBEAM + db IRON_TAIL + db DRAGONBREATH + db THUNDER + db EARTHQUAKE + db RETURN + db DIG + db PSYCHIC_M + db SHADOW_BALL + db MUD_SLAP + db DOUBLE_TEAM + db ICE_PUNCH + db SWAGGER + db SLEEP_TALK + db SLUDGE_BOMB + db SANDSTORM + db FIRE_BLAST + db SWIFT + db DEFENSE_CURL + db THUNDERPUNCH + db DREAM_EATER + db DETECT + db REST + db ATTRACT + db THIEF + db STEEL_WING + db FIRE_PUNCH + db FURY_CUTTER + db NIGHTMARE +; HMs + db CUT + db FLY + db SURF + db STRENGTH + db FLASH + db WHIRLPOOL + db WATERFALL +; Move tutor + db FLAMETHROWER + db THUNDERBOLT + db ICE_BEAM + db 0 ; end +; 116b7 |
