diff options
author | Diegoisawesome <diego@domoreaweso.me> | 2017-11-29 00:52:32 -0600 |
---|---|---|
committer | Diegoisawesome <diego@domoreaweso.me> | 2017-11-29 00:52:32 -0600 |
commit | 70743f4b951bb84ca33fd2151e55b2f5018eb6c5 (patch) | |
tree | 7298959f4e81c88adeac0c26b9016b9d197da1fd /data | |
parent | 52624c4fb7c145c33a2d0edc1d64b2d6e09c1336 (diff) | |
parent | 54da96309186b98263b4434911e1c5b8d4b4e3ec (diff) |
Merge branch 'master' of https://github.com/pret/pokeemerald
Diffstat (limited to 'data')
-rw-r--r-- | data/battle_scripts_1.s | 5166 | ||||
-rw-r--r-- | data/battle_scripts_2.s | 257 | ||||
-rw-r--r-- | data/graphics.s | 2 | ||||
-rw-r--r-- | data/link.s | 20 | ||||
-rw-r--r-- | data/scripts/field_move_scripts.inc | 2 | ||||
-rw-r--r-- | data/scripts/maps/SeafloorCavern_Room9.inc | 2 | ||||
-rw-r--r-- | data/scripts/maps/SootopolisCity.inc | 4 | ||||
-rw-r--r-- | data/scripts/pokeblocks.inc | 16 | ||||
-rw-r--r-- | data/specials.inc | 6 | ||||
-rw-r--r-- | data/unk_81BAD84.s | 7 | ||||
-rw-r--r-- | data/wild_encounter.s | 8 |
11 files changed, 4802 insertions, 688 deletions
diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index b2dfec5d8..0be60d109 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -1,586 +1,4592 @@ .include "asm/macros.inc" + .include "asm/macros/battle_script.inc" .include "constants/constants.inc" + .include "constants/battle_constants.inc" + .include "constants/battle_script_constants.inc" + .include "constants/battle_text.inc" .section script_data, "aw", %progbits gBattleScriptsForMoveEffects:: @ 82D86A8 - .incbin "baserom.gba", 0x2d86a8, 0x388 - -BattleScript_PresentDamageTarget:: @ 82D8A30 - .incbin "baserom.gba", 0x2d8a30, 0x1e - -BattleScript_MoveEnd:: @ 82D8A4E - .incbin "baserom.gba", 0x2d8a4e, 0x12 - -BattleScript_PauseEffectivenessSoundResultMsgEndMove:: @ 82D8A60 - .incbin "baserom.gba", 0x2d8a60, 0x274 - -BattleScript_StatUp:: @ 82D8CD4 - .incbin "baserom.gba", 0x2d8cd4, 0x91 - -BattleScript_StatDown:: @ 82D8D65 - .incbin "baserom.gba", 0x2d8d65, 0x6fd - -BattleScript_MoveUsedMustRecharge:: @ 82D9462 - .incbin "baserom.gba", 0x2d9462, 0xa7f - -BattleScript_PresentHealTarget:: @ 82D9EE1 - .incbin "baserom.gba", 0x2d9ee1, 0x1a - -BattleScript_AlreadyAtFullHp:: @ 82D9EFB - .incbin "baserom.gba", 0x2d9efb, 0x21 - -BattleScript_ButItFailed:: @ 82D9F1C - .incbin "baserom.gba", 0x2d9f1c, 0x88e - -BattleScript_FaintAttacker:: @ 82DA7AA - .incbin "baserom.gba", 0x2da7aa, 0xd - -BattleScript_FaintTarget:: @ 82DA7B7 - .incbin "baserom.gba", 0x2da7b7, 0xd - -gUnknown_082DA7C4:: @ 82DA7C4 - .incbin "baserom.gba", 0x2da7c4, 0x9 - -gUnknown_082DA7CD:: @ 82DA7CD - .incbin "baserom.gba", 0x2da7cd, 0x160 - -BattleScript_LocalTrainerBattleWon:: @ 82DA92D - .incbin "baserom.gba", 0x2da92d, 0x3d - -BattleScript_PayDayMoneyAndPickUpItems:: @ 82DA96A - .incbin "baserom.gba", 0x2da96a, 0x3 - -BattleScript_LocalBattleLost:: @ 82DA96D - .incbin "baserom.gba", 0x2da96d, 0x9e - -gUnknown_082DAA0B:: @ 82DAA0B - .incbin "baserom.gba", 0x2daa0b, 0x2a - -BattleScript_LinkBattleWonOrLost:: @ 82DAA35 - .incbin "baserom.gba", 0x2daa35, 0x52 - -BattleScript_FrontierTrainerBattleWon:: @ 82DAA87 - .incbin "baserom.gba", 0x2daa87, 0x54 - -BattleScript_SmokeBallEscape:: @ 82DAADB - .incbin "baserom.gba", 0x2daadb, 0xe - -BattleScript_RanAwayUsingMonAbility:: @ 82DAAE9 - .incbin "baserom.gba", 0x2daae9, 0x7 - -BattleScript_GotAwaySafely:: @ 82DAAF0 - .incbin "baserom.gba", 0x2daaf0, 0x7 - -BattleScript_WildMonFled:: @ 82DAAF7 - .incbin "baserom.gba", 0x2daaf7, 0x7 - -gUnknown_082DAAFE:: @ 82DAAFE - .incbin "baserom.gba", 0x2daafe, 0x4 - -BattleScript_PrintFailedToRunString:: @ 82DAB02 - .incbin "baserom.gba", 0x2dab02, 0x9 - -gUnknown_082DAB0B:: @ 82DAB0B - .incbin "baserom.gba", 0x2dab0b, 0x6 - -gUnknown_082DAB11:: @ 82DAB11 - .incbin "baserom.gba", 0x2dab11, 0x4 - -BattleScript_ActionSwitch:: @ 82DAB15 - .incbin "baserom.gba", 0x2dab15, 0xa4 - -BattleScript_Pausex20:: @ 82DABB9 - .incbin "baserom.gba", 0x2dabb9, 0x4 - -BattleScript_LevelUp:: @ 82DABBD - .incbin "baserom.gba", 0x2dabbd, 0x6f - -gUnknown_082DAC2C:: @ 82DAC2C - .incbin "baserom.gba", 0x2dac2c, 0x1b - -gUnknown_082DAC47:: @ 82DAC47 - .incbin "baserom.gba", 0x2dac47, 0x82 - -gUnknown_082DACC9:: @ 82DACC9 - .incbin "baserom.gba", 0x2dacc9, 0x9 - -gUnknown_082DACD2:: @ 82DACD2 - .incbin "baserom.gba", 0x2dacd2, 0xe - -gUnknown_082DACE0:: @ 82DACE0 - .incbin "baserom.gba", 0x2dace0, 0x7 - -gUnknown_082DACE7:: @ 82DACE7 - .incbin "baserom.gba", 0x2dace7, 0x13 - -gUnknown_082DACFA:: @ 82DACFA - .incbin "baserom.gba", 0x2dacfa, 0x11 - -gUnknown_082DAD0B:: @ 82DAD0B - .incbin "baserom.gba", 0x2dad0b, 0xa - -BattleScript_LeechSeedTurnDrain:: @ 82DAD15 - .incbin "baserom.gba", 0x2dad15, 0x5c - -BattleScript_BideStoringEnergy:: @ 82DAD71 - .incbin "baserom.gba", 0x2dad71, 0xb - -BattleScript_BideAttack:: @ 82DAD7C - .incbin "baserom.gba", 0x2dad7c, 0x48 - -BattleScript_BideNoEnergyToAttack:: @ 82DADC4 - .incbin "baserom.gba", 0x2dadc4, 0x14 - -gUnknown_082DADD8:: @ 82DADD8 - .incbin "baserom.gba", 0x2dadd8, 0x2b - -BattleScript_MistProtected:: @ 82DAE03 - .incbin "baserom.gba", 0x2dae03, 0xa - -BattleScript_RageIsBuilding:: @ 82DAE0D - .incbin "baserom.gba", 0x2dae0d, 0x7 - -BattleScript_MoveUsedIsDisabled:: @ 82DAE14 - .incbin "baserom.gba", 0x2dae14, 0xb - -gUnknown_082DAE1F:: @ 82DAE1F - .incbin "baserom.gba", 0x2dae1f, 0x4 - -BattleScript_DisabledNoMore:: @ 82DAE23 - .incbin "baserom.gba", 0x2dae23, 0x7 - -gUnknown_082DAE2A:: @ 82DAE2A - .incbin "baserom.gba", 0x2dae2a, 0xd - -BattleScript_EncoredNoMore:: @ 82DAE37 - .incbin "baserom.gba", 0x2dae37, 0x7 - -BattleScript_DestinyBondTakesLife:: @ 82DAE3E - .incbin "baserom.gba", 0x2dae3e, 0x1b - -gUnknown_082DAE59:: @ 82DAE59 - .incbin "baserom.gba", 0x2dae59, 0x37 - -gUnknown_082DAE90:: @ 82DAE90 - .incbin "baserom.gba", 0x2dae90, 0x37 - -gUnknown_082DAEC7:: @ 82DAEC7 - .incbin "baserom.gba", 0x2daec7, 0x3e - -gUnknown_082DAF05:: @ 82DAF05 - .incbin "baserom.gba", 0x2daf05, 0x1b - -gUnknown_082DAF20:: @ 82DAF20 - .incbin "baserom.gba", 0x2daf20, 0x7 - -BattleScript_AllStatsUp:: @ 82DAF27 - .incbin "baserom.gba", 0x2daf27, 0x9c - -BattleScript_RapidSpinAway:: @ 82DAFC3 - .incbin "baserom.gba", 0x2dafc3, 0x2 - -BattleScript_WrapFree:: @ 82DAFC5 - .incbin "baserom.gba", 0x2dafc5, 0x11 - -BattleScript_LeechSeedFree:: @ 82DAFD6 - .incbin "baserom.gba", 0x2dafd6, 0x7 - -BattleScript_SpikesFree:: @ 82DAFDD - .incbin "baserom.gba", 0x2dafdd, 0x7 - -gUnknown_082DAFE4:: @ 82DAFE4 - .incbin "baserom.gba", 0x2dafe4, 0x8e - -BattleScript_NoMovesLeft:: @ 82DB072 - .incbin "baserom.gba", 0x2db072, 0x4 - -gUnknown_082DB076:: @ 82DB076 - .incbin "baserom.gba", 0x2db076, 0x4 - -BattleScript_NoPPForMove:: @ 82DB07A - .incbin "baserom.gba", 0x2db07a, 0xf - -gUnknown_082DB089:: @ 82DB089 - .incbin "baserom.gba", 0x2db089, 0xf - -gUnknown_082DB098:: @ 82DB098 - .incbin "baserom.gba", 0x2db098, 0x8 - -gUnknown_082DB0A0:: @ 82DB0A0 - .incbin "baserom.gba", 0x2db0a0, 0x4 - -BattleScript_MoveUsedIsTaunted:: @ 82DB0A4 - .incbin "baserom.gba", 0x2db0a4, 0xb - -gUnknown_082DB0AF:: @ 82DB0AF - .incbin "baserom.gba", 0x2db0af, 0x8 - -BattleScript_WishComesTrue:: @ 82DB0B7 - .incbin "baserom.gba", 0x2db0b7, 0x37 - -BattleScript_IngrainTurnHeal:: @ 82DB0EE - .incbin "baserom.gba", 0x2db0ee, 0x29 - -BattleScript_AtkDefDown:: @ 82DB117 - .incbin "baserom.gba", 0x2db117, 0x51 - -BattleScript_KnockedOff:: @ 82DB168 - .incbin "baserom.gba", 0x2db168, 0xe - -BattleScript_MoveUsedIsImprisoned:: @ 82DB176 - .incbin "baserom.gba", 0x2db176, 0xb - -gUnknown_082DB181:: @ 82DB181 - .incbin "baserom.gba", 0x2db181, 0x4 - -gUnknown_082DB185:: @ 82DB185 - .incbin "baserom.gba", 0x2db185, 0x8 - -BattleScript_GrudgeTakesPp:: @ 82DB18D - .incbin "baserom.gba", 0x2db18d, 0x7 - -BattleScript_MagicCoatBounce:: @ 82DB194 - .incbin "baserom.gba", 0x2db194, 0x18 - -BattleScript_SnatchedMove:: @ 82DB1AC - .incbin "baserom.gba", 0x2db1ac, 0x1b - -BattleScript_EnduredMsg:: @ 82DB1C7 - .incbin "baserom.gba", 0x2db1c7, 0x7 - -BattleScript_OneHitKOMsg:: @ 82DB1CE - .incbin "baserom.gba", 0x2db1ce, 0x7 - -BattleScript_SAtkDown2:: @ 82DB1D5 - .incbin "baserom.gba", 0x2db1d5, 0x2a - -BattleScript_FocusPunchSetUp:: @ 82DB1FF - .incbin "baserom.gba", 0x2db1ff, 0x14 - -BattleScript_MoveUsedIsAsleep:: @ 82DB213 - .incbin "baserom.gba", 0x2db213, 0xd - -BattleScript_MoveUsedWokeUp:: @ 82DB220 - .incbin "baserom.gba", 0x2db220, 0x14 - -gUnknown_082DB234:: @ 82DB234 - .incbin "baserom.gba", 0x2db234, 0x9 - -BattleScript_PoisonTurnDmg:: @ 82DB23D - .incbin "baserom.gba", 0x2db23d, 0x22 - -BattleScript_BurnTurnDmg:: @ 82DB25F - .incbin "baserom.gba", 0x2db25f, 0xb - -BattleScript_MoveUsedIsFrozen:: @ 82DB26A - .incbin "baserom.gba", 0x2db26a, 0xd - -BattleScript_MoveUsedUnfroze:: @ 82DB277 - .incbin "baserom.gba", 0x2db277, 0xb - -BattleScript_DefrostedViaFireMove:: @ 82DB282 - .incbin "baserom.gba", 0x2db282, 0x9 - -BattleScript_MoveUsedIsParalyzed:: @ 82DB28B - .incbin "baserom.gba", 0x2db28b, 0x10 - -BattleScript_MoveUsedFlinched:: @ 82DB29B - .incbin "baserom.gba", 0x2db29b, 0xb - -gUnknown_082DB2A6:: @ 82DB2A6 - .incbin "baserom.gba", 0x2db2a6, 0x9 - -BattleScript_ThrashConfuses:: @ 82DB2AF - .incbin "baserom.gba", 0x2db2af, 0xe - -BattleScript_MoveUsedIsConfused:: @ 82DB2BD - .incbin "baserom.gba", 0x2db2bd, 0x43 - -BattleScript_MoveUsedIsConfusedNoMore:: @ 82DB300 - .incbin "baserom.gba", 0x2db300, 0x7 - -BattleScript_PrintPayDayMoneyString:: @ 82DB307 - .incbin "baserom.gba", 0x2db307, 0x7 - -BattleScript_WrapTurnDmg:: @ 82DB30E - .incbin "baserom.gba", 0x2db30e, 0x12 - -BattleScript_WrapEnds:: @ 82DB320 - .incbin "baserom.gba", 0x2db320, 0x7 - -BattleScript_MoveUsedIsInLove:: @ 82DB327 - .incbin "baserom.gba", 0x2db327, 0xd - -BattleScript_MoveUsedIsParalyzedCantAttack:: @ 82DB334 - .incbin "baserom.gba", 0x2db334, 0xb - -BattleScript_NightmareTurnDmg:: @ 82DB33F - .incbin "baserom.gba", 0x2db33f, 0x11 - -BattleScript_CurseTurnDmg:: @ 82DB350 - .incbin "baserom.gba", 0x2db350, 0x11 - -BattleScript_TargetPRLZHeal:: @ 82DB361 - .incbin "baserom.gba", 0x2db361, 0x9 - -BattleScript_MoveEffectSleep:: @ 82DB36A - .incbin "baserom.gba", 0x2db36A, 0xE - -BattleScript_YawnMakesAsleep:: @ 82DB378 - .incbin "baserom.gba", 0x2db378, 0xE - -BattleScript_MoveEffectPoison:: @ 82DB386 - .incbin "baserom.gba", 0x2db386, 0xF - -BattleScript_MoveEffectBurn:: @ 82DB395 - .incbin "baserom.gba", 0x2db395, 0xF - -BattleScript_MoveEffectFreeze:: @ 82DB3A4 - .incbin "baserom.gba", 0x2db3A4, 0xF - -BattleScript_MoveEffectParalysis:: @ 82DB3B3 - .incbin "baserom.gba", 0x2db3B3, 0xF - -BattleScript_MoveEffectUproar:: @ 82DB3C2 - .incbin "baserom.gba", 0x2db3C2, 0x7 - -BattleScript_MoveEffectToxic:: @ 82DB3C9 - .incbin "baserom.gba", 0x2db3C9, 0xD - -BattleScript_MoveEffectPayDay:: @ 82DB3D6 - .incbin "baserom.gba", 0x2db3D6, 0x7 - -BattleScript_MoveEffectWrap:: @ 82DB3DD - .incbin "baserom.gba", 0x2db3DD, 0x9 - -BattleScript_MoveEffectConfusion:: @ 82DB3E6 - .incbin "baserom.gba", 0x2db3E6, 0xE - -BattleScript_MoveEffectRecoil33:: @ 82DB3F4 - .incbin "baserom.gba", 0x2db3F4, 0x2e - -BattleScript_ItemSteal:: @ 82DB422 - .incbin "baserom.gba", 0x2db422, 0xe - -BattleScript_DrizzleActivates:: @ 82DB430 - .incbin "baserom.gba", 0x2db430, 0x14 - -BattleScript_SpeedBoostActivates:: @ 82DB444 - .incbin "baserom.gba", 0x2db444, 0xe - -BattleScript_TraceActivates:: @ 82DB452 - .incbin "baserom.gba", 0x2db452, 0xa - -BattleScript_RainDishActivates:: @ 82DB45C - .incbin "baserom.gba", 0x2db45c, 0x14 - -BattleScript_SandstreamActivates:: @ 82DB470 - .incbin "baserom.gba", 0x2db470, 0x14 - -BattleScript_ShedSkinActivates:: @ 82DB484 - .incbin "baserom.gba", 0x2db484, 0x25 - -BattleScript_CastformChange:: @ 82DB4A9 - .incbin "baserom.gba", 0x2db4a9, 0xf - -gUnknown_082DB4B8:: @ 82DB4B8 - .incbin "baserom.gba", 0x2db4b8, 0x9 - -gUnknown_082DB4C1:: @ 82DB4C1 - .incbin "baserom.gba", 0x2db4c1, 0x69 - -BattleScript_DroughtActivates:: @ 82DB52A - .incbin "baserom.gba", 0x2db52a, 0x14 - -BattleScript_TookAttack:: @ 82DB53E - .incbin "baserom.gba", 0x2db53e, 0x14 - -BattleScript_SturdyPreventsOHKO:: @ 82DB552 - .incbin "baserom.gba", 0x2db552, 0xe - -BattleScript_DampStopsExplosion:: @ 82DB560 - .incbin "baserom.gba", 0x2db560, 0xe - -BattleScript_MoveHPDrain_PPLoss:: @ 82DB56E - .incbin "baserom.gba", 0x2db56e, 0x1 - -BattleScript_MoveHPDrain:: @ 82DB56F - .incbin "baserom.gba", 0x2db56f, 0x22 - -gUnknown_082DB591:: @ 82DB591 - .incbin "baserom.gba", 0x2db591, 0x1 - -gUnknown_082DB592:: @ 82DB592 - .incbin "baserom.gba", 0x2db592, 0x15 - -BattleScript_FlashFireBoost_PPLoss:: @ 82DB5A7 - .incbin "baserom.gba", 0x2db5a7, 0x1 - -BattleScript_FlashFireBoost:: @ 82DB5A8 - .incbin "baserom.gba", 0x2db5a8, 0x1f - -BattleScript_AbilityNoStatLoss:: @ 82DB5C7 - .incbin "baserom.gba", 0x2db5c7, 0xa - -BattleScript_BRNPrevention:: @ 82DB5D1 - .incbin "baserom.gba", 0x2db5d1, 0xc - -BattleScript_PRLZPrevention:: @ 82DB5DD - .incbin "baserom.gba", 0x2db5dd, 0xc - -BattleScript_PSNPrevention:: @ 82DB5E9 - .incbin "baserom.gba", 0x2db5e9, 0xc - -BattleScript_ObliviousPreventsAttraction:: @ 82DB5F5 - .incbin "baserom.gba", 0x2db5f5, 0xe - -BattleScript_FlinchPrevention:: @ 82DB603 - .incbin "baserom.gba", 0x2db603, 0x1c - -BattleScript_SoundproofProtected:: @ 82DB61F - .incbin "baserom.gba", 0x2db61f, 0x10 - -BattleScript_AbilityNoSpecificStatLoss:: @ 82DB62F - .incbin "baserom.gba", 0x2db62f, 0x10 - -BattleScript_StickyHoldActivates:: @ 82DB63F - .incbin "baserom.gba", 0x2db63f, 0xe - -BattleScript_ColorChangeActivates:: @ 82DB64D - .incbin "baserom.gba", 0x2db64d, 0x7 - -BattleScript_RoughSkinActivates:: @ 82DB654 - .incbin "baserom.gba", 0x2db654, 0x1b - -BattleScript_CuteCharmActivates:: @ 82DB66F - .incbin "baserom.gba", 0x2db66f, 0xd - -BattleScript_ApplySecondaryEffect:: @ 82DB67C - .incbin "baserom.gba", 0x2db67c, 0x3 - -BattleScript_SynchronizeActivates:: @ 82DB67F - .incbin "baserom.gba", 0x2db67f, 0x3 - -BattleScript_NoItemSteal:: @ 82DB682 - .incbin "baserom.gba", 0x2db682, 0xa - -gUnknown_082DB68C:: @ 82DB68C - .incbin "baserom.gba", 0x2db68c, 0x9 - -gUnknown_082DB695:: @ 82DB695 - .incbin "baserom.gba", 0x2db695, 0x10 - -gUnknown_082DB6A5:: @ 82DB6A5 - .incbin "baserom.gba", 0x2db6a5, 0x8 - -BattleScript_MoveUsedLoafingAround:: @ 82DB6AD - .incbin "baserom.gba", 0x2db6ad, 0x2c - -gUnknown_082DB6D9:: @ 82DB6D9 - .incbin "baserom.gba", 0x2db6d9, 0x17 - -gUnknown_082DB6F0:: @ 82DB6F0 - .incbin "baserom.gba", 0x2db6f0, 0xb - -BattleScript_SubstituteFade:: @ 82DB6FB - .incbin "baserom.gba", 0x2db6fb, 0xb - -BattleScript_BerryCurePrlzEnd2:: @ 82DB706 - .incbin "baserom.gba", 0x2db706, 0x6 - -BattleScript_BerryCureParRet:: @ 82DB70C - .incbin "baserom.gba", 0x2db70c, 0x12 - -BattleScript_BerryCurePsnEnd2:: @ 82DB71E - .incbin "baserom.gba", 0x2db71e, 0x6 - -BattleScript_BerryCurePsnRet:: @ 82DB724 - .incbin "baserom.gba", 0x2db724, 0x12 - -BattleScript_BerryCureBrnEnd2:: @ 82DB736 - .incbin "baserom.gba", 0x2db736, 0x6 - -BattleScript_BerryCureBrnRet:: @ 82DB73C - .incbin "baserom.gba", 0x2db73c, 0x12 - -BattleScript_BerryCureFrzEnd2:: @ 82DB74E - .incbin "baserom.gba", 0x2db74e, 0x6 - -BattleScript_BerryCureFrzRet:: @ 82DB754 - .incbin "baserom.gba", 0x2db754, 0x12 - -BattleScript_BerryCureSlpEnd2:: @ 82DB766 - .incbin "baserom.gba", 0x2db766, 0x6 - -BattleScript_BerryCureSlpRet:: @ 82DB76C - .incbin "baserom.gba", 0x2db76c, 0x12 - -BattleScript_BerryCureConfusionEnd2:: @ 82DB77E - .incbin "baserom.gba", 0x2db77e, 0x6 - -BattleScript_BerryCureConfusionRet:: @ 82DB784 - .incbin "baserom.gba", 0x2db784, 0x10 - -BattleScript_BerryCureChosenStatusEnd2:: @ 82DB794 - .incbin "baserom.gba", 0x2db794, 0x6 - -BattleScript_BerryCureChosenStatusRet:: @ 82DB79A - .incbin "baserom.gba", 0x2db79a, 0x14 - -BattleScript_WhiteHerbEnd2:: @ 82DB7AE - .incbin "baserom.gba", 0x2db7ae, 0x6 - -BattleScript_WhiteHerbRet:: @ 82DB7B4 - .incbin "baserom.gba", 0x2db7b4, 0x10 - -BattleScript_ItemHealHP_RemoveItem:: @ 82DB7C4 - .incbin "baserom.gba", 0x2db7c4, 0x1d - -BattleScript_BerryPPHealEnd2:: @ 82DB7E1 - .incbin "baserom.gba", 0x2db7e1, 0x10 - -BattleScript_ItemHealHP_End2:: @ 82DB7F1 - .incbin "baserom.gba", 0x2db7f1, 0x6 - -BattleScript_ItemHealHP_Ret:: @ 82DB7F7 - .incbin "baserom.gba", 0x2db7f7, 0x1b - -gUnknown_082DB812:: @ 82DB812 - .incbin "baserom.gba", 0x2db812, 0x4 - -BattleScript_HangedOnMsg:: @ 82DB816 - .incbin "baserom.gba", 0x2db816, 0xe - -BattleScript_BerryConfuseHealEnd2:: @ 82DB824 - .incbin "baserom.gba", 0x2db824, 0x2a - -BattleScript_BerryStatRaiseEnd2:: @ 82DB84E - .incbin "baserom.gba", 0x2db84e, 0x1b - -BattleScript_BerryFocusEnergyEnd2:: @ 82DB869 - .incbin "baserom.gba", 0x2db869, 0x10 - -BattleScript_ActionSelectionItemsCantBeUsed:: @ 82DB879 - .incbin "baserom.gba", 0x2db879, 0x4 - -gUnknown_082DB87D:: @ 82DB87D - .incbin "baserom.gba", 0x2db87d, 0x4 - -gUnknown_082DB881:: @ 82DB881 - .incbin "baserom.gba", 0x2db881, 0x3d - -gUnknown_082DB8BE:: @ 82DB8BE - .incbin "baserom.gba", 0x2db8be, 0x35 - -gUnknown_082DB8F3:: @ 82DB8F3 - .incbin "baserom.gba", 0x2db8f3, 0xc7 - -gUnknown_082DB9BA:: @ 82DB9BA - .incbin "baserom.gba", 0x2db9ba, 0x7 - -gUnknown_082DB9C1:: @ 82DB9C1 - .incbin "baserom.gba", 0x2db9c1, 0x7 - -gUnknown_082DB9C8:: @ 82DB9C8 - .incbin "baserom.gba", 0x2db9c8, 0xc + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectSleep + .4byte BattleScript_EffectPoisonHit + .4byte BattleScript_EffectAbsorb + .4byte BattleScript_EffectBurnHit + .4byte BattleScript_EffectFreezeHit + .4byte BattleScript_EffectParalyzeHit + .4byte BattleScript_EffectExplosion + .4byte BattleScript_EffectDreamEater + .4byte BattleScript_EffectMirrorMove + .4byte BattleScript_EffectAttackUp + .4byte BattleScript_EffectDefenseUp + .4byte BattleScript_EffectSpeedUp + .4byte BattleScript_EffectSpecialAttackUp + .4byte BattleScript_EffectSpecialDefenseUp + .4byte BattleScript_EffectAccuracyUp + .4byte BattleScript_EffectEvasionUp + .4byte BattleScript_EffectAlwaysHit + .4byte BattleScript_EffectAttackDown + .4byte BattleScript_EffectDefenseDown + .4byte BattleScript_EffectSpeedDown + .4byte BattleScript_EffectSpecialAttackDown + .4byte BattleScript_EffectSpecialDefenseDown + .4byte BattleScript_EffectAccuracyDown + .4byte BattleScript_EffectEvasionDown + .4byte BattleScript_EffectHaze + .4byte BattleScript_EffectBide + .4byte BattleScript_EffectRampage + .4byte BattleScript_EffectRoar + .4byte BattleScript_EffectMultiHit + .4byte BattleScript_EffectConversion + .4byte BattleScript_EffectFlinchHit + .4byte BattleScript_EffectRestoreHp + .4byte BattleScript_EffectToxic + .4byte BattleScript_EffectPayDay + .4byte BattleScript_EffectLightScreen + .4byte BattleScript_EffectTriAttack + .4byte BattleScript_EffectRest + .4byte BattleScript_EffectOHKO + .4byte BattleScript_EffectRazorWind + .4byte BattleScript_EffectSuperFang + .4byte BattleScript_EffectDragonRage + .4byte BattleScript_EffectTrap + .4byte BattleScript_EffectHighCritical + .4byte BattleScript_EffectDoubleHit + .4byte BattleScript_EffectRecoilIfMiss + .4byte BattleScript_EffectMist + .4byte BattleScript_EffectFocusEnergy + .4byte BattleScript_EffectRecoil + .4byte BattleScript_EffectConfuse + .4byte BattleScript_EffectAttackUp2 + .4byte BattleScript_EffectDefenseUp2 + .4byte BattleScript_EffectSpeedUp2 + .4byte BattleScript_EffectSpecialAttackUp2 + .4byte BattleScript_EffectSpecialDefenseUp2 + .4byte BattleScript_EffectAccuracyUp2 + .4byte BattleScript_EffectEvasionUp2 + .4byte BattleScript_EffectTransform + .4byte BattleScript_EffectAttackDown2 + .4byte BattleScript_EffectDefenseDown2 + .4byte BattleScript_EffectSpeedDown2 + .4byte BattleScript_EffectSpecialAttackDown2 + .4byte BattleScript_EffectSpecialDefenseDown2 + .4byte BattleScript_EffectAccuracyDown2 + .4byte BattleScript_EffectEvasionDown2 + .4byte BattleScript_EffectReflect + .4byte BattleScript_EffectPoison + .4byte BattleScript_EffectParalyze + .4byte BattleScript_EffectAttackDownHit + .4byte BattleScript_EffectDefenseDownHit + .4byte BattleScript_EffectSpeedDownHit + .4byte BattleScript_EffectSpecialAttackDownHit + .4byte BattleScript_EffectSpecialDefenseDownHit + .4byte BattleScript_EffectAccuracyDownHit + .4byte BattleScript_EffectEvasionDownHit + .4byte BattleScript_EffectSkyAttack + .4byte BattleScript_EffectConfuseHit + .4byte BattleScript_EffectTwineedle + .4byte BattleScript_EffectVitalThrow + .4byte BattleScript_EffectSubstitute + .4byte BattleScript_EffectRecharge + .4byte BattleScript_EffectRage + .4byte BattleScript_EffectMimic + .4byte BattleScript_EffectMetronome + .4byte BattleScript_EffectLeechSeed + .4byte BattleScript_EffectSplash + .4byte BattleScript_EffectDisable + .4byte BattleScript_EffectLevelDamage + .4byte BattleScript_EffectPsywave + .4byte BattleScript_EffectCounter + .4byte BattleScript_EffectEncore + .4byte BattleScript_EffectPainSplit + .4byte BattleScript_EffectSnore + .4byte BattleScript_EffectConversion2 + .4byte BattleScript_EffectLockOn + .4byte BattleScript_EffectSketch + .4byte BattleScript_EffectUnused60//Thaw + .4byte BattleScript_EffectSleepTalk + .4byte BattleScript_EffectDestinyBond + .4byte BattleScript_EffectFlail + .4byte BattleScript_EffectSpite + .4byte BattleScript_EffectFalseSwipe + .4byte BattleScript_EffectHealBell + .4byte BattleScript_EffectQuickAttack + .4byte BattleScript_EffectTripleKick + .4byte BattleScript_EffectThief + .4byte BattleScript_EffectMeanLook + .4byte BattleScript_EffectNightmare + .4byte BattleScript_EffectMinimize + .4byte BattleScript_EffectCurse + .4byte BattleScript_EffectUnused6e + .4byte BattleScript_EffectProtect + .4byte BattleScript_EffectSpikes + .4byte BattleScript_EffectForesight + .4byte BattleScript_EffectPerishSong + .4byte BattleScript_EffectSandstorm + .4byte BattleScript_EffectEndure + .4byte BattleScript_EffectRollout + .4byte BattleScript_EffectSwagger + .4byte BattleScript_EffectFuryCutter + .4byte BattleScript_EffectAttract + .4byte BattleScript_EffectReturn + .4byte BattleScript_EffectPresent + .4byte BattleScript_EffectFrustration + .4byte BattleScript_EffectSafeguard + .4byte BattleScript_EffectThawHit + .4byte BattleScript_EffectMagnitude + .4byte BattleScript_EffectBatonPass + .4byte BattleScript_EffectPursuit + .4byte BattleScript_EffectRapidSpin + .4byte BattleScript_EffectSonicboom + .4byte BattleScript_EffectUnused83 + .4byte BattleScript_EffectMorningSun + .4byte BattleScript_EffectSynthesis + .4byte BattleScript_EffectMoonlight + .4byte BattleScript_EffectHiddenPower + .4byte BattleScript_EffectRainDance + .4byte BattleScript_EffectSunnyDay + .4byte BattleScript_EffectDefenseUpHit + .4byte BattleScript_EffectAttackUpHit + .4byte BattleScript_EffectAllStatsUpHit + .4byte BattleScript_EffectUnused8d + .4byte BattleScript_EffectBellyDrum + .4byte BattleScript_EffectPsychUp + .4byte BattleScript_EffectMirrorCoat + .4byte BattleScript_EffectSkullBash + .4byte BattleScript_EffectTwister + .4byte BattleScript_EffectEarthquake + .4byte BattleScript_EffectFutureSight + .4byte BattleScript_EffectGust + .4byte BattleScript_EffectStomp + .4byte BattleScript_EffectSolarbeam + .4byte BattleScript_EffectThunder + .4byte BattleScript_EffectTeleport + .4byte BattleScript_EffectBeatUp + .4byte BattleScript_EffectSemiInvulnerable + .4byte BattleScript_EffectDefenseCurl + .4byte BattleScript_EffectSoftboiled + .4byte BattleScript_EffectFakeOut + .4byte BattleScript_EffectUproar + .4byte BattleScript_EffectStockpile + .4byte BattleScript_EffectSpitUp + .4byte BattleScript_EffectSwallow + .4byte BattleScript_EffectUnusedA3 + .4byte BattleScript_EffectHail + .4byte BattleScript_EffectTorment + .4byte BattleScript_EffectFlatter + .4byte BattleScript_EffectWillOWisp + .4byte BattleScript_EffectMemento + .4byte BattleScript_EffectFacade + .4byte BattleScript_EffectFocusPunch + .4byte BattleScript_EffectSmellingsalt + .4byte BattleScript_EffectFollowMe + .4byte BattleScript_EffectNaturePower + .4byte BattleScript_EffectCharge + .4byte BattleScript_EffectTaunt + .4byte BattleScript_EffectHelpingHand + .4byte BattleScript_EffectTrick + .4byte BattleScript_EffectRolePlay + .4byte BattleScript_EffectWish + .4byte BattleScript_EffectAssist + .4byte BattleScript_EffectIngrain + .4byte BattleScript_EffectSuperpower + .4byte BattleScript_EffectMagicCoat + .4byte BattleScript_EffectRecycle + .4byte BattleScript_EffectRevenge + .4byte BattleScript_EffectBrickBreak + .4byte BattleScript_EffectYawn + .4byte BattleScript_EffectKnockOff + .4byte BattleScript_EffectEndeavor + .4byte BattleScript_EffectEruption + .4byte BattleScript_EffectSkillSwap + .4byte BattleScript_EffectImprison + .4byte BattleScript_EffectRefresh + .4byte BattleScript_EffectGrudge + .4byte BattleScript_EffectSnatch + .4byte BattleScript_EffectLowKick + .4byte BattleScript_EffectSecretPower + .4byte BattleScript_EffectDoubleEdge + .4byte BattleScript_EffectTeeterDance + .4byte BattleScript_EffectBlazeKick + .4byte BattleScript_EffectMudSport + .4byte BattleScript_EffectPoisonFang + .4byte BattleScript_EffectWeatherBall + .4byte BattleScript_EffectOverheat + .4byte BattleScript_EffectTickle + .4byte BattleScript_EffectCosmicPower + .4byte BattleScript_EffectSkyUppercut + .4byte BattleScript_EffectBulkUp + .4byte BattleScript_EffectPoisonTail + .4byte BattleScript_EffectWaterSport + .4byte BattleScript_EffectCalmMind + .4byte BattleScript_EffectDragonDance + .4byte BattleScript_EffectCamouflage + +BattleScript_EffectSpeedUp:: +BattleScript_EffectSpecialDefenseUp:: +BattleScript_EffectAccuracyUp:: +BattleScript_EffectAlwaysHit:: +BattleScript_EffectSpecialAttackDown:: +BattleScript_EffectSpecialDefenseDown:: +BattleScript_EffectHighCritical:: +BattleScript_EffectAccuracyUp2:: +BattleScript_EffectEvasionUp2:: +BattleScript_EffectSpecialAttackDown2:: +BattleScript_EffectAccuracyDown2:: +BattleScript_EffectEvasionDown2:: +BattleScript_EffectEvasionDownHit:: +BattleScript_EffectVitalThrow:: +BattleScript_EffectUnused60:: +BattleScript_EffectFalseSwipe:: +BattleScript_EffectQuickAttack:: +BattleScript_EffectUnused6e:: +BattleScript_EffectPursuit:: +BattleScript_EffectUnused83:: +BattleScript_EffectUnused8d:: +BattleScript_EffectUnusedA3:: +BattleScript_EffectHit:: + jumpifnotmove MOVE_SURF, BattleScript_HitFromAtkCanceler + jumpifnostatus3 TARGET, STATUS3_UNDERWATER, BattleScript_HitFromAtkCanceler + orword gHitMarker, HITMARKER_IGNORE_UNDERWATER + setbyte sDMG_MULTIPLIER, 0x2 +BattleScript_HitFromAtkCanceler:: + attackcanceler +BattleScript_HitFromAccCheck:: + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE +BattleScript_HitFromAtkString:: + attackstring + ppreduce +BattleScript_HitFromCritCalc:: + critcalc + damagecalc + typecalc + adjustnormaldamage +BattleScript_HitFromAtkAnimation:: + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + seteffectwithchance + tryfaintmon TARGET, FALSE, NULL +BattleScript_MoveEnd:: + setbyte sMOVEEND_STATE, 0x0 + moveend 0x0, 0x0 + end + +BattleScript_MakeMoveMissed:: + orbyte gBattleMoveFlags, MOVESTATUS_MISSED +BattleScript_PrintMoveMissed:: + attackstring + ppreduce +BattleScript_MoveMissedPause:: + pause 0x20 +BattleScript_MoveMissed:: + effectivenesssound + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSleep:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_SLEEP, BattleScript_AlreadyAsleep + jumpifcantmakeasleep BattleScript_CantMakeAsleep + jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected + attackanimation + waitanimation + setmoveeffect EFFECT_SLEEP + seteffectprimary + goto BattleScript_MoveEnd + +BattleScript_AlreadyAsleep:: + various23 ATTACKER + pause 0x20 + printstring STRINGID_PKMNALREADYASLEEP + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_WasntAffected:: + pause 0x20 + printstring STRINGID_PKMNWASNTAFFECTED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_CantMakeAsleep:: + pause 0x20 + printfromtable gUproarAwakeStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPoisonHit:: +BattleScript_EffectPoisonTail:: + setmoveeffect EFFECT_POISON + goto BattleScript_EffectHit + +BattleScript_EffectAbsorb:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + critcalc + damagecalc + typecalc + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + negativedamage + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + jumpifability TARGET, ABILITY_LIQUID_OOZE, BattleScript_82D8B26 + setbyte cMULTISTRING_CHOOSER, 0x0 + goto BattleScript_82D8B2E +BattleScript_82D8B26:: + manipulatedamage ATK80_DMG_CHANGE_SIGN + setbyte cMULTISTRING_CHOOSER, 0x1 +BattleScript_82D8B2E:: + healthbarupdate ATTACKER + datahpupdate ATTACKER + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D8B45 + printfromtable gLeechSeedDrainStringIds + waitmessage 0x40 +BattleScript_82D8B45:: + tryfaintmon ATTACKER, FALSE, NULL + tryfaintmon TARGET, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_EffectBurnHit:: +BattleScript_EffectBlazeKick:: + setmoveeffect EFFECT_BURN + goto BattleScript_EffectHit + +BattleScript_EffectFreezeHit:: + setmoveeffect EFFECT_FREEZE + goto BattleScript_EffectHit + +BattleScript_EffectParalyzeHit:: + setmoveeffect EFFECT_PARALYSIS + goto BattleScript_EffectHit + +BattleScript_EffectExplosion:: + attackcanceler + attackstring + ppreduce + faintifabilitynotdamp + setatkhptozero + waitstate + jumpifbyte NO_COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED, BattleScript_82D8B94 + call BattleScript_82D8BEA + goto BattleScript_82D8B96 +BattleScript_82D8B94:: + attackanimation + waitanimation +BattleScript_82D8B96:: + movevaluescleanup + critcalc + damagecalc + typecalc + adjustnormaldamage + accuracycheck BattleScript_82D8BCF, ACC_CURR_MOVE + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifnexttargetvalid BattleScript_82D8B96 + tryfaintmon ATTACKER, FALSE, NULL + end +BattleScript_82D8BCF:: + effectivenesssound + resultmessage + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifnexttargetvalid BattleScript_82D8B96 + tryfaintmon ATTACKER, FALSE, NULL + end + +BattleScript_82D8BEA:: + bicbyte gBattleMoveFlags, MOVESTATUS_MISSED + attackanimation + waitanimation + orbyte gBattleMoveFlags, MOVESTATUS_MISSED + return + +BattleScript_EffectDreamEater:: + attackcanceler + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82D8C0E + jumpifstatus TARGET, STATUS_SLEEP, BattleScript_82D8C18 +BattleScript_82D8C0E:: + attackstring + ppreduce + waitmessage 0x40 + goto BattleScript_WasntAffected +BattleScript_82D8C18:: + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + critcalc + damagecalc + typecalc + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + negativedamage + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D8C56 + printstring STRINGID_PKMNDREAMEATEN + waitmessage 0x40 +BattleScript_82D8C56:: + tryfaintmon TARGET, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_EffectMirrorMove:: + attackcanceler + attackstring + pause 0x40 + trymirrormove + ppreduce + orbyte gBattleMoveFlags, MOVESTATUS_FAILED + printstring STRINGID_MIRRORMOVEFAILED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectAttackUp:: + setstatchanger ATK, 1, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectDefenseUp:: + setstatchanger DEF, 1, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectSpecialAttackUp:: + setstatchanger SPATK, 1, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectEvasionUp:: + setstatchanger EVASION, 1, FALSE +BattleScript_EffectStatUp:: + attackcanceler +BattleScript_EffectStatUpAfterAtkCanceler:: + attackstring + ppreduce + statbuffchange AFFECTS_USER | 0x1, BattleScript_StatUpEnd + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatUpAttackAnim + pause 0x20 + goto BattleScript_StatUpPrintString +BattleScript_StatUpAttackAnim:: + attackanimation + waitanimation +BattleScript_StatUpDoAnim:: + setgraphicalstatchangevalues + playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1 +BattleScript_StatUpPrintString:: + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_StatUpEnd:: + goto BattleScript_MoveEnd + +BattleScript_StatUp:: + playanimation EFFECT_BANK, ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable gStatUpStringIds + waitmessage 0x40 + return + +BattleScript_EffectAttackDown:: + setstatchanger ATK, 1, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectDefenseDown:: + setstatchanger DEF, 1, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectSpeedDown:: + setstatchanger SPEED, 1, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectAccuracyDown:: + setstatchanger ACC, 1, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectEvasionDown:: + setstatchanger EVASION, 1, TRUE +BattleScript_EffectStatDown:: + attackcanceler + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailedAtkStringPpReduce + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + statbuffchange 0x1, BattleScript_StatDownEnd + jumpifbyte LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatDownDoAnim + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_StatDownEnd + pause 0x20 + goto BattleScript_StatDownPrintString +BattleScript_StatDownDoAnim:: + attackanimation + waitanimation + setgraphicalstatchangevalues + playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 +BattleScript_StatDownPrintString:: + printfromtable gStatDownStringIds + waitmessage 0x40 +BattleScript_StatDownEnd:: + goto BattleScript_MoveEnd + +BattleScript_StatDown:: + playanimation EFFECT_BANK, ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable gStatDownStringIds + waitmessage 0x40 + return + +BattleScript_EffectHaze:: + attackcanceler + attackstring + ppreduce + attackanimation + waitanimation + normalisebuffs + printstring STRINGID_STATCHANGESGONE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectBide:: + attackcanceler + attackstring + ppreduce + attackanimation + waitanimation + orword gHitMarker, HITMARKER_x8000000 + setbide + goto BattleScript_MoveEnd + +BattleScript_EffectRampage:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D8DAE + ppreduce +BattleScript_82D8DAE:: + confuseifrepeatingattackends + goto BattleScript_HitFromCritCalc + +BattleScript_EffectRoar:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_SUCTION_CUPS, BattleScript_82DB5B9 + jumpifstatus3 TARGET, STATUS3_ROOTED, BattleScript_82DB109 + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_ARENA, BattleScript_ButItFailed + forcerandomswitch BattleScript_ButItFailed + +BattleScript_EffectMultiHit:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + setmultihitcounter 0x0 + initmultihitstring + setbyte sFIELD_16, 0x0 +BattleScript_82D8DFD:: + jumpifhasnohp ATTACKER, BattleScript_82D8E93 + jumpifhasnohp TARGET, BattleScript_82D8E74 + jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_82D8E1F + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D8E74 +BattleScript_82D8E1F:: + movevaluescleanup + copybyte cEFFECT_CHOOSER, sFIELD_16 + critcalc + damagecalc + typecalc + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D8E71 + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + printstring STRINGID_EMPTYSTRING3 + waitmessage 0x1 + addbyte sMULTIHIT_STRING + 4, 0x1 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_82D8E74 + decrementmultihit BattleScript_82D8DFD + goto BattleScript_82D8E74 +BattleScript_82D8E71:: + pause 0x20 +BattleScript_82D8E74:: + resultmessage + waitmessage 0x40 + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D8E93 + copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6 + printstring STRINGID_HITXTIMES + waitmessage 0x40 +BattleScript_82D8E93:: + seteffectwithchance + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0x2 + moveend 0x1, 0x0 + setbyte sMOVEEND_STATE, 0x4 + moveend 0x0, 0x0 + end + +BattleScript_EffectConversion:: + attackcanceler + attackstring + ppreduce + tryconversiontypechange BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNCHANGEDTYPE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectFlinchHit:: + setmoveeffect EFFECT_FLINCH + goto BattleScript_EffectHit + +BattleScript_EffectRestoreHp:: + attackcanceler + attackstring + ppreduce + tryhealhalfhealth BattleScript_AlreadyAtFullHp, ATTACKER + attackanimation + waitanimation + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNREGAINEDHEALTH + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectToxic:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_POISON, BattleScript_AlreadyPoisoned + jumpifstatus TARGET, STATUS_TOXIC_POISON, BattleScript_AlreadyPoisoned + jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected + jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected + attackanimation + waitanimation + setmoveeffect EFFECT_TOXIC + seteffectprimary + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AlreadyPoisoned:: + various23 ATTACKER + pause 0x40 + printstring STRINGID_PKMNALREADYPOISONED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_ImmunityProtected:: + copybyte gEffectBank, gBankTarget + setbyte cMULTISTRING_CHOOSER, 0x0 + call BattleScript_PSNPrevention + goto BattleScript_MoveEnd + +BattleScript_EffectPayDay:: + setmoveeffect EFFECT_PAYDAY + goto BattleScript_EffectHit + +BattleScript_EffectLightScreen:: + attackcanceler + attackstring + ppreduce + setlightscreen + goto BattleScript_PrintReflectLightScreenSafeguardString + +BattleScript_EffectTriAttack:: + setmoveeffect EFFECT_TRI_ATTACK + goto BattleScript_EffectHit + +BattleScript_EffectRest:: + attackcanceler + attackstring + ppreduce + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_RestIsAlreadyAsleep + jumpifcantmakeasleep BattleScript_RestCantSleep + trysetrest BattleScript_AlreadyAtFullHp + pause 0x20 + printfromtable gRestUsedStringIds + waitmessage 0x40 + updatestatusicon ATTACKER + waitstate + goto BattleScript_PresentHealTarget + +BattleScript_RestCantSleep:: + pause 0x40 + printfromtable gUproarAwakeStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_RestIsAlreadyAsleep:: + various23 ATTACKER + pause 0x20 + printstring STRINGID_PKMNALREADYASLEEP2 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectOHKO:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + typecalc + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_HitFromAtkAnimation + tryKO BattleScript_KOFail + trysetdestinybondtohappen + goto BattleScript_HitFromAtkAnimation +BattleScript_KOFail:: + pause 0x40 + printfromtable gKOFailedStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRazorWind:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn + setbyte sTWOTURN_STRINGID, 0x0 + call BattleScriptFirstChargingTurn + goto BattleScript_MoveEnd + +BattleScript_TwoTurnMovesSecondTurn:: + attackcanceler + setmoveeffect EFFECT_CHARGING + setbyte sANIM_TURN, 0x1 + clearstatusfromeffect ATTACKER + orword gHitMarker, HITMARKER_NO_PPDEDUCT + jumpifnotmove MOVE_SKY_ATTACK, BattleScript_HitFromAccCheck + setmoveeffect EFFECT_FLINCH + goto BattleScript_HitFromAccCheck + +BattleScriptFirstChargingTurn:: + attackcanceler + printstring STRINGID_EMPTYSTRING3 + ppreduce + attackanimation + waitanimation + orword gHitMarker, HITMARKER_x8000000 + setmoveeffect EFFECT_CHARGING | AFFECTS_USER + seteffectprimary + copybyte cMULTISTRING_CHOOSER, sTWOTURN_STRINGID + printfromtable gFirstTurnOfTwoStringIds + waitmessage 0x40 + return + +BattleScript_EffectSuperFang:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + damagetohalftargethp + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectDragonRage:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + setword gBattleMoveDamage, 40 + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectTrap:: + jumpifnotmove MOVE_WHIRLPOOL, BattleScript_DoWrapEffect + jumpifnostatus3 TARGET, STATUS3_UNDERWATER, BattleScript_DoWrapEffect + orword gHitMarker, HITMARKER_IGNORE_UNDERWATER + setbyte sDMG_MULTIPLIER, 0x2 +BattleScript_DoWrapEffect:: + setmoveeffect EFFECT_WRAP + goto BattleScript_EffectHit + +BattleScript_EffectDoubleHit:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + setmultihitcounter 0x2 + initmultihitstring + setbyte sFIELD_16, 0x0 + goto BattleScript_82D8DFD + +BattleScript_EffectRecoilIfMiss:: + attackcanceler + accuracycheck BattleScript_82D9135, ACC_CURR_MOVE + goto BattleScript_HitFromAtkString + +BattleScript_82D9135:: + attackstring + ppreduce + pause 0x40 + resultmessage + waitmessage 0x40 + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_MoveEnd + printstring STRINGID_PKMNCRASHED + waitmessage 0x40 + damagecalc + typecalc + adjustnormaldamage + manipulatedamage ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP + bicbyte gBattleMoveFlags, MOVESTATUS_MISSED + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + tryfaintmon ATTACKER, FALSE, NULL + orbyte gBattleMoveFlags, MOVESTATUS_MISSED + goto BattleScript_MoveEnd + +BattleScript_EffectMist:: + attackcanceler + attackstring + ppreduce + setmist + attackanimation + waitanimation + printfromtable gMistUsedStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectFocusEnergy:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 ATTACKER, STATUS2_FOCUS_ENERGY, BattleScript_ButItFailed + setfocusenergy + attackanimation + waitanimation + printfromtable gFocusEnergyUsedStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRecoil:: + setmoveeffect EFFECT_RECOIL_25 | AFFECTS_USER | CERTAIN + jumpifnotmove MOVE_STRUGGLE, BattleScript_EffectHit + incrementgamestat 0x1B + goto BattleScript_EffectHit + +BattleScript_EffectConfuse:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_AlreadyConfused + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected + attackanimation + waitanimation + setmoveeffect EFFECT_CONFUSION + seteffectprimary + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AlreadyConfused:: + various23 ATTACKER + pause 0x20 + printstring STRINGID_PKMNALREADYCONFUSED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectAttackUp2:: + setstatchanger ATK, 2, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectDefenseUp2:: + setstatchanger DEF, 2, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectSpeedUp2:: + setstatchanger SPEED, 2, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectSpecialAttackUp2:: + setstatchanger SPATK, 2, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectSpecialDefenseUp2:: + setstatchanger SPDEF, 2, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectTransform:: + attackcanceler + attackstring + ppreduce + transformdataexecution + attackanimation + waitanimation + printfromtable gTransformUsedStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectAttackDown2:: + setstatchanger ATK, 2, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectDefenseDown2:: + setstatchanger DEF, 2, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectSpeedDown2:: + setstatchanger SPEED, 2, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectSpecialDefenseDown2:: + setstatchanger SPDEF, 2, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectReflect:: + attackcanceler + attackstring + ppreduce + setreflect +BattleScript_PrintReflectLightScreenSafeguardString:: + attackanimation + waitanimation + printfromtable gReflectLightScreenSafeguardStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPoison:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_POISON, BattleScript_AlreadyPoisoned + jumpifstatus TARGET, STATUS_TOXIC_POISON, BattleScript_AlreadyPoisoned + jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected + jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected + jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected + attackanimation + waitanimation + setmoveeffect EFFECT_POISON + seteffectprimary + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectParalyze:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_LIMBER, BattleScript_LimberProtected + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + typecalc + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_PARALYSIS, BattleScript_AlreadyParalyzed + jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected + attackanimation + waitanimation + setmoveeffect EFFECT_PARALYSIS + seteffectprimary + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AlreadyParalyzed:: + various23 ATTACKER + pause 0x20 + printstring STRINGID_PKMNISALREADYPARALYZED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_LimberProtected:: + copybyte gEffectBank, gBankTarget + setbyte cMULTISTRING_CHOOSER, 0x0 + call BattleScript_PRLZPrevention + goto BattleScript_MoveEnd + +BattleScript_EffectAttackDownHit:: + setmoveeffect EFFECT_ATK_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectDefenseDownHit:: + setmoveeffect EFFECT_DEF_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectSpeedDownHit:: + setmoveeffect EFFECT_SPD_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectSpecialAttackDownHit:: + setmoveeffect EFFECT_SP_ATK_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectSpecialDefenseDownHit:: + setmoveeffect EFFECT_SP_DEF_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectAccuracyDownHit:: + setmoveeffect EFFECT_ACC_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectSkyAttack:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn + setbyte sTWOTURN_STRINGID, 0x3 + call BattleScriptFirstChargingTurn + goto BattleScript_MoveEnd + +BattleScript_EffectConfuseHit:: + setmoveeffect EFFECT_CONFUSION + goto BattleScript_EffectHit + +BattleScript_EffectTwineedle:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + setbyte sFIELD_16, 0x2 + attackstring + ppreduce + setmultihitcounter 0x2 + initmultihitstring + goto BattleScript_82D8DFD + +BattleScript_EffectSubstitute:: + attackcanceler + ppreduce + attackstring + waitstate + jumpifstatus2 ATTACKER, STATUS2_SUBSTITUTE, BattleScript_AlreadyHasSubstitute + setsubstitute + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x1, BattleScript_SubstituteAnim + pause 0x20 + goto BattleScript_SubstituteString +BattleScript_SubstituteAnim:: + attackanimation + waitanimation + healthbarupdate ATTACKER + datahpupdate ATTACKER +BattleScript_SubstituteString:: + printfromtable gSubsituteUsedStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd +BattleScript_AlreadyHasSubstitute:: + various23 ATTACKER + pause 0x20 + printstring STRINGID_PKMNHASSUBSTITUTE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRecharge:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + setmoveeffect EFFECT_RECHARGE | AFFECTS_USER | CERTAIN + goto BattleScript_HitFromAtkString + +BattleScript_MoveUsedMustRecharge:: + printstring STRINGID_PKMNMUSTRECHARGE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRage:: + attackcanceler + accuracycheck BattleScript_RageMiss, ACC_CURR_MOVE + setmoveeffect EFFECT_RAGE + seteffectprimary + setmoveeffect 0 + goto BattleScript_HitFromAtkString +BattleScript_RageMiss:: + setmoveeffect EFFECT_RAGE + clearstatusfromeffect ATTACKER + goto BattleScript_PrintMoveMissed + +BattleScript_EffectMimic:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + mimicattackcopy BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNLEARNEDMOVE2 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectMetronome:: + attackcanceler + attackstring + pause 0x20 + attackanimation + waitanimation + setbyte sANIM_TURN, 0x0 + setbyte sANIM_TARGETS_HIT, 0x0 + metronome + +BattleScript_EffectLeechSeed:: + attackcanceler + attackstring + pause 0x20 + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_DoLeechSeed, ACC_CURR_MOVE +BattleScript_DoLeechSeed:: + setseeded + attackanimation + waitanimation + printfromtable gLeechSeedStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSplash:: + attackcanceler + attackstring + ppreduce + attackanimation + waitanimation + incrementgamestat 0x1A + printstring STRINGID_BUTNOTHINGHAPPENED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectDisable:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + disablelastusedattack BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNMOVEWASDISABLED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectLevelDamage:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + dmgtolevel + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectPsywave:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + psywavedamageeffect + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectCounter:: + attackcanceler + counterdamagecalculator BattleScript_ButItFailedAtkStringPpReduce + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc2 + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectEncore:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + trysetencore BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNGOTENCORE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPainSplit:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + painsplitdmgcalc BattleScript_ButItFailed + attackanimation + waitanimation + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + copyword gBattleMoveDamage, sPAINSPLIT_HP + healthbarupdate TARGET + datahpupdate TARGET + printstring STRINGID_SHAREDPAIN + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSnore:: + attackcanceler + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_SnoreIsAsleep + attackstring + ppreduce + goto BattleScript_ButItFailed +BattleScript_SnoreIsAsleep:: + jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoSnore + printstring STRINGID_PKMNFASTASLEEP + waitmessage 0x40 + statusanimation ATTACKER +BattleScript_DoSnore:: + attackstring + ppreduce + accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + setmoveeffect EFFECT_FLINCH + goto BattleScript_HitFromCritCalc + +BattleScript_EffectConversion2:: + attackcanceler + attackstring + ppreduce + settypetorandomresistance BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNCHANGEDTYPE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectLockOn:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + setalwayshitflag + attackanimation + waitanimation + printstring STRINGID_PKMNTOOKAIM + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSketch:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + copymovepermanently BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSKETCHEDMOVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSleepTalk:: + attackcanceler + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_SleepTalkIsAsleep + attackstring + ppreduce + goto BattleScript_ButItFailed +BattleScript_SleepTalkIsAsleep:: + printstring STRINGID_PKMNFASTASLEEP + waitmessage 0x40 + statusanimation ATTACKER + attackstring + ppreduce + orword gHitMarker, HITMARKER_NO_PPDEDUCT + trychoosesleeptalkmove BattleScript_SleepTalkUsingMove + pause 0x40 + goto BattleScript_ButItFailed +BattleScript_SleepTalkUsingMove:: + attackanimation + waitanimation + setbyte sANIM_TURN, 0x0 + setbyte sANIM_TARGETS_HIT, 0x0 + jumptorandomattack 0x1 + +BattleScript_EffectDestinyBond:: + attackcanceler + attackstring + ppreduce + setdestinybond + attackanimation + waitanimation + printstring STRINGID_PKMNTRYINGTOTAKEFOE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectFlail:: + remaininghptopower + goto BattleScript_EffectHit + +BattleScript_EffectSpite:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + tryspiteppreduce BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNREDUCEDPP + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectHealBell:: + attackcanceler + attackstring + ppreduce + healpartystatus + waitstate + attackanimation + waitanimation + printfromtable gPartyStatusHealStringIds + waitmessage 0x40 + jumpifnotmove MOVE_HEAL_BELL, BattleScript_PartyHealEnd + jumpifbyte NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x1, BattleScript_CheckHealBellMon2Unaffected + printstring STRINGID_PKMNSXBLOCKSY + waitmessage 0x40 +BattleScript_CheckHealBellMon2Unaffected:: + jumpifbyte NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x2, BattleScript_PartyHealEnd + printstring STRINGID_PKMNSXBLOCKSY2 + waitmessage 0x40 +BattleScript_PartyHealEnd:: + updatestatusicon ATTACKER_WITH_PARTNER + waitstate + goto BattleScript_MoveEnd + +BattleScript_EffectTripleKick:: + attackcanceler + attackstring + ppreduce + sethword sTRIPLE_KICK_POWER, 0x0 + initmultihitstring + setmultihit 0x3 +BattleScript_TripleKickLoop:: + jumpifhasnohp ATTACKER, BattleScript_TripleKickEnd + jumpifhasnohp TARGET, BattleScript_TripleKickNoMoreHits + jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoTripleKickAttack + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_TripleKickNoMoreHits +BattleScript_DoTripleKickAttack:: + accuracycheck BattleScript_TripleKickNoMoreHits, ACC_CURR_MOVE + movevaluescleanup + addbyte sTRIPLE_KICK_POWER, 10 + addbyte sMULTIHIT_STRING + 4, 0x1 + copyhword gDynamicBasePower, sTRIPLE_KICK_POWER + critcalc + damagecalc + typecalc + adjustnormaldamage + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_TripleKickNoMoreHits + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + printstring STRINGID_EMPTYSTRING3 + waitmessage 0x1 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_TripleKickPrintStrings + decrementmultihit BattleScript_TripleKickLoop + goto BattleScript_TripleKickPrintStrings +BattleScript_TripleKickNoMoreHits:: + pause 0x20 + jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_TripleKickPrintStrings + bicbyte gBattleMoveFlags, MOVESTATUS_MISSED +BattleScript_TripleKickPrintStrings:: + resultmessage + waitmessage 0x40 + jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_TripleKickEnd + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_TripleKickEnd + copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6 + printstring STRINGID_HITXTIMES + waitmessage 0x40 +BattleScript_TripleKickEnd:: + seteffectwithchance + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0xE + moveend 0x0, 0x0 + end + +BattleScript_EffectThief:: + setmoveeffect EFFECT_STEAL_ITEM + goto BattleScript_EffectHit + +BattleScript_EffectMeanLook:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC + jumpifstatus2 TARGET, STATUS2_ESCAPE_PREVENTION, BattleScript_ButItFailed + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + attackanimation + waitanimation + setmoveeffect EFFECT_PREVENT_ESCAPE + seteffectprimary + printstring STRINGID_TARGETCANTESCAPENOW + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectNightmare:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus2 TARGET, STATUS2_NIGHTMARE, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_SLEEP, BattleScript_NightmareWorked + goto BattleScript_ButItFailed +BattleScript_NightmareWorked:: + attackanimation + waitanimation + setmoveeffect EFFECT_NIGHTMARE + seteffectprimary + printstring STRINGID_PKMNFELLINTONIGHTMARE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectMinimize:: + attackcanceler + setminimize + setstatchanger EVASION, 1, FALSE + goto BattleScript_EffectStatUpAfterAtkCanceler + +BattleScript_EffectCurse:: + jumpiftype2 ATTACKER, TYPE_GHOST, BattleScript_GhostCurse + attackcanceler + attackstring + ppreduce + jumpifstat ATTACKER, GREATER_THAN, SPEED, 0x0, BattleScript_CurseTrySpeed + jumpifstat ATTACKER, NOT_EQUAL, ATK, 0xC, BattleScript_CurseTrySpeed + jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_ButItFailed +BattleScript_CurseTrySpeed:: + copybyte gBankTarget, gBankAttacker + setbyte sANIM_TURN, 0x1 + attackanimation + waitanimation + setstatchanger SPEED, 1, TRUE + statbuffchange AFFECTS_USER | 0x1, BattleScript_CurseTryAttack + printfromtable gStatDownStringIds + waitmessage 0x40 +BattleScript_CurseTryAttack:: + setstatchanger ATK, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_CurseTryDefence + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_CurseTryDefence:: + setstatchanger DEF, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_CurseEnd + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_CurseEnd:: + goto BattleScript_MoveEnd +BattleScript_GhostCurse:: + jumpifbytenotequal gBankAttacker, gBankTarget, BattleScript_DoGhostCurse + getmovetarget ATTACKER +BattleScript_DoGhostCurse:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + cursetarget BattleScript_ButItFailed + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + setbyte sANIM_TURN, 0x0 + attackanimation + waitanimation + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNLAIDCURSE + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_EffectProtect:: +BattleScript_EffectEndure:: + attackcanceler + attackstring + ppreduce + setprotectlike + attackanimation + waitanimation + printfromtable gProtectLikeUsedStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSpikes:: + attackcanceler + trysetspikes BattleScript_ButItFailedAtkStringPpReduce + attackstring + ppreduce + attackanimation + waitanimation + printstring STRINGID_SPIKESSCATTERED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectForesight:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + setforesight + attackanimation + waitanimation + printstring STRINGID_PKMNIDENTIFIED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPerishSong:: + attackcanceler + attackstring + ppreduce + trysetperishsong BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_FAINTINTHREE + waitmessage 0x40 + setbyte sBANK, 0x0 +BattleScript_PerishSongLoop:: + jumpifability SCRIPTING_BANK, ABILITY_SOUNDPROOF, BattleScript_PerishSongNotAffected +BattleScript_PerishSongLoopIncrement:: + addbyte sBANK, 0x1 + jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_PerishSongLoop + goto BattleScript_MoveEnd + +BattleScript_PerishSongNotAffected:: + printstring STRINGID_PKMNSXBLOCKSY2 + waitmessage 0x40 + goto BattleScript_PerishSongLoopIncrement + +BattleScript_EffectSandstorm:: + attackcanceler + attackstring + ppreduce + setsandstorm + goto BattleScript_MoveWeatherChange + +BattleScript_EffectRollout:: + attackcanceler + attackstring + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_RolloutCheckAccuracy + ppreduce +BattleScript_RolloutCheckAccuracy:: + accuracycheck BattleScript_RolloutHit, ACC_CURR_MOVE +BattleScript_RolloutHit:: + typecalc2 + rolloutdamagecalculation + goto BattleScript_HitFromCritCalc + +BattleScript_EffectSwagger:: + attackcanceler + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_MakeMoveMissed + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + jumpifconfusedandstatmaxed ATK, BattleScript_ButItFailed + attackanimation + waitanimation + setstatchanger ATK, 2, FALSE + statbuffchange 0x1, BattleScript_SwaggerTryConfuse + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_SwaggerTryConfuse + setgraphicalstatchangevalues + playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_SwaggerTryConfuse:: + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected + setmoveeffect EFFECT_CONFUSION + seteffectprimary + goto BattleScript_MoveEnd + +BattleScript_EffectFuryCutter:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_FuryCutterHit, ACC_CURR_MOVE +BattleScript_FuryCutterHit:: + furycuttercalc + critcalc + damagecalc + typecalc + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_FuryCutterHit + adjustnormaldamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectAttract:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + tryinfatuating BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNFELLINLOVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectReturn:: +BattleScript_EffectFrustration:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + happinesstodamagecalculation + goto BattleScript_HitFromAtkString + +BattleScript_EffectPresent:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + presentdamagecalculation + +BattleScript_EffectSafeguard:: + attackcanceler + attackstring + ppreduce + setsafeguard + goto BattleScript_PrintReflectLightScreenSafeguardString + +BattleScript_EffectThawHit:: + setmoveeffect EFFECT_BURN + goto BattleScript_EffectHit + +BattleScript_EffectMagnitude:: + attackcanceler + attackstring + ppreduce + selectfirstvalidtarget + magnitudedamagecalculation + pause 0x20 + printstring STRINGID_MAGNITUDESTRENGTH + waitmessage 0x40 + goto BattleScript_82D9C44 + +BattleScript_EffectBatonPass:: + attackcanceler + attackstring + ppreduce + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_ARENA, BattleScript_ButItFailed + jumpifcantswitch ATK4F_DONT_CHECK_STATUSES | ATTACKER, BattleScript_ButItFailed + attackanimation + waitanimation + openpartyscreen 0x1, BattleScript_ButItFailed + switchoutabilities ATTACKER + waitstate + switchhandleorder ATTACKER, 0x2 + returntoball ATTACKER + getswitchedmondata ATTACKER + switchindataupdate ATTACKER + hpthresholds ATTACKER + printstring STRINGID_SWITCHINMON + switchinanim ATTACKER, 0x1 + waitstate + switchineffects ATTACKER + goto BattleScript_MoveEnd + +BattleScript_EffectRapidSpin:: + setmoveeffect EFFECT_RAPIDSPIN | AFFECTS_USER | CERTAIN + goto BattleScript_EffectHit + +BattleScript_EffectSonicboom:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + setword gBattleMoveDamage, 20 + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectMorningSun:: +BattleScript_EffectSynthesis:: +BattleScript_EffectMoonlight:: + attackcanceler + attackstring + ppreduce + recoverbasedonsunlight BattleScript_AlreadyAtFullHp + goto BattleScript_PresentHealTarget + +BattleScript_EffectHiddenPower:: + hiddenpowercalc + goto BattleScript_EffectHit + +BattleScript_EffectRainDance:: + attackcanceler + attackstring + ppreduce + setrain +BattleScript_MoveWeatherChange:: + attackanimation + waitanimation + printfromtable gMoveWeatherChangeStringIds + waitmessage 0x40 + call BattleScript_WeatherFormChanges + goto BattleScript_MoveEnd + +BattleScript_EffectSunnyDay:: + attackcanceler + attackstring + ppreduce + setsunny + goto BattleScript_MoveWeatherChange + +BattleScript_EffectDefenseUpHit:: + setmoveeffect EFFECT_DEF_PLUS_1 | AFFECTS_USER + goto BattleScript_EffectHit + +BattleScript_EffectAttackUpHit:: + setmoveeffect EFFECT_ATK_PLUS_1 | AFFECTS_USER + goto BattleScript_EffectHit + +BattleScript_EffectAllStatsUpHit:: + setmoveeffect EFFECT_ALL_STATS_UP | AFFECTS_USER + goto BattleScript_EffectHit + +BattleScript_EffectBellyDrum:: + attackcanceler + attackstring + ppreduce + maxattackhalvehp BattleScript_ButItFailed + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + attackanimation + waitanimation + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNCUTHPMAXEDATTACK + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPsychUp:: + attackcanceler + attackstring + ppreduce + copyfoestats BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNCOPIEDSTATCHANGES + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectMirrorCoat:: + attackcanceler + mirrorcoatdamagecalculator BattleScript_ButItFailedAtkStringPpReduce + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc2 + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectSkullBash:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn + setbyte sTWOTURN_STRINGID, 0x2 + call BattleScriptFirstChargingTurn + setstatchanger DEF, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_SkullBashEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_SkullBashEnd + setgraphicalstatchangevalues + playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_SkullBashEnd:: + goto BattleScript_MoveEnd + +BattleScript_EffectTwister:: + jumpifnostatus3 TARGET, STATUS3_ON_AIR, BattleScript_FlinchEffect + orword gHitMarker, HITMARKER_IGNORE_ON_AIR + setbyte sDMG_MULTIPLIER, 0x2 +BattleScript_FlinchEffect:: + setmoveeffect EFFECT_FLINCH + goto BattleScript_EffectHit + +BattleScript_EffectEarthquake:: + attackcanceler + attackstring + ppreduce + selectfirstvalidtarget +BattleScript_82D9C44:: + movevaluescleanup + jumpifnostatus3 TARGET, STATUS3_UNDERGROUND, BattleScript_82D9C64 + orword gHitMarker, HITMARKER_IGNORE_UNDERGROUND + setbyte sDMG_MULTIPLIER, 0x2 + goto BattleScript_82D9C73 +BattleScript_82D9C64:: + bicword gHitMarker, HITMARKER_IGNORE_UNDERGROUND + setbyte sDMG_MULTIPLIER, 0x1 +BattleScript_82D9C73:: + accuracycheck BattleScript_82D9CAC, ACC_CURR_MOVE + critcalc + damagecalc + typecalc + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + printstring STRINGID_EMPTYSTRING3 + waitmessage 0x1 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifnexttargetvalid BattleScript_82D9C44 + end +BattleScript_82D9CAC:: + pause 0x20 + typecalc + effectivenesssound + resultmessage + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifnexttargetvalid BattleScript_82D9C44 + end + +BattleScript_EffectFutureSight:: + attackcanceler + attackstring + ppreduce + trysetfutureattack BattleScript_ButItFailed + attackanimation + waitanimation + printfromtable gFutureMoveUsedStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectGust:: + jumpifnostatus3 TARGET, STATUS3_ON_AIR, BattleScript_EffectHit + orword gHitMarker, HITMARKER_IGNORE_ON_AIR + setbyte sDMG_MULTIPLIER, 0x2 + goto BattleScript_EffectHit + +BattleScript_EffectStomp:: + jumpifnostatus3 TARGET, STATUS3_MINIMIZED, BattleScript_FlinchEffect + setbyte sDMG_MULTIPLIER, 0x2 + goto BattleScript_FlinchEffect + +BattleScript_EffectSolarbeam:: + jumpifabilitypresent ABILITY_CLOUD_NINE, BattleScript_SolarbeamDecideTurn + jumpifabilitypresent ABILITY_AIR_LOCK, BattleScript_SolarbeamDecideTurn + jumpifhalfword COMMON_BITS, gBattleWeather, WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT, BattleScript_SolarbeamOnFirstTurn +BattleScript_SolarbeamDecideTurn:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn + setbyte sTWOTURN_STRINGID, 0x1 + call BattleScriptFirstChargingTurn + goto BattleScript_MoveEnd +BattleScript_SolarbeamOnFirstTurn:: + orword gHitMarker, HITMARKER_x8000000 + setmoveeffect EFFECT_CHARGING | AFFECTS_USER + seteffectprimary + ppreduce + goto BattleScript_TwoTurnMovesSecondTurn + +BattleScript_EffectThunder:: + setmoveeffect EFFECT_PARALYSIS + orword gHitMarker, HITMARKER_IGNORE_ON_AIR + goto BattleScript_EffectHit + +BattleScript_EffectTeleport:: + attackcanceler + attackstring + ppreduce + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_ButItFailed + getifcantrunfrombattle ATTACKER + jumpifbyte EQUAL, gBattleCommunication, 0x1, BattleScript_ButItFailed + jumpifbyte EQUAL, gBattleCommunication, 0x2, BattleScript_82DA382 + attackanimation + waitanimation + printstring STRINGID_PKMNFLEDFROMBATTLE + waitmessage 0x40 + setoutcomeonteleport ATTACKER + goto BattleScript_MoveEnd + +BattleScript_EffectBeatUp:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + pause 0x20 + ppreduce + setbyte gBattleCommunication, 0x0 +BattleScript_BeatUpLoop:: + movevaluescleanup + trydobeatup BattleScript_BeatUpEnd, BattleScript_ButItFailed + printstring STRINGID_PKMNATTACK + critcalc + jumpifbyte NOT_EQUAL, gCritMultiplier, 0x2, BattleScript_BeatUpAttack + manipulatedamage ATK80_DMG_DOUBLED +BattleScript_BeatUpAttack:: + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + goto BattleScript_BeatUpLoop +BattleScript_BeatUpEnd:: + end + +BattleScript_EffectSemiInvulnerable:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_SecondTurnSemiInvulnerable + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_SecondTurnSemiInvulnerable + jumpifmove MOVE_FLY, BattleScript_FirstTurnFly + jumpifmove MOVE_DIVE, BattleScript_FirstTurnDive + jumpifmove MOVE_BOUNCE, BattleScript_FirstTurnBounce + setbyte sTWOTURN_STRINGID, 0x5 + goto BattleScript_FirstTurnSemiInvulnerable + +BattleScript_FirstTurnBounce:: + setbyte sTWOTURN_STRINGID, 0x7 + goto BattleScript_FirstTurnSemiInvulnerable + +BattleScript_FirstTurnDive:: + setbyte sTWOTURN_STRINGID, 0x6 + goto BattleScript_FirstTurnSemiInvulnerable + +BattleScript_FirstTurnFly:: + setbyte sTWOTURN_STRINGID, 0x4 +BattleScript_FirstTurnSemiInvulnerable:: + call BattleScriptFirstChargingTurn + setsemiinvulnerablebit + goto BattleScript_MoveEnd + +BattleScript_SecondTurnSemiInvulnerable:: + attackcanceler + setmoveeffect EFFECT_CHARGING + setbyte sANIM_TURN, 0x1 + clearstatusfromeffect ATTACKER + orword gHitMarker, HITMARKER_NO_PPDEDUCT + jumpifnotmove MOVE_BOUNCE, BattleScript_SemiInvulnerableTryHit + setmoveeffect EFFECT_PARALYSIS +BattleScript_SemiInvulnerableTryHit:: + accuracycheck BattleScript_SemiInvulnerableMiss, ACC_CURR_MOVE + clearsemiinvulnerablebit + goto BattleScript_HitFromAtkString + +BattleScript_SemiInvulnerableMiss:: + clearsemiinvulnerablebit + goto BattleScript_PrintMoveMissed + +BattleScript_EffectDefenseCurl:: + attackcanceler + attackstring + ppreduce + setdefensecurlbit + setstatchanger DEF, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_DefenseCurlDoStatUpAnim + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatUpPrintString + attackanimation + waitanimation +BattleScript_DefenseCurlDoStatUpAnim:: + goto BattleScript_StatUpDoAnim + +BattleScript_EffectSoftboiled:: + attackcanceler + attackstring + ppreduce + tryhealhalfhealth BattleScript_AlreadyAtFullHp, TARGET +BattleScript_PresentHealTarget:: + attackanimation + waitanimation + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate TARGET + datahpupdate TARGET + printstring STRINGID_PKMNREGAINEDHEALTH + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AlreadyAtFullHp:: + pause 0x20 + printstring STRINGID_PKMNHPFULL + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectFakeOut:: + attackcanceler + jumpifnotfirstturn BattleScript_ButItFailedAtkStringPpReduce + setmoveeffect EFFECT_FLINCH | CERTAIN + goto BattleScript_EffectHit + +BattleScript_ButItFailedAtkStringPpReduce:: + attackstring +BattleScript_ButItFailedPpReduce:: + ppreduce +BattleScript_ButItFailed:: + pause 0x20 + orbyte gBattleMoveFlags, MOVESTATUS_FAILED + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_NotAffected:: + pause 0x20 + orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectUproar:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + setmoveeffect EFFECT_UPROAR | AFFECTS_USER + attackstring + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_UproarHit + ppreduce +BattleScript_UproarHit:: + nop + goto BattleScript_HitFromCritCalc + +BattleScript_EffectStockpile:: + attackcanceler + attackstring + ppreduce + stockpile + attackanimation + waitanimation + printfromtable gStockpileUsedStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSpitUp:: + attackcanceler + jumpifbyte EQUAL, gBattleCommunication + 6, 0x1, BattleScript_82D9FA2 + attackstring + ppreduce + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + stockpiletobasedamage BattleScript_SpitUpFail + typecalc + adjustsetdamage + goto BattleScript_HitFromAtkAnimation +BattleScript_SpitUpFail:: + pause 0x20 + printstring STRINGID_FAILEDTOSPITUP + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82D9FA2:: + attackstring + ppreduce + pause 0x40 + stockpiletobasedamage BattleScript_SpitUpFail + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSwallow:: + attackcanceler + attackstring + ppreduce + stockpiletohpheal BattleScript_SwallowFail + goto BattleScript_PresentHealTarget + +BattleScript_SwallowFail:: + pause 0x20 + printfromtable gSwallowFailStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectHail:: + attackcanceler + attackstring + ppreduce + sethail + goto BattleScript_MoveWeatherChange + +BattleScript_EffectTorment:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + settorment BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSUBJECTEDTOTORMENT + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectFlatter:: + attackcanceler + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_MakeMoveMissed + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + jumpifconfusedandstatmaxed SPATK, BattleScript_ButItFailed + attackanimation + waitanimation + setstatchanger SPATK, 1, FALSE + statbuffchange 0x1, BattleScript_FlatterTryConfuse + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_FlatterTryConfuse + setgraphicalstatchangevalues + playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_FlatterTryConfuse:: + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected + setmoveeffect EFFECT_CONFUSION + seteffectprimary + goto BattleScript_MoveEnd + +BattleScript_EffectWillOWisp:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_BURN, BattleScript_AlreadyBurned + jumpiftype TARGET, TYPE_FIRE, BattleScript_NotAffected + jumpifability TARGET, ABILITY_WATER_VEIL, BattleScript_WaterVeilPrevents + jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected + attackanimation + waitanimation + setmoveeffect EFFECT_BURN + seteffectprimary + goto BattleScript_MoveEnd + +BattleScript_WaterVeilPrevents:: + copybyte gEffectBank, gBankTarget + setbyte cMULTISTRING_CHOOSER, 0x0 + call BattleScript_BRNPrevention + goto BattleScript_MoveEnd + +BattleScript_AlreadyBurned:: + various23 ATTACKER + pause 0x20 + printstring STRINGID_PKMNALREADYHASBURN + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectMemento:: + attackcanceler + jumpifbyte EQUAL, gBattleCommunication + 6, 0x1, BattleScript_82DA153 + attackstring + ppreduce + jumpifattackandspecialattackcannotfall BattleScript_ButItFailed + setatkhptozero + attackanimation + waitanimation + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82DA148 + setbyte sFIELD_1B, 0x0 + playstatchangeanimation TARGET, 0x12, 0x7 + playstatchangeanimation TARGET, 0x2, 0x3 + setstatchanger ATK, 2, TRUE + statbuffchange 0x1, BattleScript_82DA119 + jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DA119 + printfromtable gStatDownStringIds + waitmessage 0x40 +BattleScript_82DA119:: + playstatchangeanimation TARGET, 0x10, 0x3 + setstatchanger SPATK, 2, TRUE + statbuffchange 0x1, BattleScript_82DA13C + jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DA13C + printfromtable gStatDownStringIds + waitmessage 0x40 +BattleScript_82DA13C:: + tryfaintmon ATTACKER, FALSE, NULL + goto BattleScript_MoveEnd +BattleScript_82DA148:: + printstring STRINGID_BUTNOEFFECT + waitmessage 0x40 + goto BattleScript_82DA13C +BattleScript_82DA153:: + attackstring + ppreduce + jumpifattackandspecialattackcannotfall BattleScript_82DA15A +BattleScript_82DA15A:: + setatkhptozero + pause 0x40 + effectivenesssound + resultmessage + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_EffectFacade:: + jumpifstatus ATTACKER, STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON, BattleScript_FacadeDoubleDmg + goto BattleScript_EffectHit + +BattleScript_FacadeDoubleDmg:: + setbyte sDMG_MULTIPLIER, 0x2 + goto BattleScript_EffectHit + +BattleScript_EffectFocusPunch:: + attackcanceler + jumpifnodamage BattleScript_HitFromAccCheck + ppreduce + printstring STRINGID_PKMNLOSTFOCUS + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSmellingsalt:: + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_EffectHit + setmoveeffect EFFECT_REMOVE_PARALYSIS | CERTAIN + jumpifstatus TARGET, STATUS_PARALYSIS, BattleScript_82DA1BA + goto BattleScript_EffectHit + +BattleScript_82DA1BA:: + setbyte sDMG_MULTIPLIER, 0x2 + goto BattleScript_EffectHit + +BattleScript_EffectFollowMe:: + attackcanceler + attackstring + ppreduce + setforcedtarget + attackanimation + waitanimation + printstring STRINGID_PKMNCENTERATTENTION + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectNaturePower:: + attackcanceler + attackstring + pause 0x20 + callterrainattack + printstring STRINGID_NATUREPOWERTURNEDINTO + waitmessage 0x40 + return + +BattleScript_EffectCharge:: + attackcanceler + attackstring + ppreduce + setcharge + attackanimation + waitanimation + printstring STRINGID_PKMNCHARGINGPOWER + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectTaunt:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + settaunt BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNFELLFORTAUNT + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectHelpingHand:: + attackcanceler + attackstring + ppreduce + trysethelpinghand BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNREADYTOHELP + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectTrick:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + tryswapitems BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSWITCHEDITEMS + waitmessage 0x40 + printfromtable gItemSwapStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRolePlay:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + trycopyability BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNCOPIEDFOE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectWish:: + attackcanceler + attackstring + ppreduce + trywish 0x0, BattleScript_ButItFailed + attackanimation + waitanimation + goto BattleScript_MoveEnd + +BattleScript_EffectAssist:: + attackcanceler + attackstring + asistattackselect BattleScript_ButItFailedPpReduce + attackanimation + waitanimation + setbyte sANIM_TURN, 0x0 + setbyte sANIM_TARGETS_HIT, 0x0 + jumptorandomattack 0x1 + +BattleScript_EffectIngrain:: + attackcanceler + attackstring + ppreduce + trysetroots BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNPLANTEDROOTS + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSuperpower:: + setmoveeffect EFFECT_ATK_DEF_DOWN | AFFECTS_USER | CERTAIN + goto BattleScript_EffectHit + +BattleScript_EffectMagicCoat:: + attackcanceler + trysetmagiccoat BattleScript_ButItFailedAtkStringPpReduce + attackstring + ppreduce + attackanimation + waitanimation + printstring STRINGID_PKMNSHROUDEDITSELF + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRecycle:: + attackcanceler + attackstring + ppreduce + tryrecycleitem BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_XFOUNDONEY + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRevenge:: + doubledamagedealtifdamaged + goto BattleScript_EffectHit + +BattleScript_EffectBrickBreak:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + removelightscreenreflect + critcalc + damagecalc + typecalc + adjustnormaldamage + jumpifbyte EQUAL, sANIM_TURN, 0x0, BattleScript_82DA306 + bicbyte gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED +BattleScript_82DA306:: + attackanimation + waitanimation + jumpifbyte LESS_THAN, sANIM_TURN, 0x2, BattleScript_82DA319 + printstring STRINGID_THEWALLSHATTERED + waitmessage 0x40 +BattleScript_82DA319:: + typecalc2 + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + seteffectwithchance + tryfaintmon TARGET, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_EffectYawn:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_VITAL_SPIRIT, BattleScript_82DA378 + jumpifability TARGET, ABILITY_INSOMNIA, BattleScript_82DA378 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + jumpifcantmakeasleep BattleScript_ButItFailed + setyawn BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNWASMADEDROWSY + waitmessage 0x40 + goto BattleScript_MoveEnd +BattleScript_82DA378:: + copybyte sBANK, sFIELD_15 +BattleScript_82DA382:: + pause 0x20 + printstring STRINGID_PKMNSXMADEITINEFFECTIVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectKnockOff:: + setmoveeffect EFFECT_KNOCK_OFF + goto BattleScript_EffectHit + +BattleScript_EffectEndeavor:: + attackcanceler + attackstring + ppreduce + setdamagetohealthdifference BattleScript_ButItFailed + copyword gHpDealt, gBattleMoveDamage + accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + typecalc + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_HitFromAtkAnimation + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + copyword gBattleMoveDamage, gHpDealt + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectEruption:: + scaledamagebyhealthratio + goto BattleScript_EffectHit + +BattleScript_EffectSkillSwap:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + tryswapabilities BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSWAPPEDABILITIES + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectImprison:: + attackcanceler + attackstring + ppreduce + tryimprision BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSEALEDOPPONENTMOVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRefresh:: + attackcanceler + attackstring + ppreduce + cureifburnedparalysedorpoisoned BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSTATUSNORMAL + waitmessage 0x40 + updatestatusicon ATTACKER + goto BattleScript_MoveEnd + +BattleScript_EffectGrudge:: + attackcanceler + attackstring + ppreduce + trysetgrudge BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNWANTSGRUDGE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSnatch:: + attackcanceler + trysetsnatch BattleScript_ButItFailedAtkStringPpReduce + attackstring + ppreduce + attackanimation + waitanimation + pause 0x20 + printstring STRINGID_PKMNWAITSFORTARGET + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectLowKick:: + attackcanceler + attackstring + ppreduce + weightdamagecalculation + accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + goto BattleScript_HitFromCritCalc + +BattleScript_EffectSecretPower:: + getsecretpowereffect + goto BattleScript_EffectHit + +BattleScript_EffectDoubleEdge:: + setmoveeffect EFFECT_RECOIL_33_PARALYSIS | AFFECTS_USER | CERTAIN + goto BattleScript_EffectHit + +BattleScript_EffectTeeterDance:: + attackcanceler + attackstring + ppreduce + setbyte gBankTarget, 0x0 +BattleScript_82DA47B:: + movevaluescleanup + setmoveeffect EFFECT_CONFUSION + jumpifbyteequal gBankAttacker, gBankTarget, BattleScript_82DA4D0 + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_82DA4E5 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82DA501 + jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_82DA50F + jumpifhasnohp TARGET, BattleScript_82DA4D0 + accuracycheck BattleScript_82DA520, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DA4F3 + attackanimation + waitanimation + seteffectprimary + resultmessage + waitmessage 0x40 +BattleScript_82DA4C7:: + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 +BattleScript_82DA4D0:: + addbyte gBankTarget, 0x1 + jumpifbytenotequal gBankTarget, gNoOfAllBanks, BattleScript_82DA47B + end + +BattleScript_82DA4E5:: + pause 0x20 + printstring STRINGID_PKMNPREVENTSCONFUSIONWITH + waitmessage 0x40 + goto BattleScript_82DA4C7 + +BattleScript_82DA4F3:: + pause 0x20 + printstring STRINGID_PKMNUSEDSAFEGUARD + waitmessage 0x40 + goto BattleScript_82DA4C7 + +BattleScript_82DA501:: + pause 0x20 + printstring STRINGID_BUTITFAILED + waitmessage 0x40 + goto BattleScript_82DA4C7 + +BattleScript_82DA50F:: + various23 ATTACKER + pause 0x20 + printstring STRINGID_PKMNALREADYCONFUSED + waitmessage 0x40 + goto BattleScript_82DA4C7 + +BattleScript_82DA520:: + resultmessage + waitmessage 0x40 + goto BattleScript_82DA4C7 + +BattleScript_EffectMudSport:: +BattleScript_EffectWaterSport:: + attackcanceler + attackstring + ppreduce + settypebasedhalvers BattleScript_ButItFailed + attackanimation + waitanimation + printfromtable gSportsUsedStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPoisonFang:: + setmoveeffect EFFECT_TOXIC + goto BattleScript_EffectHit + +BattleScript_EffectWeatherBall:: + setweatherballtype + goto BattleScript_EffectHit + +BattleScript_EffectOverheat:: + setmoveeffect EFFECT_SP_ATK_TWO_DOWN | AFFECTS_USER | CERTAIN + goto BattleScript_EffectHit + +BattleScript_EffectTickle:: + attackcanceler + attackstring + ppreduce + jumpifstat TARGET, GREATER_THAN, ATK, 0x0, BattleScript_TickleDoMoveAnim + jumpifstat TARGET, EQUAL, DEF, 0x0, BattleScript_CantLowerMultipleStats +BattleScript_TickleDoMoveAnim:: + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + attackanimation + waitanimation + setbyte sFIELD_1B, 0x0 + playstatchangeanimation TARGET, 0x6, 0x5 + playstatchangeanimation TARGET, 0x2, 0x1 + setstatchanger ATK, 1, TRUE + statbuffchange 0x1, BattleScript_TickleTryLowerDef + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TickleTryLowerDef + printfromtable gStatDownStringIds + waitmessage 0x40 +BattleScript_TickleTryLowerDef:: + playstatchangeanimation TARGET, 0x4, 0x1 + setstatchanger DEF, 1, TRUE + statbuffchange 0x1, BattleScript_TickleEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TickleEnd + printfromtable gStatDownStringIds + waitmessage 0x40 +BattleScript_TickleEnd:: + goto BattleScript_MoveEnd + +BattleScript_CantLowerMultipleStats:: + pause 0x20 + orbyte gBattleMoveFlags, MOVESTATUS_FAILED + printstring STRINGID_STATSWONTDECREASE2 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectCosmicPower:: + attackcanceler + attackstring + ppreduce + jumpifstat ATTACKER, LESS_THAN, DEF, 0xC, BattleScript_CosmicPowerDoMoveAnim + jumpifstat ATTACKER, EQUAL, SPDEF, 0xC, BattleScript_CantRaiseMultipleStats +BattleScript_CosmicPowerDoMoveAnim:: + attackanimation + waitanimation + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x24, 0x0 + setstatchanger DEF, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_CosmicPowerTrySpDef + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CosmicPowerTrySpDef + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_CosmicPowerTrySpDef:: + setstatchanger SPDEF, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_CosmicPowerEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CosmicPowerEnd + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_CosmicPowerEnd:: + goto BattleScript_MoveEnd + +BattleScript_EffectSkyUppercut:: + orword gHitMarker, HITMARKER_IGNORE_ON_AIR + goto BattleScript_EffectHit + +BattleScript_EffectBulkUp:: + attackcanceler + attackstring + ppreduce + jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_BulkUpDoMoveAnim + jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_CantRaiseMultipleStats +BattleScript_BulkUpDoMoveAnim:: + attackanimation + waitanimation + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x6, 0x0 + setstatchanger ATK, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_BulkUpTryDef + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_BulkUpTryDef + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_BulkUpTryDef:: + setstatchanger DEF, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_BulkUpEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_BulkUpEnd + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_BulkUpEnd:: + goto BattleScript_MoveEnd + +BattleScript_EffectCalmMind:: + attackcanceler + attackstring + ppreduce + jumpifstat ATTACKER, LESS_THAN, SPATK, 0xC, BattleScript_CalmMindDoMoveAnim + jumpifstat ATTACKER, EQUAL, SPDEF, 0xC, BattleScript_CantRaiseMultipleStats +BattleScript_CalmMindDoMoveAnim:: + attackanimation + waitanimation + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x30, 0x0 + setstatchanger SPATK, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_CalmMindTrySpDef + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CalmMindTrySpDef + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_CalmMindTrySpDef:: + setstatchanger SPDEF, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_CalmMindEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CalmMindEnd + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_CalmMindEnd:: + goto BattleScript_MoveEnd + +BattleScript_CantRaiseMultipleStats:: + pause 0x20 + orbyte gBattleMoveFlags, MOVESTATUS_FAILED + printstring STRINGID_STATSWONTINCREASE2 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectDragonDance:: + attackcanceler + attackstring + ppreduce + jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_DragonDanceDoMoveAnim + jumpifstat ATTACKER, EQUAL, SPEED, 0xC, BattleScript_CantRaiseMultipleStats +BattleScript_DragonDanceDoMoveAnim:: + attackanimation + waitanimation + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0xA, 0x0 + setstatchanger ATK, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_DragonDanceTrySpeed + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DragonDanceTrySpeed + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_DragonDanceTrySpeed:: + setstatchanger SPEED, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_DragonDanceEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DragonDanceEnd + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_DragonDanceEnd:: + goto BattleScript_MoveEnd + +BattleScript_EffectCamouflage:: + attackcanceler + attackstring + ppreduce + settypetoterrain BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNCHANGEDTYPE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_FaintAttacker:: + playfaintcry ATTACKER + pause 0x40 + dofaintanimation ATTACKER + cleareffectsonfaint ATTACKER + printstring STRINGID_ATTACKERFAINTED + return + +BattleScript_FaintTarget:: + playfaintcry TARGET + pause 0x40 + dofaintanimation TARGET + cleareffectsonfaint TARGET + printstring STRINGID_TARGETFAINTED + return + +BattleScript_82DA7C4:: + setbyte sGIVEEXP_STATE, 0x0 + getexp TARGET + end2 + +BattleScript_82DA7CD:: + atk24 BattleScript_82DA8F6 + jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_82DA8F5 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_82DA816 + jumpifword NO_COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_82DA816 + printstring STRINGID_USENEXTPKMN + setbyte gBattleCommunication, 0x0 + yesnobox + jumpifbyte EQUAL, gBattleCommunication + 1, 0x0, BattleScript_82DA816 + jumpifplayerran BattleScript_82DA8F5 + printstring STRINGID_CANTESCAPE2 +BattleScript_82DA816:: + openpartyscreen 0x3, BattleScript_82DA8F5 + switchhandleorder GBANK_1, 0x2 + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_82DA8D0 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_LINK, BattleScript_82DA8D0 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_x2000000, BattleScript_82DA8D0 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | BATTLE_TYPE_PYRAMID, BattleScript_82DA8D0 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOUBLE, BattleScript_82DA8D0 + jumpifword COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_82DA8D0 + jumpifbyte EQUAL, sBATTLE_STYLE, 0x1, BattleScript_82DA8D0 + jumpifcantswitch 11, BattleScript_82DA8D0 + printstring STRINGID_ENEMYABOUTTOSWITCHPKMN + setbyte gBattleCommunication, 0x0 + yesnobox + jumpifbyte EQUAL, gBattleCommunication + 1, 0x1, BattleScript_82DA8D0 + setatktoplayer0 + openpartyscreen 0x81, BattleScript_82DA8D0 + switchhandleorder ATTACKER, 0x2 + jumpifbyte EQUAL, gBattleCommunication, 0x6, BattleScript_82DA8D0 + atknameinbuff1 + resetintrimidatetracebits ATTACKER + hpthresholds2 ATTACKER + printstring STRINGID_RETURNMON + switchoutabilities ATTACKER + waitstate + returnatktoball + waitstate + drawpartystatussummary ATTACKER + getswitchedmondata ATTACKER + switchindataupdate ATTACKER + hpthresholds ATTACKER + printstring STRINGID_SWITCHINMON + atk62 ATTACKER + switchinanim ATTACKER, 0x0 + waitstate + switchineffects ATTACKER + resetsentmonsvalue +BattleScript_82DA8D0:: + drawpartystatussummary GBANK_1 + getswitchedmondata GBANK_1 + switchindataupdate GBANK_1 + hpthresholds GBANK_1 + printstring STRINGID_SWITCHINMON + atk62 GBANK_1 + switchinanim GBANK_1, 0x0 + waitstate + various7 ATTACKER + switchineffects GBANK_1 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOUBLE, BattleScript_82DA8F5 + cancelallactions +BattleScript_82DA8F5:: + end2 + +BattleScript_82DA8F6:: + openpartyscreen 0x5, BattleScript_82DA8FC +BattleScript_82DA8FC:: + switchhandleorder GBANK_1, 0x0 + openpartyscreen 0x6, BattleScript_82DA92C + switchhandleorder GBANK_1, 0x0 +BattleScript_82DA908:: + switchhandleorder GBANK_1, 0x3 + drawpartystatussummary GBANK_1 + getswitchedmondata GBANK_1 + switchindataupdate GBANK_1 + hpthresholds GBANK_1 + printstring STRINGID_SWITCHINMON + atk62 GBANK_1 + switchinanim GBANK_1, 0x0 + waitstate + switchineffects 5 + jumpifbytenotequal gBank1, gNoOfAllBanks, BattleScript_82DA908 +BattleScript_82DA92C:: + end2 + +BattleScript_LocalTrainerBattleWon:: + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalTwoTrainersDefeated + printstring STRINGID_PLAYERDEFEATEDTRAINER1 + goto BattleScript_LocalBattleWonLoseTexts +BattleScript_LocalTwoTrainersDefeated:: + printstring STRINGID_TWOENEMIESDEFEATED +BattleScript_LocalBattleWonLoseTexts:: + trainerslidein ATTACKER + waitstate + printstring STRINGID_TRAINER1LOSETEXT + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleWonReward + trainerslideout IDENTITY_OPPONENT_MON1 + waitstate + trainerslidein GBANK_1 + waitstate + printstring STRINGID_TRAINER2LOSETEXT +BattleScript_LocalBattleWonReward:: + getmoneyreward + printstring STRINGID_PLAYERGOTMONEY + waitmessage 0x40 +BattleScript_PayDayMoneyAndPickUpItems:: + givepaydaymoney + pickup + end2 + +BattleScript_LocalBattleLost:: + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOME, BattleScript_CheckDomeDrew + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | BATTLE_TYPE_PYRAMID, BattleScript_LocalBattleLostPrintTrainersWinText + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_x4000000, BattleScript_LocalBattleLostPrintTrainersWinText + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_EREADER_TRAINER, BattleScript_LocalBattleLostEnd + jumpifhalfword EQUAL, gTrainerBattleOpponent_A, 0x400, BattleScript_LocalBattleLostEnd +BattleScript_LocalBattleLostPrintWhiteOut:: + printstring STRINGID_PLAYERWHITEOUT + waitmessage 0x40 + printstring STRINGID_PLAYERWHITEOUT2 + waitmessage 0x40 +BattleScript_LocalBattleLostEnd:: + end2 +BattleScript_CheckDomeDrew:: + jumpifbyte EQUAL, gBattleOutcome, DREW, BattleScript_LocalBattleLostEnd_ +BattleScript_LocalBattleLostPrintTrainersWinText:: + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_LocalBattleLostPrintWhiteOut + returnopponentmon1toball ATTACKER + waitstate + returnopponentmon2toball ATTACKER + waitstate + trainerslidein ATTACKER + waitstate + printstring STRINGID_TRAINER1WINTEXT + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_x800000, BattleScript_LocalBattleLostDoTrainer2WinText + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleLostEnd_ +BattleScript_LocalBattleLostDoTrainer2WinText:: + trainerslideout IDENTITY_OPPONENT_MON1 + waitstate + trainerslidein GBANK_1 + waitstate + printstring STRINGID_TRAINER2WINTEXT +BattleScript_LocalBattleLostEnd_:: + end2 + +BattleScript_82DAA0B:: + returnopponentmon1toball ATTACKER + waitstate + returnopponentmon2toball ATTACKER + waitstate + trainerslidein ATTACKER + waitstate + printstring STRINGID_TRAINER1WINTEXT + trainerslideout IDENTITY_OPPONENT_MON1 + waitstate + trainerslidein GBANK_1 + waitstate + printstring STRINGID_TRAINER2WINTEXT + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_RECORDED, BattleScript_82DAA31 + atk57 +BattleScript_82DAA31:: + waitmessage 0x40 + end2 + +BattleScript_LinkBattleWonOrLost:: + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_BATTLE_TOWER, BattleScript_82DAA5C + printstring STRINGID_BATTLEEND + waitmessage 0x40 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_RECORDED, BattleScript_LinkBattleWonOrLostWaitEnd + atk57 +BattleScript_LinkBattleWonOrLostWaitEnd:: + waitmessage 0x40 + end2 + +BattleScript_82DAA5C:: + playtrainerdefeatbgm ATTACKER + printstring STRINGID_BATTLEEND + waitmessage 0x40 + trainerslidein ATTACKER + waitstate + printstring STRINGID_TRAINER1LOSETEXT + trainerslideout IDENTITY_OPPONENT_MON1 + waitstate + trainerslidein GBANK_1 + waitstate + printstring STRINGID_TRAINER2LOSETEXT + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_RECORDED, BattleScript_82DAA83 + atk57 +BattleScript_82DAA83:: + waitmessage 0x40 + end2 + +BattleScript_FrontierTrainerBattleWon:: + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_PayDayMoneyAndPickUpItems + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAAAB + printstring STRINGID_PLAYERDEFEATEDTRAINER1 + goto BattleScript_82DAAAE +BattleScript_82DAAAB:: + printstring STRINGID_TWOENEMIESDEFEATED +BattleScript_82DAAAE:: + trainerslidein ATTACKER + waitstate + printstring STRINGID_TRAINER1LOSETEXT + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAACB + trainerslideout IDENTITY_OPPONENT_MON1 + waitstate + trainerslidein GBANK_1 + waitstate + printstring STRINGID_TRAINER2LOSETEXT +BattleScript_82DAACB:: + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_PYRAMID, BattleScript_82DAADA + pickup +BattleScript_82DAADA:: + end2 + +BattleScript_SmokeBallEscape:: + playanimation ATTACKER, ANIM_SMOKEBALL_ESCAPE, NULL + printstring STRINGID_PKMNFLEDUSINGITS + waitmessage 0x40 + end2 + +BattleScript_RanAwayUsingMonAbility:: + printstring STRINGID_PKMNFLEDUSING + waitmessage 0x40 + end2 + +BattleScript_GotAwaySafely:: + printstring STRINGID_GOTAWAYSAFELY + waitmessage 0x40 + end2 + +BattleScript_WildMonFled:: + printstring STRINGID_WILDPKMNFLED + waitmessage 0x40 + end2 + +BattleScript_PrintCantRunFromTrainer:: + printstring STRINGID_NORUNNINGFROMTRAINERS + end2 + +BattleScript_PrintFailedToRunString:: + printfromtable gNoEscapeStringIds + waitmessage 0x40 + end2 + +BattleScript_PrintCantEscapeFromBattle:: + printselectionstringfromtable gNoEscapeStringIds + endselectionscript + +BattleScript_PrintFullBox:: + printselectionstring STRINGID_BOXISFULL + endselectionscript + +BattleScript_ActionSwitch:: + hpthresholds2 ATTACKER + printstring STRINGID_RETURNMON + setbyte sDMG_MULTIPLIER, 0x2 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOUBLE, BattleScript_82DAB35 + setmultihit 0x1 + goto BattleScript_82DAB37 + +BattleScript_82DAB35:: + setmultihit 0x2 +BattleScript_82DAB37:: + jumpifnopursuitswitchdmg BattleScript_82DAB44 + atk5F + trysetdestinybondtohappen + call BattleScript_82DAB77 + atk5F +BattleScript_82DAB44:: + decrementmultihit BattleScript_82DAB37 + switchoutabilities ATTACKER + waitstate + returnatktoball + waitstate + drawpartystatussummary ATTACKER + switchhandleorder ATTACKER, 0x1 + getswitchedmondata ATTACKER + switchindataupdate ATTACKER + hpthresholds ATTACKER + printstring STRINGID_SWITCHINMON + atk62 ATTACKER + switchinanim ATTACKER, 0x0 + waitstate + switchineffects ATTACKER + setbyte sMOVEEND_STATE, 0x4 + moveend 0x1, 0x0 + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + end2 + +BattleScript_82DAB77:: + pause 0x20 + attackstring + ppreduce + critcalc + damagecalc + typecalc + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0x3 + moveend 0x2, 0x6 + various4 TARGET + jumpifbyte EQUAL, gBattleCommunication, 0x0, BattleScript_82DABB8 + setbyte sGIVEEXP_STATE, 0x0 + getexp TARGET +BattleScript_82DABB8:: + return + +BattleScript_Pausex20:: + pause 0x20 + return + +BattleScript_LevelUp:: + fanfare BGM_FANFA1 + printstring STRINGID_PKMNGREWTOLV + setbyte sLVLBOX_STATE, 0x0 + drawlvlupbox + handlelearnnewmove BattleScript_LearnedNewMove, BattleScript_LearnMoveReturn, TRUE + goto BattleScript_AskToLearnMove +BattleScript_TryLearnMoveLoop:: + handlelearnnewmove BattleScript_LearnedNewMove, BattleScript_LearnMoveReturn, FALSE +BattleScript_AskToLearnMove:: + buffermovetolearn + printstring STRINGID_TRYTOLEARNMOVE1 + printstring STRINGID_TRYTOLEARNMOVE2 + printstring STRINGID_TRYTOLEARNMOVE3 + waitstate + setbyte sLEARNMOVE_STATE, 0x0 + yesnoboxlearnmove BattleScript_ForgotAndLearnedNewMove + printstring STRINGID_STOPLEARNINGMOVE + waitstate + setbyte sLEARNMOVE_STATE, 0x0 + yesnoboxstoplearningmove BattleScript_AskToLearnMove + printstring STRINGID_DIDNOTLEARNMOVE + goto BattleScript_TryLearnMoveLoop +BattleScript_ForgotAndLearnedNewMove:: + printstring STRINGID_123POOF + printstring STRINGID_PKMNFORGOTMOVE + printstring STRINGID_ANDELLIPSIS +BattleScript_LearnedNewMove:: + buffermovetolearn + fanfare BGM_FANFA1 + printstring STRINGID_PKMNLEARNEDMOVE + waitmessage 0x40 + updatechoicemoveonlvlup ATTACKER + goto BattleScript_TryLearnMoveLoop +BattleScript_LearnMoveReturn:: + return + +BattleScript_RainContinuesOrEnds:: + printfromtable gRainContinuesStringIds + waitmessage 0x40 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_RainContinuesOrEndsEnd + playanimation ATTACKER, ANIM_RAIN_CONTINUES, NULL +BattleScript_RainContinuesOrEndsEnd:: + end2 + +BattleScript_DamagingWeatherContinues:: + printfromtable gSandStormHailContinuesStringIds + waitmessage 0x40 + playanimation2 ATTACKER, sANIM_ARG1, NULL + setbyte gBattleCommunication, 0x0 +BattleScript_DamagingWeatherLoop:: + copyarraywithindex gBankAttacker, gBanksByTurnOrder, gBattleCommunication, 0x1 + weatherdamage + jumpifword EQUAL, gBattleMoveDamage, 0x0, BattleScript_DamagingWeatherLoopIncrement + printfromtable gSandStormHailDmgStringIds + waitmessage 0x40 + orword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE + effectivenesssound + hitanimation ATTACKER + healthbarupdate ATTACKER + datahpupdate ATTACKER + tryfaintmon ATTACKER, FALSE, NULL + atk24 BattleScript_DamagingWeatherLoopIncrement +BattleScript_DamagingWeatherLoopIncrement:: + jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_DamagingWeatherContinuesEnd + addbyte gBattleCommunication, 0x1 + jumpifbytenotequal gBattleCommunication, gNoOfAllBanks, BattleScript_DamagingWeatherLoop +BattleScript_DamagingWeatherContinuesEnd:: + bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE + end2 + +BattleScript_SandStormHailEnds:: + printfromtable gSandStormHailEndStringIds + waitmessage 0x40 + end2 + +BattleScript_SunlightContinues:: + printstring STRINGID_SUNLIGHTSTRONG + waitmessage 0x40 + playanimation ATTACKER, ANIM_SUN_CONTINUES, NULL + end2 + +BattleScript_SunlightFaded:: + printstring STRINGID_SUNLIGHTFADED + waitmessage 0x40 + end2 + +BattleScript_OverworldWeatherStarts:: + printfromtable gWeatherContinuesStringIds + waitmessage 0x40 + playanimation2 ATTACKER, sANIM_ARG1, NULL + end3 + +BattleScript_SideStatusWoreOff:: + printstring STRINGID_PKMNSXWOREOFF + waitmessage 0x40 + end2 + +BattleScript_SafeguardProtected:: + pause 0x20 + printstring STRINGID_PKMNUSEDSAFEGUARD + waitmessage 0x40 + end2 + +BattleScript_SafeguardEnds:: + pause 0x20 + printstring STRINGID_PKMNSAFEGUARDEXPIRED + waitmessage 0x40 + end2 + +BattleScript_LeechSeedTurnDrain:: + playanimation ATTACKER, ANIM_LEECH_SEED_DRAIN, sANIM_ARG1 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + copyword gBattleMoveDamage, gHpDealt + jumpifability ATTACKER, ABILITY_LIQUID_OOZE, BattleScript_82DAD47 + manipulatedamage ATK80_DMG_CHANGE_SIGN + setbyte cMULTISTRING_CHOOSER, 0x3 + goto BattleScript_82DAD4D + +BattleScript_82DAD47:: + setbyte cMULTISTRING_CHOOSER, 0x4 +BattleScript_82DAD4D:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate TARGET + datahpupdate TARGET + printfromtable gLeechSeedStringIds + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL + tryfaintmon TARGET, FALSE, NULL + end2 + +BattleScript_BideStoringEnergy:: + printstring STRINGID_PKMNSTORINGENERGY + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_BideAttack:: + attackcanceler + setmoveeffect EFFECT_CHARGING + clearstatusfromeffect ATTACKER + printstring STRINGID_PKMNUNLEASHEDENERGY + waitmessage 0x40 + accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + copyword gBattleMoveDamage, sBIDE_DMG + adjustsetdamage + setbyte sANIM_TURN, 0x1 + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + resultmessage + waitmessage 0x40 + tryfaintmon TARGET, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_BideNoEnergyToAttack:: + attackcanceler + setmoveeffect EFFECT_CHARGING + clearstatusfromeffect ATTACKER + printstring STRINGID_PKMNUNLEASHEDENERGY + waitmessage 0x40 + goto BattleScript_ButItFailed + +BattleScript_82DADD8:: + attackanimation + waitanimation + switchoutabilities TARGET + returntoball TARGET + waitstate + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_82DADF1 + setoutcomeonteleport ATTACKER + finishaction + +BattleScript_82DADF1:: + getswitchedmondata TARGET + switchindataupdate TARGET + switchinanim TARGET, 0x0 + waitstate + printstring STRINGID_PKMNWASDRAGGEDOUT + switchineffects TARGET + goto BattleScript_MoveEnd + +BattleScript_MistProtected:: + pause 0x20 + printstring STRINGID_PKMNPROTECTEDBYMIST + waitmessage 0x40 + return + +BattleScript_RageIsBuilding:: + printstring STRINGID_PKMNRAGEBUILDING + waitmessage 0x40 + return + +BattleScript_MoveUsedIsDisabled:: + printstring STRINGID_PKMNMOVEISDISABLED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_SelectingDisabledMove:: + printselectionstring STRINGID_PKMNMOVEISDISABLED + endselectionscript + +BattleScript_DisabledNoMore:: + printstring STRINGID_PKMNMOVEDISABLEDNOMORE + waitmessage 0x40 + end2 + +BattleScript_82DAE2A:: + printstring STRINGID_PKMNMOVEISDISABLED +BattleScript_82DAE2D:: + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + end + +BattleScript_EncoredNoMore:: + printstring STRINGID_PKMNENCOREENDED + waitmessage 0x40 + end2 + +BattleScript_DestinyBondTakesLife:: + printstring STRINGID_PKMNTOOKFOE + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + tryfaintmon ATTACKER, FALSE, NULL + return + +BattleScript_SpikesOnAttacker:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + call BattleScript_82DAEFE + tryfaintmon ATTACKER, FALSE, NULL + tryfaintmon ATTACKER, TRUE, BattleScript_82DAE7A + return + +BattleScript_82DAE7A:: + setbyte sGIVEEXP_STATE, 0x0 + getexp ATTACKER + setbyte sMOVEEND_STATE, 0x0 + moveend 0x0, 0x0 + goto BattleScript_82DA7CD + +BattleScript_SpikesOnTarget:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate TARGET + datahpupdate TARGET + call BattleScript_82DAEFE + tryfaintmon TARGET, FALSE, NULL + tryfaintmon TARGET, TRUE, BattleScript_82DAEB1 + return + +BattleScript_82DAEB1:: + setbyte sGIVEEXP_STATE, 0x0 + getexp TARGET + setbyte sMOVEEND_STATE, 0x0 + moveend 0x0, 0x0 + goto BattleScript_82DA7CD + +BattleScript_SpikesOngBank1:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate GBANK_1 + datahpupdate GBANK_1 + call BattleScript_82DAEFE + tryfaintmon GBANK_1, FALSE, NULL + tryfaintmon GBANK_1, TRUE, BattleScript_82DAEE8 + return + +BattleScript_82DAEE8:: + setbyte sGIVEEXP_STATE, 0x0 + getexp GBANK_1 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x0, 0x0 + goto BattleScript_82DA7CD + +BattleScript_82DAEFE:: + printstring STRINGID_PKMNHURTBYSPIKES + waitmessage 0x40 + return + +BattleScript_PerishSongTakesLife:: + printstring STRINGID_PKMNPERISHCOUNTFELL + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + tryfaintmon ATTACKER, FALSE, NULL + end2 + +BattleScript_PerishSongCountGoesDown:: + printstring STRINGID_PKMNPERISHCOUNTFELL + waitmessage 0x40 + end2 + +BattleScript_AllStatsUp:: + jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_82DAF54 + jumpifstat ATTACKER, LESS_THAN, DEF, 0xC, BattleScript_82DAF54 + jumpifstat ATTACKER, LESS_THAN, SPEED, 0xC, BattleScript_82DAF54 + jumpifstat ATTACKER, LESS_THAN, SPATK, 0xC, BattleScript_82DAF54 + jumpifstat ATTACKER, EQUAL, SPDEF, 0xC, BattleScript_82DAFC2 +BattleScript_82DAF54:: + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x3E, 0x0 + setstatchanger ATK, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_82DAF72 + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_82DAF72:: + setstatchanger DEF, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_82DAF86 + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_82DAF86:: + setstatchanger SPEED, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_82DAF9A + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_82DAF9A:: + setstatchanger SPATK, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_82DAFAE + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_82DAFAE:: + setstatchanger SPDEF, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_82DAFC2 + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_82DAFC2:: + return + +BattleScript_RapidSpinAway:: + rapidspinfree + return + +BattleScript_WrapFree:: + printstring STRINGID_PKMNGOTFREE + waitmessage 0x40 + copybyte gBankTarget, sBANK + return + +BattleScript_LeechSeedFree:: + printstring STRINGID_PKMNSHEDLEECHSEED + waitmessage 0x40 + return + +BattleScript_SpikesFree:: + printstring STRINGID_PKMNBLEWAWAYSPIKES + waitmessage 0x40 + return + +BattleScript_MonTookFutureAttack:: + printstring STRINGID_PKMNTOOKATTACK + waitmessage 0x40 + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_82DB001 + accuracycheck BattleScript_82DB058, MOVE_FUTURE_SIGHT + goto BattleScript_82DB008 +BattleScript_82DB001:: + accuracycheck BattleScript_82DB058, MOVE_DOOM_DESIRE +BattleScript_82DB008:: + adjustnormaldamage2 + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_82DB020 + playanimation ATTACKER, ANIM_FUTURE_SIGHT_HIT, NULL + goto BattleScript_82DB027 +BattleScript_82DB020:: + playanimation ATTACKER, ANIM_x13, NULL +BattleScript_82DB027:: + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + resultmessage + waitmessage 0x40 + tryfaintmon TARGET, FALSE, NULL + atk24 BattleScript_82DB03F +BattleScript_82DB03F:: + setbyte sMOVEEND_STATE, 0x0 + moveend 0x1, 0x0 + setbyte sMOVEEND_STATE, 0xB + moveend 0x2, 0xE + setbyte gBattleMoveFlags, 0 + end2 +BattleScript_82DB058:: + pause 0x20 + setbyte gBattleMoveFlags, 0 + orbyte gBattleMoveFlags, MOVESTATUS_FAILED + resultmessage + waitmessage 0x40 + setbyte gBattleMoveFlags, 0 + end2 + +BattleScript_NoMovesLeft:: + printselectionstring STRINGID_PKMNHASNOMOVESLEFT + endselectionscript + +BattleScript_SelectingMoveWithNoPP:: + printselectionstring STRINGID_NOPPLEFT + endselectionscript + +BattleScript_NoPPForMove:: + attackstring + pause 0x20 + printstring STRINGID_BUTNOPPLEFT + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_SelectingTormentedMove:: + printselectionstring STRINGID_PKMNCANTUSEMOVETORMENT + endselectionscript + +BattleScript_82DB08D:: + printstring STRINGID_PKMNCANTUSEMOVETORMENT + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82DB098:: + printstring STRINGID_PKMNCANTUSEMOVETORMENT + goto BattleScript_82DAE2D + +BattleScript_SelectingNotAllowedMoveTaunt:: + printselectionstring STRINGID_PKMNCANTUSEMOVETAUNT + endselectionscript + +BattleScript_MoveUsedIsTaunted:: + printstring STRINGID_PKMNCANTUSEMOVETAUNT + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82DB0AF:: + printstring STRINGID_PKMNCANTUSEMOVETAUNT + goto BattleScript_82DAE2D + +BattleScript_WishComesTrue:: + trywish 0x1, BattleScript_82DB0DE + playanimation TARGET, ANIM_WISH_HEAL, NULL + printstring STRINGID_PKMNWISHCAMETRUE + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate TARGET + datahpupdate TARGET + printstring STRINGID_PKMNREGAINEDHEALTH + waitmessage 0x40 + end2 + +BattleScript_82DB0DE:: + printstring STRINGID_PKMNWISHCAMETRUE + waitmessage 0x40 + pause 0x20 + printstring STRINGID_PKMNHPFULL + waitmessage 0x40 + end2 + +BattleScript_IngrainTurnHeal:: + playanimation ATTACKER, ANIM_INGRAIN_HEAL, NULL + printstring STRINGID_PKMNABSORBEDNUTRIENTS + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + end2 + +BattleScript_82DB109:: + pause 0x20 + printstring STRINGID_PKMNANCHOREDITSELF + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AtkDefDown:: + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x6, 0xD + playstatchangeanimation ATTACKER, 0x2, 0x9 + setstatchanger ATK, 1, TRUE + statbuffchange AFFECTS_USER | CERTAIN | 0x1, BattleScript_82DB144 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB144 + printfromtable gStatDownStringIds + waitmessage 0x40 +BattleScript_82DB144:: + playstatchangeanimation ATTACKER, 0x4, 0x9 + setstatchanger DEF, 1, TRUE + statbuffchange AFFECTS_USER | CERTAIN | 0x1, BattleScript_82DB167 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB167 + printfromtable gStatDownStringIds + waitmessage 0x40 +BattleScript_82DB167:: + return + +BattleScript_KnockedOff:: + playanimation TARGET, ANIM_ITEM_KNOCKOFF, NULL + printstring STRINGID_PKMNKNOCKEDOFF + waitmessage 0x40 + return + +BattleScript_MoveUsedIsImprisoned:: + printstring STRINGID_PKMNCANTUSEMOVESEALED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_SelectingImprisionedMove:: + printselectionstring STRINGID_PKMNCANTUSEMOVESEALED + endselectionscript + +BattleScript_82DB185:: + printstring STRINGID_PKMNCANTUSEMOVESEALED + goto BattleScript_82DAE2D + +BattleScript_GrudgeTakesPp:: + printstring STRINGID_PKMNLOSTPPGRUDGE + waitmessage 0x40 + return + +BattleScript_MagicCoatBounce:: + attackstring + ppreduce + pause 0x20 + printstring STRINGID_PKMNMOVEBOUNCED + waitmessage 0x40 + orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000 + setmagiccoattarget ATTACKER + return + +BattleScript_SnatchedMove:: + attackstring + ppreduce + snatchsetbanks + playanimation TARGET, ANIM_SNATCH_MOVE, NULL + printstring STRINGID_PKMNSNATCHEDMOVE + waitmessage 0x40 + orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000 + atk5F + return + +BattleScript_EnduredMsg:: + printstring STRINGID_PKMNENDUREDHIT + waitmessage 0x40 + return + +BattleScript_OneHitKOMsg:: + printstring STRINGID_ONEHITKO + waitmessage 0x40 + return + +BattleScript_SAtkDown2:: + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x10, 0xB + setstatchanger SPATK, 2, TRUE + statbuffchange AFFECTS_USER | CERTAIN | 0x1, BattleScript_82DB1FE + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB1FE + printfromtable gStatDownStringIds + waitmessage 0x40 +BattleScript_82DB1FE:: + return + +BattleScript_FocusPunchSetUp:: + printstring STRINGID_EMPTYSTRING3 + waitmessage 0x1 + playanimation ATTACKER, ANIM_x14, NULL + printstring STRINGID_PKMNTIGHTENINGFOCUS + waitmessage 0x40 + end2 + +BattleScript_MoveUsedIsAsleep:: + printstring STRINGID_PKMNFASTASLEEP + waitmessage 0x40 + statusanimation ATTACKER + goto BattleScript_MoveEnd + +BattleScript_MoveUsedWokeUp:: + bicword gHitMarker, HITMARKER_x10 + printfromtable gWokeUpStringIds + waitmessage 0x40 + updatestatusicon ATTACKER + return + +BattleScript_MonWokeUpInUproar:: + printstring STRINGID_PKMNWOKEUPINUPROAR + waitmessage 0x40 + updatestatusicon ATTACKER + end2 + +BattleScript_PoisonTurnDmg:: + printstring STRINGID_PKMNHURTBYPOISON + waitmessage 0x40 +BattleScript_82DB243:: + statusanimation ATTACKER +BattleScript_82DB245:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + tryfaintmon ATTACKER, FALSE, NULL + atk24 BattleScript_82DB25E +BattleScript_82DB25E:: + end2 + +BattleScript_BurnTurnDmg:: + printstring STRINGID_PKMNHURTBYBURN + waitmessage 0x40 + goto BattleScript_82DB243 + +BattleScript_MoveUsedIsFrozen:: + printstring STRINGID_PKMNISFROZEN + waitmessage 0x40 + statusanimation ATTACKER + goto BattleScript_MoveEnd + +BattleScript_MoveUsedUnfroze:: + printfromtable gGotDefrostedStringIds + waitmessage 0x40 + updatestatusicon ATTACKER + return + +BattleScript_DefrostedViaFireMove:: + printstring STRINGID_PKMNWASDEFROSTED + waitmessage 0x40 + updatestatusicon TARGET + return + +BattleScript_MoveUsedIsParalyzed:: + printstring STRINGID_PKMNISPARALYZED + waitmessage 0x40 + statusanimation ATTACKER + cancelmultiturnmoves ATTACKER + goto BattleScript_MoveEnd + +BattleScript_MoveUsedFlinched:: + printstring STRINGID_PKMNFLINCHED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_PrintUproarOverTurns:: + printfromtable gUproarOverTurnStringIds + waitmessage 0x40 + end2 + +BattleScript_ThrashConfuses:: + chosenstatus2animation ATTACKER, STATUS2_CONFUSION + printstring STRINGID_PKMNFATIGUECONFUSION + waitmessage 0x40 + end2 + +BattleScript_MoveUsedIsConfused:: + printstring STRINGID_PKMNISCONFUSED + waitmessage 0x40 + status2animation ATTACKER, STATUS2_CONFUSION + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_82DB2FF +BattleScript_82DB2D4:: + cancelmultiturnmoves ATTACKER + adjustnormaldamage2 + printstring STRINGID_ITHURTCONFUSION + waitmessage 0x40 + effectivenesssound + hitanimation ATTACKER + waitstate + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + resultmessage + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL + goto BattleScript_MoveEnd +BattleScript_82DB2FF:: + return + +BattleScript_MoveUsedIsConfusedNoMore:: + printstring STRINGID_PKMNHEALEDCONFUSION + waitmessage 0x40 + return + +BattleScript_PrintPayDayMoneyString:: + printstring STRINGID_PKMNPICKEDUPITEM + waitmessage 0x40 + return + +BattleScript_WrapTurnDmg:: + playanimation ATTACKER, ANIM_TURN_TRAP, sANIM_ARG1 + printstring STRINGID_PKMNHURTBY + waitmessage 0x40 + goto BattleScript_82DB245 + +BattleScript_WrapEnds:: + printstring STRINGID_PKMNFREEDFROM + waitmessage 0x40 + end2 + +BattleScript_MoveUsedIsInLove:: + printstring STRINGID_PKMNINLOVE + waitmessage 0x40 + status2animation ATTACKER, STATUS2_INFATUATION + return + +BattleScript_MoveUsedIsParalyzedCantAttack:: + printstring STRINGID_PKMNIMMOBILIZEDBYLOVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_NightmareTurnDmg:: + printstring STRINGID_PKMNLOCKEDINNIGHTMARE + waitmessage 0x40 + status2animation ATTACKER, STATUS2_NIGHTMARE + goto BattleScript_82DB245 + +BattleScript_CurseTurnDmg:: + printstring STRINGID_PKMNAFFLICTEDBYCURSE + waitmessage 0x40 + status2animation ATTACKER, STATUS2_CURSED + goto BattleScript_82DB245 + +BattleScript_TargetPRLZHeal:: + printstring STRINGID_PKMNHEALEDPARALYSIS + waitmessage 0x40 + updatestatusicon TARGET + return + +BattleScript_MoveEffectSleep:: + statusanimation EFFECT_BANK + printfromtable gFellAsleepStringIds + waitmessage 0x40 +BattleScript_82DB374:: + updatestatusicon EFFECT_BANK + waitstate + return + +BattleScript_YawnMakesAsleep:: + statusanimation EFFECT_BANK + printstring STRINGID_PKMNFELLASLEEP + waitmessage 0x40 + updatestatusicon EFFECT_BANK + waitstate + makevisible EFFECT_BANK + end2 + +BattleScript_MoveEffectPoison:: + statusanimation EFFECT_BANK + printfromtable gGotPoisonedStringIds + waitmessage 0x40 + goto BattleScript_82DB374 + +BattleScript_MoveEffectBurn:: + statusanimation EFFECT_BANK + printfromtable gGotBurnedStringIds + waitmessage 0x40 + goto BattleScript_82DB374 + +BattleScript_MoveEffectFreeze:: + statusanimation EFFECT_BANK + printfromtable gGotFrozenStringIds + waitmessage 0x40 + goto BattleScript_82DB374 + +BattleScript_MoveEffectParalysis:: + statusanimation EFFECT_BANK + printfromtable gGotParalyzedStringIds + waitmessage 0x40 + goto BattleScript_82DB374 + +BattleScript_MoveEffectUproar:: + printstring STRINGID_PKMNCAUSEDUPROAR + waitmessage 0x40 + return + +BattleScript_MoveEffectToxic:: + statusanimation EFFECT_BANK + printstring STRINGID_PKMNBADLYPOISONED + waitmessage 0x40 + goto BattleScript_82DB374 + +BattleScript_MoveEffectPayDay:: + printstring STRINGID_COINSSCATTERED + waitmessage 0x40 + return + +BattleScript_MoveEffectWrap:: + printfromtable gWrappedStringIds + waitmessage 0x40 + return + +BattleScript_MoveEffectConfusion:: + chosenstatus2animation EFFECT_BANK, STATUS2_CONFUSION + printstring STRINGID_PKMNWASCONFUSED + waitmessage 0x40 + return + +BattleScript_MoveEffectRecoil33:: + jumpifmove MOVE_STRUGGLE, BattleScript_DoRecoil33 + jumpifability ATTACKER, ABILITY_ROCK_HEAD, BattleScript_Recoil33End +BattleScript_DoRecoil33:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNHITWITHRECOIL + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL +BattleScript_Recoil33End:: + return + +BattleScript_ItemSteal:: + playanimation TARGET, ANIM_ITEM_STEAL, NULL + printstring STRINGID_PKMNSTOLEITEM + waitmessage 0x40 + return + +BattleScript_DrizzleActivates:: + pause 0x20 + printstring STRINGID_PKMNMADEITRAIN + waitstate + playanimation BANK0, ANIM_RAIN_CONTINUES, NULL + call BattleScript_WeatherFormChanges + end3 + +BattleScript_SpeedBoostActivates:: + playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1 + printstring STRINGID_PKMNRAISEDSPEED + waitmessage 0x40 + end3 + +BattleScript_TraceActivates:: + pause 0x20 + printstring STRINGID_PKMNTRACED + waitmessage 0x40 + end3 + +BattleScript_RainDishActivates:: + printstring STRINGID_PKMNSXRESTOREDHPALITTLE2 + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + end3 + +BattleScript_SandstreamActivates:: + pause 0x20 + printstring STRINGID_PKMNSXWHIPPEDUPSANDSTORM + waitstate + playanimation BANK0, ANIM_SANDSTORM_CONTINUES, NULL + call BattleScript_WeatherFormChanges + end3 + +BattleScript_ShedSkinActivates:: + printstring STRINGID_PKMNSXCUREDYPROBLEM + waitmessage 0x40 + updatestatusicon ATTACKER + end3 + +BattleScript_WeatherFormChanges:: + setbyte sBANK, 0x0 +BattleScript_WeatherFormChangesLoop:: + trycastformdatachange + addbyte sBANK, 0x1 + jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_WeatherFormChangesLoop + return + +BattleScript_CastformChange:: + call BattleScript_82DB4AF + end3 + +BattleScript_82DB4AF:: + docastformchangeanimation + waitstate + printstring STRINGID_PKMNTRANSFORMED + waitmessage 0x40 + return + +BattleScript_82DB4B8:: + call BattleScript_82DB4BE + end3 + +BattleScript_82DB4BE:: + pause 0x20 +BattleScript_82DB4C1:: + setbyte gBankTarget, 0x0 + setstatchanger ATK, 1, TRUE +BattleScript_82DB4CD:: + trygetintimidatetarget BattleScript_82DB51B + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82DB510 + jumpifability TARGET, ABILITY_CLEAR_BODY, BattleScript_82DB51C + jumpifability TARGET, ABILITY_HYPER_CUTTER, BattleScript_82DB51C + jumpifability TARGET, ABILITY_WHITE_SMOKE, BattleScript_82DB51C + statbuffchange 0x21, BattleScript_82DB510 + jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DB510 + setgraphicalstatchangevalues + playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 + printstring STRINGID_PKMNCUTSATTACKWITH + waitmessage 0x40 +BattleScript_82DB510:: + addbyte gBankTarget, 0x1 + goto BattleScript_82DB4CD +BattleScript_82DB51B:: + return + +BattleScript_82DB51C:: + pause 0x20 + printstring STRINGID_PREVENTEDFROMWORKING + waitmessage 0x40 + goto BattleScript_82DB510 + +BattleScript_DroughtActivates:: + pause 0x20 + printstring STRINGID_PKMNSXINTENSIFIEDSUN + waitstate + playanimation BANK0, ANIM_SUN_CONTINUES, NULL + call BattleScript_WeatherFormChanges + end3 + +BattleScript_TookAttack:: + attackstring + pause 0x20 + printstring STRINGID_PKMNSXTOOKATTACK + waitmessage 0x40 + orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED + return + +BattleScript_SturdyPreventsOHKO:: + pause 0x20 + printstring STRINGID_PKMNPROTECTEDBY + pause 0x40 + goto BattleScript_MoveEnd + +BattleScript_DampStopsExplosion:: + pause 0x20 + printstring STRINGID_PKMNPREVENTSUSAGE + pause 0x40 + goto BattleScript_MoveEnd + +BattleScript_MoveHPDrain_PPLoss:: + ppreduce +BattleScript_MoveHPDrain:: + attackstring + pause 0x20 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate TARGET + datahpupdate TARGET + printstring STRINGID_PKMNRESTOREDHPUSING + waitmessage 0x40 + orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED + goto BattleScript_MoveEnd + +BattleScript_MonMadeMoveUseless_PPLoss:: + ppreduce +BattleScript_MonMadeMoveUseless:: + attackstring + pause 0x20 + printstring STRINGID_PKMNSXMADEYUSELESS + waitmessage 0x40 + orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED + goto BattleScript_MoveEnd + +BattleScript_FlashFireBoost_PPLoss:: + ppreduce +BattleScript_FlashFireBoost:: + attackstring + pause 0x20 + printfromtable gFlashFireStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82DB5B9:: + pause 0x20 + printstring STRINGID_PKMNANCHORSITSELFWITH + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AbilityNoStatLoss:: + pause 0x20 + printstring STRINGID_PKMNPREVENTSSTATLOSSWITH + waitmessage 0x40 + return + +BattleScript_BRNPrevention:: + pause 0x20 + printfromtable gBRNPreventionStringIds + waitmessage 0x40 + return + +BattleScript_PRLZPrevention:: + pause 0x20 + printfromtable gPRLZPreventionStringIds + waitmessage 0x40 + return + +BattleScript_PSNPrevention:: + pause 0x20 + printfromtable gPSNPreventionStringIds + waitmessage 0x40 + return + +BattleScript_ObliviousPreventsAttraction:: + pause 0x20 + printstring STRINGID_PKMNPREVENTSROMANCEWITH + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_FlinchPrevention:: + pause 0x20 + printstring STRINGID_PKMNSXPREVENTSFLINCHING + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_OwnTempoPrevents:: + pause 0x20 + printstring STRINGID_PKMNPREVENTSCONFUSIONWITH + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_SoundproofProtected:: + attackstring + ppreduce + pause 0x20 + printstring STRINGID_PKMNSXBLOCKSY + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AbilityNoSpecificStatLoss:: + pause 0x20 + printstring STRINGID_PKMNSXPREVENTSYLOSS + waitmessage 0x40 + setbyte cMULTISTRING_CHOOSER, 0x3 + return + +BattleScript_StickyHoldActivates:: + pause 0x20 + printstring STRINGID_PKMNSXMADEYINEFFECTIVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_ColorChangeActivates:: + printstring STRINGID_PKMNCHANGEDTYPEWITH + waitmessage 0x40 + return + +BattleScript_RoughSkinActivates:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNHURTSWITH + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL + return + +BattleScript_CuteCharmActivates:: + status2animation ATTACKER, STATUS2_INFATUATION + printstring STRINGID_PKMNSXINFATUATEDY + waitmessage 0x40 + return + +BattleScript_ApplySecondaryEffect:: + waitstate + seteffectsecondary + return + +BattleScript_SynchronizeActivates:: + waitstate + seteffectprimary + return + +BattleScript_NoItemSteal:: + pause 0x20 + printstring STRINGID_PKMNSXMADEYINEFFECTIVE + waitmessage 0x40 + return + +BattleScript_AbilityCuredStatus:: + printstring STRINGID_PKMNSXCUREDITSYPROBLEM + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + return + +BattleScript_82DB695:: + printstring STRINGID_PKMNIGNORESASLEEP + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + end + +BattleScript_IgnoresAndUsesRandomMove:: + printstring STRINGID_PKMNIGNOREDORDERS + waitmessage 0x40 + jumptorandomattack 0x0 + +BattleScript_MoveUsedLoafingAround:: + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x4, BattleScript_82DB6C7 + setbyte gBattleCommunication, 0x0 + various24 ATTACKER + setbyte cMULTISTRING_CHOOSER, 0x4 +BattleScript_82DB6C7:: + printfromtable gInobedientStringIds + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + end + +BattleScript_IgnoresAndFallsAsleep:: + printstring STRINGID_PKMNBEGANTONAP + waitmessage 0x40 + setmoveeffect EFFECT_SLEEP | AFFECTS_USER + seteffectprimary + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + end + +BattleScript_82DB6F0:: + printstring STRINGID_PKMNWONTOBEY + waitmessage 0x40 + goto BattleScript_82DB2D4 + +BattleScript_SubstituteFade:: + playanimation TARGET, ANIM_SUBSTITUTE_FADE, NULL + printstring STRINGID_PKMNSUBSTITUTEFADED + return + +BattleScript_BerryCurePrlzEnd2:: + call BattleScript_BerryCureParRet + end2 + +BattleScript_BerryCureParRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMCUREDPARALYSIS + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCurePsnEnd2:: + call BattleScript_BerryCurePsnRet + end2 + +BattleScript_BerryCurePsnRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMCUREDPOISON + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCureBrnEnd2:: + call BattleScript_BerryCureBrnRet + end2 + +BattleScript_BerryCureBrnRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMHEALEDBURN + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCureFrzEnd2:: + call BattleScript_BerryCureFrzRet + end2 + +BattleScript_BerryCureFrzRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMDEFROSTEDIT + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCureSlpEnd2:: + call BattleScript_BerryCureSlpRet + end2 + +BattleScript_BerryCureSlpRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMWOKEIT + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCureConfusionEnd2:: + call BattleScript_BerryCureConfusionRet + end2 + +BattleScript_BerryCureConfusionRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMSNAPPEDOUT + waitmessage 0x40 + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCureChosenStatusEnd2:: + call BattleScript_BerryCureChosenStatusRet + end2 + +BattleScript_BerryCureChosenStatusRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printfromtable gBerryEffectStringIds + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_WhiteHerbEnd2:: + call BattleScript_WhiteHerbRet + end2 + +BattleScript_WhiteHerbRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMRESTOREDSTATUS + waitmessage 0x40 + removeitem SCRIPTING_BANK + return + +BattleScript_ItemHealHP_RemoveItem:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMRESTOREDHEALTH + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + removeitem ATTACKER + end2 + +BattleScript_BerryPPHealEnd2:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMRESTOREDPP + waitmessage 0x40 + removeitem ATTACKER + end2 + +BattleScript_ItemHealHP_End2:: + call BattleScript_ItemHealHP_Ret + end2 + +BattleScript_ItemHealHP_Ret:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMRESTOREDHPALITTLE + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + return + +BattleScript_SelectingNotAllowedMoveChoiceItem:: + printselectionstring STRINGID_ITEMALLOWSONLYYMOVE + endselectionscript + +BattleScript_HangedOnMsg:: + playanimation TARGET, ANIM_HANGED_ON, NULL + printstring STRINGID_PKMNHUNGONWITHX + waitmessage 0x40 + return + +BattleScript_BerryConfuseHealEnd2:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMRESTOREDHEALTH + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_FORXCOMMAYZ + waitmessage 0x40 + setmoveeffect EFFECT_CONFUSION | AFFECTS_USER + seteffectprimary + removeitem ATTACKER + end2 + +BattleScript_BerryStatRaiseEnd2:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + statbuffchange AFFECTS_USER | 0x1, BattleScript_82DB85B +BattleScript_82DB85B:: + setbyte cMULTISTRING_CHOOSER, 0x4 + call BattleScript_StatUp + removeitem ATTACKER + end2 + +BattleScript_BerryFocusEnergyEnd2:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNUSEDXTOGETPUMPED + waitmessage 0x40 + removeitem ATTACKER + end2 + +BattleScript_ActionSelectionItemsCantBeUsed:: + printselectionstring STRINGID_ITEMSCANTBEUSEDNOW + endselectionscript + +BattleScript_82DB87D:: + printstring STRINGID_EMPTYSTRING3 + return + +BattleScript_82DB881:: + setbyte gBattleCommunication + 1, 0x0 +BattleScript_82DB887:: + various8 ATTACKER + jumpifbyte NOT_EQUAL, gBattleCommunication, 0x1, BattleScript_82DB89D + printfromtable gStringIds_85CCF0A + waitmessage 0x40 +BattleScript_82DB89D:: + addbyte gBattleCommunication + 1, 0x1 + jumpifbytenotequal gBattleCommunication + 1, gNoOfAllBanks, BattleScript_82DB887 + setbyte gBattleCommunication, 0x0 + setbyte gBattleCommunication + 1, 0x0 + end2 + +BattleScript_82DB8BE:: + waitcry ATTACKER + various21 ATTACKER + playse 0x109 + pause 0x8 + playse 0x109 + various14 ATTACKER + various16 8 + various17 8 + pause 0x40 + various15 ATTACKER + various22 ATTACKER + end2 + +BattleScript_82DB8E0:: + playse SE_PINPON + various14 ATTACKER + various16 TARGET + various17 TARGET + pause 0x40 + various15 ATTACKER + end2 + +BattleScript_82DB8F3:: + makevisible 11 + waitstate + makevisible OPPONENT1 + waitstate + various21 ATTACKER + playse 0x109 + pause 0x8 + playse 0x109 + pause 0x40 + various14 ATTACKER + various16 ATTACKER + various17 ATTACKER + pause 0x40 + setbyte gBattleCommunication, 0x0 + various9 ATTACKER + pause 0x40 + various9 ATTACKER + various16 EFFECT_BANK + various17 EFFECT_BANK + various9 ATTACKER + various16 GBANK_1 + various17 GBANK_1 + various9 ATTACKER + various16 0x4 + various17 0x4 + various9 ATTACKER + jumpifbyte EQUAL, gBattleCommunication + 1, 0x3, BattleScript_82DB973 + jumpifbyte EQUAL, gBattleCommunication + 1, 0x4, BattleScript_82DB992 + various16 0x5 + various17 0x5 + various9 ATTACKER + various15 ATTACKER + printstring STRINGID_DEFEATEDOPPONENTBYREFEREE + waitmessage 0x40 + playfaintcry OPPONENT1 + waitcry ATTACKER + dofaintanimation OPPONENT1 + cleareffectsonfaint OPPONENT1 + various10 ATTACKER + end2 + +BattleScript_82DB973:: + various16 0x6 + various17 0x6 + various9 ATTACKER + various15 ATTACKER + printstring STRINGID_LOSTTOOPPONENTBYREFEREE + waitmessage 0x40 + playfaintcry 11 + waitcry ATTACKER + dofaintanimation 11 + cleareffectsonfaint 11 + various11 ATTACKER + end2 + +BattleScript_82DB992:: + various16 BANK0 + various17 BANK0 + various9 ATTACKER + various15 ATTACKER + printstring STRINGID_TIEDOPPONENTBYREFEREE + waitmessage 0x40 + playfaintcry 11 + waitcry ATTACKER + dofaintanimation 11 + cleareffectsonfaint 11 + playfaintcry OPPONENT1 + waitcry ATTACKER + dofaintanimation OPPONENT1 + cleareffectsonfaint OPPONENT1 + various12 ATTACKER + end2 + +BattleScript_AskIfWantsToForfeitMatch:: + printselectionstring STRINGID_QUESTIONFORFEITMATCH + forfeityesnobox ATTACKER + endselectionscript + +BattleScript_82DB9C1:: + printstring STRINGID_FORFEITEDMATCH + waitmessage 0x40 + end2 + +BattleScript_82DB9C8:: + printstring STRINGID_FORFEITEDMATCH + waitmessage 0x40 + atk57 + waitmessage 0x40 + end2 diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index 4a4dc4665..88991ccd0 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -1,32 +1,36 @@ .include "asm/macros.inc" + .include "asm/macros/battle_script.inc" .include "constants/constants.inc" + .include "constants/battle_constants.inc" + .include "constants/battle_script_constants.inc" + .include "constants/battle_text.inc" .section script_data, "aw", %progbits .align 2 gBattlescriptsForBallThrow:: @ 82DBD08 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD7E - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_SafariBallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow .align 2 gUnknown_082DBD3C:: @ 82DBD3C - .4byte gUnknown_082DBE12 - .4byte gUnknown_082DBE1C - .4byte gUnknown_082DBE1C - .4byte gUnknown_082DBE4B - .4byte gUnknown_082DBE6F - .4byte gUnknown_082DBE91 + .4byte BattleScript_82DBE12 + .4byte BattleScript_82DBE1C + .4byte BattleScript_82DBE1C + .4byte BattleScript_82DBE4B + .4byte BattleScript_82DBE6F + .4byte BattleScript_82DBE91 .align 2 gBattlescriptsForRunningByItem:: @ 82DBD54 @@ -34,55 +38,166 @@ gBattlescriptsForRunningByItem:: @ 82DBD54 .align 2 gBattlescriptsForSafariActions:: @ 82DBD58 - .4byte gUnknown_082DBEBD - .4byte gUnknown_082DBEC4 - .4byte gUnknown_082DBECD - .4byte gUnknown_082DBEE3 - -gUnknown_082DBD68:: @ 82DBD68 - .incbin "baserom.gba", 0x2dbd68, 0x16 - -gUnknown_082DBD7E:: @ 82DBD7E - .incbin "baserom.gba", 0x2dbd7e, 0x6 - -BattleScript_SuccessBallThrow:: @ 82DBD84 - .incbin "baserom.gba", 0x2dbd84, 0x46 - -BattleScript_WallyBallThrow:: @ 82DBDCA - .incbin "baserom.gba", 0x2dbdca, 0xa - -BattleScript_ShakeBallThrow:: @ 82DBDD4 - .incbin "baserom.gba", 0x2dbdd4, 0x2e - -BattleScript_TrainerBallBlock:: @ 82DBE02 - .incbin "baserom.gba", 0x2dbe02, 0x10 - -gUnknown_082DBE12:: @ 82DBE12 - .incbin "baserom.gba", 0x2dbe12, 0xa - -gUnknown_082DBE1C:: @ 82DBE1C - .incbin "baserom.gba", 0x2dbe1c, 0x2f - -gUnknown_082DBE4B:: @ 82DBE4B - .incbin "baserom.gba", 0x2dbe4b, 0x24 - -gUnknown_082DBE6F:: @ 82DBE6F - .incbin "baserom.gba", 0x2dbe6f, 0x22 - -gUnknown_082DBE91:: @ 82DBE91 - .incbin "baserom.gba", 0x2dbe91, 0x22 - -BattleScript_RunByUsingItem:: @ 82DBEB3 - .incbin "baserom.gba", 0x2dbeb3, 0xA - -gUnknown_082DBEBD:: @ 82DBEBD - .incbin "baserom.gba", 0x2dbebd, 0x7 - -gUnknown_082DBEC4:: @ 82DBEC4 - .incbin "baserom.gba", 0x2dbec4, 0x9 - -gUnknown_082DBECD:: @ 82DBECD - .incbin "baserom.gba", 0x2dbecd, 0x16 - -gUnknown_082DBEE3:: @ 82DBEE3 - .incbin "baserom.gba", 0x2dbee3, 0x15 + .4byte BattleScript_ActionWatchesCarefully + .4byte BattleScript_ActionGetNear + .4byte BattleScript_ActionThrowPokeblock + .4byte BattleScript_82DBEE3 + +BattleScript_BallThrow:: + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_WALLY_TUTORIAL, BattleScript_BallThrowByWally + printstring STRINGID_PLAYERUSEDITEM + handleballthrow + +BattleScript_BallThrowByWally:: + printstring STRINGID_WALLYUSEDITEM + handleballthrow + +BattleScript_SafariBallThrow:: + printstring STRINGID_PLAYERUSEDITEM + updatestatusicon ATTACKER + handleballthrow + +BattleScript_SuccessBallThrow:: + jumpifhalfword EQUAL, gLastUsedItem, ITEM_SAFARI_BALL, BattleScript_82DBD92 + incrementgamestat 0xB +BattleScript_82DBD92:: + printstring STRINGID_GOTCHAPKMNCAUGHT + trysetcaughtmondexflags BattleScript_82DBDA5 + printstring STRINGID_PKMNDATAADDEDTODEX + waitstate + setbyte gBattleCommunication, 0x0 + displaydexinfo +BattleScript_82DBDA5:: + printstring STRINGID_GIVENICKNAMECAPTURED + waitstate + setbyte gBattleCommunication, 0x0 + trygivecaughtmonnick BattleScript_82DBDC2 + givecaughtmon + printfromtable gCaughtMonStringIds + waitmessage 0x40 + goto BattleScript_82DBDC3 +BattleScript_82DBDC2:: + givecaughtmon +BattleScript_82DBDC3:: + setbyte gBattleOutcome, CAUGHT + finishturn + +BattleScript_WallyBallThrow:: + printstring STRINGID_GOTCHAPKMNCAUGHT2 + setbyte gBattleOutcome, CAUGHT + finishturn + +BattleScript_ShakeBallThrow:: + printfromtable gBallEscapeStringIds + waitmessage 0x40 + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_SAFARI, BattleScript_82DBE01 + jumpifbyte NOT_EQUAL, gNumSafariBalls, 0x0, BattleScript_82DBE01 + printstring STRINGID_OUTOFSAFARIBALLS + waitmessage 0x40 + setbyte gBattleOutcome, OUT_OF_BALLS +BattleScript_82DBE01:: + finishaction + +BattleScript_TrainerBallBlock:: + waitmessage 0x40 + printstring STRINGID_TRAINERBLOCKEDBALL + waitmessage 0x40 + printstring STRINGID_DONTBEATHIEF + waitmessage 0x40 + finishaction + +BattleScript_82DBE12:: + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + end + +BattleScript_82DBE1C:: + printstring STRINGID_EMPTYSTRING3 + pause 0x30 + playse SE_KAIFUKU + printstring STRINGID_TRAINER1USEDITEM + waitmessage 0x40 + useitemonopponent + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNSITEMRESTOREDHEALTH + waitmessage 0x40 + updatestatusicon ATTACKER + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + finishaction + +BattleScript_82DBE4B:: + printstring STRINGID_EMPTYSTRING3 + pause 0x30 + playse SE_KAIFUKU + printstring STRINGID_TRAINER1USEDITEM + waitmessage 0x40 + useitemonopponent + printfromtable gTrainerItemCuredStatusStringIds + waitmessage 0x40 + updatestatusicon ATTACKER + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + finishaction + +BattleScript_82DBE6F:: + printstring STRINGID_EMPTYSTRING3 + pause 0x30 + playse SE_KAIFUKU + printstring STRINGID_TRAINER1USEDITEM + waitmessage 0x40 + useitemonopponent + printfromtable gStatUpStringIds + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + finishaction + +BattleScript_82DBE91:: + printstring STRINGID_EMPTYSTRING3 + pause 0x30 + playse SE_KAIFUKU + printstring STRINGID_TRAINER1USEDITEM + waitmessage 0x40 + useitemonopponent + printfromtable gMistUsedStringIds + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + finishaction + +BattleScript_RunByUsingItem:: + playse SE_NIGERU + setbyte gBattleOutcome, RAN + finishturn + +BattleScript_ActionWatchesCarefully:: + printstring STRINGID_PKMNWATCHINGCAREFULLY + waitmessage 0x40 + end2 + +BattleScript_ActionGetNear:: + printfromtable gSafariGetNearStringIds + waitmessage 0x40 + end2 + +BattleScript_ActionThrowPokeblock:: + printstring STRINGID_THREWPOKEBLOCKATPKMN + waitmessage 0x40 + playanimation ATTACKER, ANIM_x4, NULL + printfromtable gSafariPokeblockResultStringIds + waitmessage 0x40 + end2 + +BattleScript_82DBEE3:: + printstring STRINGID_RETURNMON + waitmessage 0x40 + returnatktoball + waitstate + trainerslidein TARGET + waitstate + printstring STRINGID_YOUTHROWABALLNOWRIGHT + waitmessage 0x40 + end2 diff --git a/data/graphics.s b/data/graphics.s index 87b983a80..72daf144f 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -682,7 +682,7 @@ gMonIcon_Egg:: @ 8D8FC74 .incbin "baserom.gba", 0xd90074, 0x1524 -gUnknown_08D91598:: @ 8D91598 +sBlenderCenterGfx:: @ 8D91598 .incbin "baserom.gba", 0xd91598, 0x820 gUnknown_08D91DB8:: @ 8D91DB8 diff --git a/data/link.s b/data/link.s index d9cf886c5..336383678 100644 --- a/data/link.s +++ b/data/link.s @@ -28,15 +28,15 @@ g2BlankTilesGfx:: @ 82ED168 .incbin "graphics/interface/blank_1x2.4bpp" gUnknown_082ED1A8:: @ 82ED1A8 - .4byte gUnknown_020228C4 + .4byte gBlockSendBuffer .4byte 0x000000C8 - .4byte gUnknown_020228C4 + .4byte gBlockSendBuffer .4byte 0x000000C8 - .4byte gUnknown_020228C4 + .4byte gBlockSendBuffer .4byte 0x00000064 - .4byte gUnknown_020228C4 + .4byte gBlockSendBuffer .4byte 0x000000DC - .4byte gUnknown_020228C4 + .4byte gBlockSendBuffer .4byte 0x00000028 gUnknown_082ED1D0:: @ 82ED1D0 @@ -224,15 +224,15 @@ gUnknown_082ED6A5:: @ 82ED6A5 .align 2 gUnknown_082ED6B8:: @ 82ED6B8 - .4byte gUnknown_020228C4 + .4byte gBlockSendBuffer .4byte 0x000000c8 - .4byte gUnknown_020228C4 + .4byte gBlockSendBuffer .4byte 0x000000c8 - .4byte gUnknown_020228C4 + .4byte gBlockSendBuffer .4byte 0x00000064 - .4byte gUnknown_020228C4 + .4byte gBlockSendBuffer .4byte 0x000000dc - .4byte gUnknown_020228C4 + .4byte gBlockSendBuffer .4byte 0x00000028 .align 2 diff --git a/data/scripts/field_move_scripts.inc b/data/scripts/field_move_scripts.inc index fd2ff3b01..76f2aac6b 100644 --- a/data/scripts/field_move_scripts.inc +++ b/data/scripts/field_move_scripts.inc @@ -116,7 +116,7 @@ Route111_EventScript_2907FB:: @ 82907FB specialvar VAR_RESULT, sub_81393FC compare_var_to_value VAR_RESULT, 1 goto_eq Route111_EventScript_290829 - special rock_smash_wild_pokemon_encounter + special RockSmashWildEncounter compare_var_to_value VAR_RESULT, 0 goto_eq Route111_EventScript_290829 waitstate diff --git a/data/scripts/maps/SeafloorCavern_Room9.inc b/data/scripts/maps/SeafloorCavern_Room9.inc index 6f968b4d0..984d53295 100644 --- a/data/scripts/maps/SeafloorCavern_Room9.inc +++ b/data/scripts/maps/SeafloorCavern_Room9.inc @@ -127,7 +127,7 @@ SeafloorCavern_Room9_EventScript_234DC9:: @ 8234DC9 clearflag FLAG_0x3E6 clearflag FLAG_0x3E5 setflag FLAG_0x347 - setflag FLAG_0x053 + setflag FLAG_LEGENDARIES_IN_SOOTOPOLIS clearflag FLAG_0x3B0 clearflag FLAG_0x3B1 setflag FLAG_SYS_WEATHER_CTRL diff --git a/data/scripts/maps/SootopolisCity.inc b/data/scripts/maps/SootopolisCity.inc index 33b65714b..d9eaee6eb 100644 --- a/data/scripts/maps/SootopolisCity.inc +++ b/data/scripts/maps/SootopolisCity.inc @@ -545,7 +545,7 @@ SootopolisCity_EventScript_1E5C1E:: @ 81E5C1E waitstate clearflag FLAG_SYS_WEATHER_CTRL setvar VAR_0x40CA, 3 - clearflag FLAG_0x053 + clearflag FLAG_LEGENDARIES_IN_SOOTOPOLIS fadenewbgm BGM_RUNECITY delay 120 clearflag FLAG_SPECIAL_FLAG_0x4000 @@ -598,7 +598,7 @@ SootopolisCity_EventScript_1E5CCE:: @ 81E5CCE waitstate clearflag FLAG_SYS_WEATHER_CTRL setvar VAR_0x40CA, 2 - clearflag FLAG_0x053 + clearflag FLAG_LEGENDARIES_IN_SOOTOPOLIS fadenewbgm BGM_NAMINORI delay 120 clearflag FLAG_SPECIAL_FLAG_0x4000 diff --git a/data/scripts/pokeblocks.inc b/data/scripts/pokeblocks.inc index e77e4d789..a93c44615 100644 --- a/data/scripts/pokeblocks.inc +++ b/data/scripts/pokeblocks.inc @@ -290,7 +290,7 @@ LilycoveCity_ContestLobby_EventScript_293CEE:: @ 8293CEE checkitem ITEM_POKEBLOCK_CASE, 1 compare_var_to_value VAR_RESULT, 0 goto_eq LilycoveCity_ContestLobby_EventScript_293D43 - specialvar VAR_RESULT, sub_8136EF4 + specialvar VAR_RESULT, GetFirstFreePokeblockSlot compare_var_to_value VAR_RESULT, 65535 goto_eq LilycoveCity_ContestLobby_EventScript_293D39 specialvar VAR_RESULT, PlayerHasBerries @@ -303,7 +303,7 @@ LilycoveCity_ContestLobby_EventScript_293CEE:: @ 8293CEE LilycoveCity_ContestLobby_EventScript_293D2C:: @ 8293D2C copyvar VAR_0x8004, VAR_0x8009 fadescreen 1 - special sub_807FA80 + special DoBerryBlending waitstate releaseall end @@ -365,7 +365,7 @@ LilycoveCity_ContestLobby_EventScript_293DC6:: @ 8293DC6 compare_var_to_value VAR_RESULT, 0 goto_eq LilycoveCity_ContestLobby_EventScript_293E14 msgbox LilycoveCity_ContestLobby_Text_293237, 4 - specialvar VAR_RESULT, sub_8136EF4 + specialvar VAR_RESULT, GetFirstFreePokeblockSlot compare_var_to_value VAR_RESULT, 65535 goto_if 5, LilycoveCity_ContestLobby_EventScript_293D91 compare_var_to_value VAR_RESULT, 65535 @@ -431,7 +431,7 @@ LilycoveCity_ContestLobby_EventScript_293EA3:: @ 8293EA3 compare_var_to_value VAR_RESULT, 0 goto_eq LilycoveCity_ContestLobby_EventScript_293EF1 msgbox LilycoveCity_ContestLobby_Text_29354E, 4 - specialvar VAR_RESULT, sub_8136EF4 + specialvar VAR_RESULT, GetFirstFreePokeblockSlot compare_var_to_value VAR_RESULT, 65535 goto_if 5, LilycoveCity_ContestLobby_EventScript_293E6E compare_var_to_value VAR_RESULT, 65535 @@ -470,7 +470,7 @@ LilycoveCity_ContestLobby_EventScript_293F28:: @ 8293F28 specialvar VAR_RESULT, PlayerHasBerries compare_var_to_value VAR_RESULT, 0 goto_eq LilycoveCity_ContestLobby_EventScript_293F1E - specialvar VAR_RESULT, sub_8136EF4 + specialvar VAR_RESULT, GetFirstFreePokeblockSlot compare_var_to_value VAR_RESULT, 65535 goto_if 5, LilycoveCity_ContestLobby_EventScript_293F64 compare_var_to_value VAR_RESULT, 65535 @@ -536,7 +536,7 @@ LilycoveCity_ContestLobby_EventScript_293FF8:: @ 8293FF8 checkitem ITEM_POKEBLOCK_CASE, 1 compare_var_to_value VAR_RESULT, 0 goto_eq LilycoveCity_ContestLobby_EventScript_294028 - specialvar VAR_RESULT, sub_8136EF4 + specialvar VAR_RESULT, GetFirstFreePokeblockSlot compare_var_to_value VAR_RESULT, 65535 goto_eq LilycoveCity_ContestLobby_EventScript_294028 dodailyevents @@ -570,7 +570,7 @@ LilycoveCity_ContestLobby_EventScript_294055:: @ 8294055 checkitem ITEM_POKEBLOCK_CASE, 1 compare_var_to_value VAR_RESULT, 0 goto_eq LilycoveCity_ContestLobby_EventScript_29416C - specialvar VAR_RESULT, sub_8136EF4 + specialvar VAR_RESULT, GetFirstFreePokeblockSlot compare_var_to_value VAR_RESULT, 65535 goto_if 5, LilycoveCity_ContestLobby_EventScript_294092 compare_var_to_value VAR_RESULT, 65535 @@ -635,7 +635,7 @@ LilycoveCity_ContestLobby_EventScript_294147:: @ 8294147 removeobject 239 removeobject 238 removeobject 237 - special sub_807FA80 + special DoBerryBlending waitstate releaseall end diff --git a/data/specials.inc b/data/specials.inc index 51bb34dff..19adbae4d 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -170,8 +170,8 @@ gSpecials:: @ 81DBA64 def_special sub_80B086C def_special ChangePokemonNickname def_special sub_81B94B0 - def_special sub_8136EF4 - def_special sub_807FA80 + def_special GetFirstFreePokeblockSlot + def_special DoBerryBlending def_special sub_8142BC8 def_special sub_813BD60 def_special sub_813BCA8 @@ -181,7 +181,7 @@ gSpecials:: @ 81DBA64 def_special sub_813BF60 def_special sub_813BA60 def_special sub_813BF7C - def_special rock_smash_wild_pokemon_encounter + def_special RockSmashWildEncounter def_special GabbyAndTyGetBattleNum def_special GabbyAndTyAfterInterview def_special GabbyAndTyBeforeInterview diff --git a/data/unk_81BAD84.s b/data/unk_81BAD84.s deleted file mode 100644 index de88365ac..000000000 --- a/data/unk_81BAD84.s +++ /dev/null @@ -1,7 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -gUnknown_08617128:: @ 8617128 - .incbin "baserom.gba", 0x617128, 0x48 diff --git a/data/wild_encounter.s b/data/wild_encounter.s index ddb842a76..e221c2f99 100644 --- a/data/wild_encounter.s +++ b/data/wild_encounter.s @@ -9,14 +9,14 @@ .incbin "baserom.gba", 0x55370c, 0x188 -gUnknown_08553894:: @ 8553894 +gBattlePyramidWildMonHeaders:: @ 8553894 .incbin "baserom.gba", 0x553894, 0x180 -gUnknown_08553A14:: @ 8553A14 +gBattlePikeWildMonHeaders:: @ 8553A14 .incbin "baserom.gba", 0x553a14, 0x64 -gUnknown_08553A78:: @ 8553A78 +gWildFeebasRoute119Data:: @ 8553A78 .incbin "baserom.gba", 0x553a78, 0x4 -gUnknown_08553A7C:: @ 8553A7C +gRoute119WaterTileData:: @ 8553A7C .incbin "baserom.gba", 0x553a7c, 0x14 |