diff options
-rw-r--r-- | asm/battle_2.s | 124 | ||||
-rw-r--r-- | asm/macros/battle_script.inc | 79 | ||||
-rw-r--r-- | constants/battle_script_constants.inc | 149 | ||||
-rw-r--r-- | data/battle_scripts_1.s | 3592 | ||||
-rw-r--r-- | data/battle_scripts_2.s | 145 | ||||
-rw-r--r-- | include/battle.h | 235 | ||||
-rw-r--r-- | include/constants/battle_constants.h | 239 | ||||
-rw-r--r-- | src/battle/battle_3.c | 84 | ||||
-rw-r--r-- | src/battle/battle_4.c | 224 | ||||
-rwxr-xr-x | src/data/battle_strings_de.h | 92 | ||||
-rwxr-xr-x | src/data/battle_strings_en.h | 92 | ||||
-rw-r--r-- | src/rom3.c | 6 | ||||
-rw-r--r-- | sym_ewram.txt | 2 |
13 files changed, 2647 insertions, 2416 deletions
diff --git a/asm/battle_2.s b/asm/battle_2.s index dd720ec79..5a751ba55 100644 --- a/asm/battle_2.s +++ b/asm/battle_2.s @@ -426,13 +426,13 @@ _080126C2: ldrb r0, [r3] lsls r0, 2 adds r0, r1 - ldr r1, _080126DC @ =gUnknown_081D9B29 + ldr r1, _080126DC @ =BattleScript_ActionSelectionItemsCantBeUsed b _080129CC .align 2, 0 _080126D0: .4byte gBattleTypeFlags _080126D4: .4byte 0x00000902 _080126D8: .4byte gUnknown_02024C1C -_080126DC: .4byte gUnknown_081D9B29 +_080126DC: .4byte BattleScript_ActionSelectionItemsCantBeUsed _080126E0: ldr r3, _08012738 @ =gSharedMem ldr r5, _0801273C @ =gActiveBank @@ -661,7 +661,7 @@ _080128B0: ldrb r0, [r2] lsls r0, 2 adds r0, r1 - ldr r1, _080128F4 @ =gUnknown_081D8E4A + ldr r1, _080128F4 @ =BattleScript_PrintFullBox str r1, [r0] ldr r0, _080128F8 @ =gBattleCommunication ldrb r1, [r2] @@ -684,7 +684,7 @@ _080128B0: .align 2, 0 _080128EC: .4byte gUnknown_02024C1C _080128F0: .4byte gActiveBank -_080128F4: .4byte gUnknown_081D8E4A +_080128F4: .4byte BattleScript_PrintFullBox _080128F8: .4byte gBattleCommunication _080128FC: .4byte gSharedMem _08012900: .4byte 0x00016060 @@ -747,7 +747,7 @@ _08012968: ldrb r0, [r1] cmp r0, 0x3 bne _080129A8 - ldr r0, _080129A0 @ =gUnknown_081D8E37 + ldr r0, _080129A0 @ =BattleScript_PrintCantRunFromTrainer bl b_call_bc_move_exec ldr r1, _080129A4 @ =gBattleCommunication ldrb r0, [r4] @@ -757,7 +757,7 @@ _08012968: _08012994: .4byte gBattleTypeFlags _08012998: .4byte gBattleBufferB _0801299C: .4byte gActiveBank -_080129A0: .4byte gUnknown_081D8E37 +_080129A0: .4byte BattleScript_PrintCantRunFromTrainer _080129A4: .4byte gBattleCommunication _080129A8: bl CanRunFromBattle @@ -776,7 +776,7 @@ _080129A8: ldr r1, _080129FC @ =gUnknown_02024C1C lsls r0, r2, 2 adds r0, r1 - ldr r1, _08012A00 @ =gUnknown_081D8E44 + ldr r1, _08012A00 @ =BattleScript_PrintCantEscapeFromBattle _080129CC: str r1, [r0] ldr r0, _08012A04 @ =gBattleCommunication @@ -801,7 +801,7 @@ _080129CC: _080129F4: .4byte gBattleBufferB _080129F8: .4byte gActiveBank _080129FC: .4byte gUnknown_02024C1C -_08012A00: .4byte gUnknown_081D8E44 +_08012A00: .4byte BattleScript_PrintCantEscapeFromBattle _08012A04: .4byte gBattleCommunication _08012A08: .4byte gSharedMem _08012A0C: .4byte 0x00016060 @@ -2790,7 +2790,7 @@ _08013A04: _08013A0E: bl BattleMusicStop ldr r1, _08013A3C @ =gBattlescriptCurrInstr - ldr r0, _08013A40 @ =gUnknown_081D8DBE + ldr r0, _08013A40 @ =BattleScript_LocalTrainerBattleWon str r0, [r1] ldr r2, _08013A44 @ =gTrainers ldr r0, _08013A48 @ =gTrainerBattleOpponent @@ -2812,7 +2812,7 @@ _08013A30: mov pc, r0 .align 2, 0 _08013A3C: .4byte gBattlescriptCurrInstr -_08013A40: .4byte gUnknown_081D8DBE +_08013A40: .4byte BattleScript_LocalTrainerBattleWon _08013A44: .4byte gTrainers _08013A48: .4byte gTrainerBattleOpponent _08013A4C: .4byte _08013A50 @@ -2891,7 +2891,7 @@ _08013B38: b _08013B48 _08013B42: ldr r1, _08013B54 @ =gBattlescriptCurrInstr - ldr r0, _08013B58 @ =gUnknown_081D8DCE + ldr r0, _08013B58 @ =BattleScript_PayDayMoneyAndPickUpItems _08013B46: str r0, [r1] _08013B48: @@ -2903,7 +2903,7 @@ _08013B48: bx r0 .align 2, 0 _08013B54: .4byte gBattlescriptCurrInstr -_08013B58: .4byte gUnknown_081D8DCE +_08013B58: .4byte BattleScript_PayDayMoneyAndPickUpItems _08013B5C: .4byte gBattleMainFunc _08013B60: .4byte sub_8013C9C thumb_func_end sub_8013998 @@ -2946,7 +2946,7 @@ _08013BB0: .4byte gBattlescriptCurrInstr _08013BB4: .4byte gUnknown_081D8E02 _08013BB8: ldr r1, _08013BCC @ =gBattlescriptCurrInstr - ldr r0, _08013BD0 @ =gUnknown_081D8DD1 + ldr r0, _08013BD0 @ =BattleScript_LocalBattleLost str r0, [r1] _08013BBE: ldr r1, _08013BD4 @ =gBattleMainFunc @@ -2957,7 +2957,7 @@ _08013BBE: bx r0 .align 2, 0 _08013BCC: .4byte gBattlescriptCurrInstr -_08013BD0: .4byte gUnknown_081D8DD1 +_08013BD0: .4byte BattleScript_LocalBattleLost _08013BD4: .4byte gBattleMainFunc _08013BD8: .4byte sub_8013C9C thumb_func_end sub_8013B64 @@ -2981,24 +2981,24 @@ sub_8013BDC: @ 8013BDC cmp r0, 0x2 beq _08013C28 ldr r1, _08013C10 @ =gBattlescriptCurrInstr - ldr r0, _08013C14 @ =gUnknown_081D8E29 + ldr r0, _08013C14 @ =BattleScript_GotAwaySafely b _08013C2C .align 2, 0 _08013C04: .4byte gFightStateTracker _08013C08: .4byte gProtectStructs _08013C0C: .4byte gBankAttacker _08013C10: .4byte gBattlescriptCurrInstr -_08013C14: .4byte gUnknown_081D8E29 +_08013C14: .4byte BattleScript_GotAwaySafely _08013C18: ldr r1, _08013C20 @ =gBattlescriptCurrInstr - ldr r0, _08013C24 @ =gUnknown_081D8E14 + ldr r0, _08013C24 @ =BattleScript_SmokeBallEscape b _08013C2C .align 2, 0 _08013C20: .4byte gBattlescriptCurrInstr -_08013C24: .4byte gUnknown_081D8E14 +_08013C24: .4byte BattleScript_SmokeBallEscape _08013C28: ldr r1, _08013C38 @ =gBattlescriptCurrInstr - ldr r0, _08013C3C @ =gUnknown_081D8E22 + ldr r0, _08013C3C @ =BattleScript_RanAwayUsingMonAbility _08013C2C: str r0, [r1] ldr r1, _08013C40 @ =gBattleMainFunc @@ -3008,7 +3008,7 @@ _08013C2C: bx r0 .align 2, 0 _08013C38: .4byte gBattlescriptCurrInstr -_08013C3C: .4byte gUnknown_081D8E22 +_08013C3C: .4byte BattleScript_RanAwayUsingMonAbility _08013C40: .4byte gBattleMainFunc _08013C44: .4byte sub_8013C9C thumb_func_end sub_8013BDC @@ -3035,7 +3035,7 @@ sub_8013C48: @ 8013C48 movs r0, 0xFF strb r0, [r1, 0x4] ldr r1, _08013C8C @ =gBattlescriptCurrInstr - ldr r0, _08013C90 @ =gUnknown_081D8E30 + ldr r0, _08013C90 @ =BattleScript_WildMonFled str r0, [r1] ldr r1, _08013C94 @ =gBattleMainFunc ldr r0, _08013C98 @ =sub_8013C9C @@ -3047,7 +3047,7 @@ _08013C80: .4byte gBattleTextBuff1 _08013C84: .4byte gBankAttacker _08013C88: .4byte gBattlePartyID _08013C8C: .4byte gBattlescriptCurrInstr -_08013C90: .4byte gUnknown_081D8E30 +_08013C90: .4byte BattleScript_WildMonFled _08013C94: .4byte gBattleMainFunc _08013C98: .4byte sub_8013C9C thumb_func_end sub_8013C48 @@ -3545,7 +3545,7 @@ _08014044: ands r0, r1 strb r0, [r5] ldr r2, _080140E0 @ =gCurrentMove - ldr r1, _080140E4 @ =gUnknown_02024BE8 + ldr r1, _080140E4 @ =gChosenMove movs r0, 0xA5 strh r0, [r1] strh r0, [r2] @@ -3574,7 +3574,7 @@ _080140D4: .4byte 0x0001608c _080140D8: .4byte gUnknown_02024BE5 _080140DC: .4byte gProtectStructs _080140E0: .4byte gCurrentMove -_080140E4: .4byte gUnknown_02024BE8 +_080140E4: .4byte gChosenMove _080140E8: .4byte gHitMarker _080140EC: .4byte 0x00016010 _080140F0: @@ -3598,7 +3598,7 @@ _080140F0: beq _08014138 _08014114: ldr r3, _0801412C @ =gCurrentMove - ldr r2, _08014130 @ =gUnknown_02024BE8 + ldr r2, _08014130 @ =gChosenMove ldr r1, _08014134 @ =gLockedMove lsls r0, r4, 1 adds r0, r1 @@ -3609,7 +3609,7 @@ _08014114: .align 2, 0 _08014128: .4byte gBattleMons _0801412C: .4byte gCurrentMove -_08014130: .4byte gUnknown_02024BE8 +_08014130: .4byte gChosenMove _08014134: .4byte gLockedMove _08014138: ldr r3, _08014188 @ =gDisableStructs @@ -3635,7 +3635,7 @@ _08014138: cmp r1, r0 bne _080141A0 ldr r1, _08014190 @ =gCurrentMove - ldr r0, _08014194 @ =gUnknown_02024BE8 + ldr r0, _08014194 @ =gChosenMove strh r4, [r0] strh r4, [r1] ldrb r0, [r2, 0xC] @@ -3654,7 +3654,7 @@ _08014138: _08014188: .4byte gDisableStructs _0801418C: .4byte gBattleMons _08014190: .4byte gCurrentMove -_08014194: .4byte gUnknown_02024BE8 +_08014194: .4byte gChosenMove _08014198: .4byte gUnknown_02024BE5 _0801419C: .4byte 0x00016010 _080141A0: @@ -3667,7 +3667,7 @@ _080141A0: mov r1, r8 strb r3, [r1] ldr r3, _0801420C @ =gCurrentMove - ldr r1, _08014210 @ =gUnknown_02024BE8 + ldr r1, _08014210 @ =gChosenMove mov r2, r8 ldrb r0, [r2] lsls r0, 1 @@ -3712,7 +3712,7 @@ _08014200: .align 2, 0 _08014208: .4byte gUnknown_02024BE5 _0801420C: .4byte gCurrentMove -_08014210: .4byte gUnknown_02024BE8 +_08014210: .4byte gChosenMove _08014214: .4byte 0x00016010 _08014218: mov r4, r8 @@ -3734,7 +3734,7 @@ _08014218: cmp r3, r2 beq _08014278 ldr r1, _08014268 @ =gCurrentMove - ldr r0, _0801426C @ =gUnknown_02024BE8 + ldr r0, _0801426C @ =gChosenMove strh r3, [r0] strh r3, [r1] ldrh r0, [r1] @@ -3752,12 +3752,12 @@ _0801425C: .4byte gBankAttacker _08014260: .4byte gBattleMons _08014264: .4byte gChosenMovesByBanks _08014268: .4byte gCurrentMove -_0801426C: .4byte gUnknown_02024BE8 +_0801426C: .4byte gChosenMove _08014270: .4byte gSharedMem _08014274: .4byte 0x00016010 _08014278: ldr r1, _08014298 @ =gCurrentMove - ldr r0, _0801429C @ =gUnknown_02024BE8 + ldr r0, _0801429C @ =gChosenMove strh r3, [r0] strh r3, [r1] _08014280: @@ -3774,7 +3774,7 @@ _08014280: b _080142B0 .align 2, 0 _08014298: .4byte gCurrentMove -_0801429C: .4byte gUnknown_02024BE8 +_0801429C: .4byte gChosenMove _080142A0: .4byte gBankAttacker _080142A4: .4byte gBattleResults _080142A8: @@ -3963,7 +3963,7 @@ _08014416: b _08014522 _0801441E: ldr r2, _08014460 @ =gBattleMoves - ldr r0, _0801447C @ =gUnknown_02024BE8 + ldr r0, _0801447C @ =gChosenMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -3998,7 +3998,7 @@ _0801446C: .4byte gSharedMem _08014470: .4byte 0x00016010 _08014474: .4byte gActiveBank _08014478: .4byte gNoOfAllBanks -_0801447C: .4byte gUnknown_02024BE8 +_0801447C: .4byte gChosenMove _08014480: movs r0, 0x3 b _08014496 @@ -4121,7 +4121,7 @@ _08014570: cmp r0, 0 beq _0801461C ldr r2, _080145B4 @ =gBattleMoves - ldr r0, _080145B8 @ =gUnknown_02024BE8 + ldr r0, _080145B8 @ =gChosenMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -4146,7 +4146,7 @@ _08014570: b _080145D2 .align 2, 0 _080145B4: .4byte gBattleMoves -_080145B8: .4byte gUnknown_02024BE8 +_080145B8: .4byte gChosenMove _080145BC: movs r0, 0x3 b _080145D2 @@ -4260,7 +4260,7 @@ _0801469A: strb r0, [r5] _080146AC: ldr r4, _080146E0 @ =gBattlescriptCurrInstr - ldr r3, _080146E4 @ =gBattleScriptsEffectsTable + ldr r3, _080146E4 @ =gBattleScriptsForMoveEffects ldr r2, _080146E8 @ =gBattleMoves ldr r0, _080146EC @ =gCurrentMove ldrh r1, [r0] @@ -4287,7 +4287,7 @@ _080146CC: bx r0 .align 2, 0 _080146E0: .4byte gBattlescriptCurrInstr -_080146E4: .4byte gBattleScriptsEffectsTable +_080146E4: .4byte gBattleScriptsForMoveEffects _080146E8: .4byte gBattleMoves _080146EC: .4byte gCurrentMove _080146F0: .4byte gFightStateTracker @@ -4336,7 +4336,7 @@ sub_80146F4: @ 80146F4 adds r1, r0 strb r4, [r1] ldr r1, _08014790 @ =gBattlescriptCurrInstr - ldr r0, _08014794 @ =gUnknown_081D8E4E + ldr r0, _08014794 @ =BattleScript_ActionSwitch str r0, [r1] ldr r1, _08014798 @ =gFightStateTracker movs r0, 0xA @@ -4364,7 +4364,7 @@ _08014784: .4byte gSharedMem _08014788: .4byte 0x00016064 _0801478C: .4byte 0x00016003 _08014790: .4byte gBattlescriptCurrInstr -_08014794: .4byte gUnknown_081D8E4E +_08014794: .4byte BattleScript_ActionSwitch _08014798: .4byte gFightStateTracker _0801479C: .4byte gBattleResults thumb_func_end sub_80146F4 @@ -4452,14 +4452,14 @@ _0801484C: cmp r0, 0 bne _0801486C ldr r0, _08014864 @ =gBattlescriptCurrInstr - ldr r1, _08014868 @ =gUnknown_081D9E7C + ldr r1, _08014868 @ =gBattlescriptsForUsingItem _0801485C: ldr r1, [r1] str r1, [r0] b _08014A8C .align 2, 0 _08014864: .4byte gBattlescriptCurrInstr -_08014868: .4byte gUnknown_081D9E7C +_08014868: .4byte gBattlescriptsForUsingItem _0801486C: ldr r2, _080148A0 @ =gSharedMem ldrb r0, [r4] @@ -4476,7 +4476,7 @@ _0801486C: mov r8, r4 ldr r3, _080148AC @ =gBattlescriptCurrInstr mov r9, r3 - ldr r1, _080148B0 @ =gUnknown_081D9E7C + ldr r1, _080148B0 @ =gBattlescriptsForUsingItem mov r10, r1 adds r7, r2, 0 cmp r0, 0x4 @@ -4493,7 +4493,7 @@ _080148A0: .4byte gSharedMem _080148A4: .4byte 0x00016003 _080148A8: .4byte 0x000160d8 _080148AC: .4byte gBattlescriptCurrInstr -_080148B0: .4byte gUnknown_081D9E7C +_080148B0: .4byte gBattlescriptsForUsingItem _080148B4: .4byte _080148B8 .align 2, 0 _080148B8: @@ -4522,7 +4522,7 @@ _080148CC: ands r0, r3 ldr r3, _08014910 @ =gBattlescriptCurrInstr mov r9, r3 - ldr r1, _08014914 @ =gUnknown_081D9E7C + ldr r1, _08014914 @ =gBattlescriptsForUsingItem mov r10, r1 cmp r0, 0 bne _080148FC @@ -4536,11 +4536,11 @@ _08014904: .4byte gBattleCommunication _08014908: .4byte gBankAttacker _0801490C: .4byte 0x000160da _08014910: .4byte gBattlescriptCurrInstr -_08014914: .4byte gUnknown_081D9E7C +_08014914: .4byte gBattlescriptsForUsingItem _08014918: ldr r3, _08014950 @ =gBattlescriptCurrInstr mov r9, r3 - ldr r0, _08014954 @ =gUnknown_081D9E7C + ldr r0, _08014954 @ =gBattlescriptsForUsingItem mov r10, r0 adds r5, r7, 0 mov r4, r8 @@ -4568,7 +4568,7 @@ _08014926: b _08014A74 .align 2, 0 _08014950: .4byte gBattlescriptCurrInstr -_08014954: .4byte gUnknown_081D9E7C +_08014954: .4byte gBattlescriptsForUsingItem _08014958: ldr r3, _0801498C @ =gBattleCommunication movs r0, 0x4 @@ -4592,7 +4592,7 @@ _08014958: strb r0, [r3, 0x5] ldr r2, _08014998 @ =gBattlescriptCurrInstr mov r9, r2 - ldr r3, _0801499C @ =gUnknown_081D9E7C + ldr r3, _0801499C @ =gBattlescriptsForUsingItem mov r10, r3 b _08014A74 .align 2, 0 @@ -4600,7 +4600,7 @@ _0801498C: .4byte gBattleCommunication _08014990: .4byte gBankAttacker _08014994: .4byte 0x000160da _08014998: .4byte gBattlescriptCurrInstr -_0801499C: .4byte gUnknown_081D9E7C +_0801499C: .4byte gBattlescriptsForUsingItem _080149A0: ldr r3, _08014A18 @ =gBattleTextBuff1 movs r4, 0xFD @@ -4623,7 +4623,7 @@ _080149A0: ands r2, r0 ldr r0, _08014A20 @ =gBattlescriptCurrInstr mov r9, r0 - ldr r1, _08014A24 @ =gUnknown_081D9E7C + ldr r1, _08014A24 @ =gBattlescriptsForUsingItem mov r10, r1 adds r6, r3, 0 cmp r2, 0 @@ -4667,7 +4667,7 @@ _08014A02: _08014A18: .4byte gBattleTextBuff1 _08014A1C: .4byte gBattleTextBuff2 _08014A20: .4byte gBattlescriptCurrInstr -_08014A24: .4byte gUnknown_081D9E7C +_08014A24: .4byte gBattlescriptsForUsingItem _08014A28: .4byte 0x000160a4 _08014A2C: .4byte 0x000160a5 _08014A30: @@ -4684,7 +4684,7 @@ _08014A30: mov r8, r0 ldr r1, _08014A5C @ =gBattlescriptCurrInstr mov r9, r1 - ldr r2, _08014A60 @ =gUnknown_081D9E7C + ldr r2, _08014A60 @ =gBattlescriptsForUsingItem mov r10, r2 b _08014A74 .align 2, 0 @@ -4692,7 +4692,7 @@ _08014A50: .4byte gBattleTypeFlags _08014A54: .4byte gBattleCommunication _08014A58: .4byte gBankAttacker _08014A5C: .4byte gBattlescriptCurrInstr -_08014A60: .4byte gUnknown_081D9E7C +_08014A60: .4byte gBattlescriptsForUsingItem _08014A64: ldr r0, _08014AA0 @ =gBattleCommunication strb r1, [r0, 0x5] @@ -4700,7 +4700,7 @@ _08014A64: mov r8, r3 ldr r0, _08014AA8 @ =gBattlescriptCurrInstr mov r9, r0 - ldr r1, _08014AAC @ =gUnknown_081D9E7C + ldr r1, _08014AAC @ =gBattlescriptsForUsingItem mov r10, r1 _08014A74: mov r2, r8 @@ -4730,7 +4730,7 @@ _08014A8C: _08014AA0: .4byte gBattleCommunication _08014AA4: .4byte gBankAttacker _08014AA8: .4byte gBattlescriptCurrInstr -_08014AAC: .4byte gUnknown_081D9E7C +_08014AAC: .4byte gBattlescriptsForUsingItem _08014AB0: .4byte 0x000160d8 _08014AB4: .4byte gFightStateTracker thumb_func_end sub_80147A0 @@ -4998,7 +4998,7 @@ _08014C9C: movs r0, 0x3 strb r0, [r1, 0x5] ldr r1, _08014CE8 @ =gBattlescriptCurrInstr - ldr r0, _08014CEC @ =gUnknown_081D8E3B + ldr r0, _08014CEC @ =BattleScript_PrintFailedToRunString str r0, [r1] ldr r1, _08014CF0 @ =gFightStateTracker movs r0, 0xA @@ -5008,7 +5008,7 @@ _08014CDC: .4byte gBattleMons _08014CE0: .4byte 0xfdffffff _08014CE4: .4byte gBattleCommunication _08014CE8: .4byte gBattlescriptCurrInstr -_08014CEC: .4byte gUnknown_081D8E3B +_08014CEC: .4byte BattleScript_PrintFailedToRunString _08014CF0: .4byte gFightStateTracker _08014CF4: ldr r1, _08014D1C @ =gBattleMons @@ -5026,7 +5026,7 @@ _08014CF4: movs r0, 0x4 strb r0, [r1, 0x5] ldr r1, _08014D28 @ =gBattlescriptCurrInstr - ldr r0, _08014D2C @ =gUnknown_081D8E3B + ldr r0, _08014D2C @ =BattleScript_PrintFailedToRunString str r0, [r1] ldr r1, _08014D30 @ =gFightStateTracker movs r0, 0xA @@ -5036,7 +5036,7 @@ _08014D1C: .4byte gBattleMons _08014D20: .4byte 0x0400e000 _08014D24: .4byte gBattleCommunication _08014D28: .4byte gBattlescriptCurrInstr -_08014D2C: .4byte gUnknown_081D8E3B +_08014D2C: .4byte BattleScript_PrintFailedToRunString _08014D30: .4byte gFightStateTracker _08014D34: ldr r0, _08014D48 @ =gNoOfAllBanks diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index 3a6eccc99..e4fa0c454 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -476,7 +476,7 @@ .macro fanfare int .byte 0x55 - .4byte \int + .2byte \int .endm .macro playfaintcry bank_or_side @@ -1335,3 +1335,80 @@ .macro playtrainerdefeatbgm bank various \bank, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC .endm + +@ helpful macros + .macro setstatchanger stat, stages, down + setbyte sSTATCHANGER \stat | \stages << 4 | \down << 7 + .endm + + .macro setmoveeffect effect + setbyte cEFFECT_CHOOSER \effect + .endm + + .macro chosenstatus1animation bank, status + chosenstatusanimation \bank 0x0 \status + .endm + + .macro chosenstatus2animation bank, status + chosenstatusanimation \bank 0x1 \status + .endm + + .macro sethword dst, value + setbyte \dst, \value & 0xFF + setbyte \dst + 1, (\value >> 8) & 0xFF + .endm + + .macro setword dst, value + setbyte \dst, \value & 0xFF + setbyte \dst + 1, (\value >> 8) & 0xFF + setbyte \dst + 2, (\value >> 16) & 0xFF + setbyte \dst + 3, (\value >> 24) & 0xFF + .endm + + .macro copybyte dst, src + copyarray \dst, \src, 0x1 + .endm + + .macro copyhword dst, src + copyarray \dst, \src, 0x2 + .endm + + .macro copyword dst, src + copyarray \dst, \src, 0x4 + .endm + + .macro jumpifbytenotequal byte1, byte2, jumpptr + jumpifarraynotequal \byte1, \byte2, 0x1, \jumpptr + .endm + + .macro jumpifbyteequal byte1, byte2, jumpptr + jumpifarrayequal \byte1, \byte2, 0x1, \jumpptr + .endm + + .macro jumpifmove move, jumpptr + jumpifhalfword EQUAL, gCurrentMove, \move, \jumpptr + .endm + + .macro jumpifnotmove move, jumpptr + jumpifhalfword NOT_EQUAL, gCurrentMove, \move, \jumpptr + .endm + + .macro jumpifstatus3 bank, status, jumpptr + jumpifstatus3condition \bank, \status, 0x0, \jumpptr + .endm + + .macro jumpifnostatus3 bank, status, jumpptr + jumpifstatus3condition \bank, \status, 0x1, \jumpptr + .endm + + .macro jumpifmovehadnoeffect jumpptr + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, \jumpptr + .endm + + .macro jumpifbattletype flags, jumpptr + jumpifhalfword COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr + .endm + + .macro jumpifnotbattletype flags, jumpptr + jumpifhalfword NO_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr + .endm diff --git a/constants/battle_script_constants.inc b/constants/battle_script_constants.inc index 291807e0d..f35c80543 100644 --- a/constants/battle_script_constants.inc +++ b/constants/battle_script_constants.inc @@ -1,3 +1,122 @@ +@ animation ids + .set ANIM_CASTFORM_CHANGE, 0x0 + .set ANIM_STATS_CHANGE, 0x1 + .set ANIM_SUBSTITUTE_FADE, 0x2 + .set ANIM_SUBSTITUTE_APPEAR, 0x3 + .set ANIM_x4, 0x4 + .set ANIM_ITEM_KNOCKOFF, 0x5 + .set ANIM_TURN_TRAP, 0x6 + .set ANIM_ITEM_EFFECT, 0x7 + .set ANIM_SMOKEBALL_ESCAPE, 0x8 + .set ANIM_HANGED_ON, 0x9 + .set ANIM_RAIN_CONTINUES, 0xA + .set ANIM_SUN_CONTINUES, 0xB + .set ANIM_SANDSTORM_CONTINUES, 0xC + .set ANIM_HAIL_CONTINUES, 0xD + .set ANIM_LEECH_SEED_DRAIN, 0xE + .set ANIM_MON_HIT, 0xF + .set ANIM_ITEM_STEAL, 0x10 + .set ANIM_SNATCH_MOVE, 0x11 + .set ANIM_FUTURE_SIGHT_HIT, 0x12 + .set ANIM_DOOM_DESIRE_HIT, 0x13 + .set ANIM_x14, 0x14 + .set ANIM_INGRAIN_HEAL, 0x15 + .set ANIM_WISH_HEAL, 0x16 + +@ atk 80 + .set ATK80_DMG_CHANGE_SIGN, 0x0 + .set ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP, 0x1 + .set ATK80_DMG_DOUBLED, 0x2 + +@ compare operands + .set EQUAL, 0x0 + .set NOT_EQUAL, 0x1 + .set GREATER_THAN, 0x2 + .set LESS_THAN, 0x3 + .set COMMON_BITS, 0x4 + .set NO_COMMON_BITS, 0x5 + +@ move effects + .set EFFECT_SLEEP, 0x1 + .set EFFECT_POISON, 0x2 + .set EFFECT_BURN, 0x3 + .set EFFECT_FREEZE, 0x4 + .set EFFECT_PARALYSIS, 0x5 + .set EFFECT_TOXIC, 0x6 + .set EFFECT_CONFUSION, 0x7 + .set EFFECT_FLINCH, 0x8 + .set EFFECT_TRI_ATTACK, 0x9 + .set EFFECT_UPROAR, 0xA + .set EFFECT_PAYDAY, 0xB + .set EFFECT_CHARGING, 0xC + .set EFFECT_WRAP, 0xD + .set EFFECT_RECOIL_25, 0xE + .set EFFECT_ATK_PLUS_1, 0xF + .set EFFECT_DEF_PLUS_1, 0x10 + .set EFFECT_SPD_PLUS_1, 0x11 + .set EFFECT_SP_ATK_PLUS_1, 0x12 + .set EFFECT_SP_DEF_PLUS_1, 0x13 + .set EFFECT_ACC_PLUS_1, 0x14 + .set EFFECT_EVS_PLUS_1, 0x15 + .set EFFECT_ATK_MINUS_1, 0x16 + .set EFFECT_DEF_MINUS_1, 0x17 + .set EFFECT_SPD_MINUS_1, 0x18 + .set EFFECT_SP_ATK_MINUS_1, 0x19 + .set EFFECT_SP_DEF_MINUS_1, 0x1A + .set EFFECT_ACC_MINUS_1, 0x1B + .set EFFECT_EVS_MINUS_1, 0x1C + .set EFFECT_RECHARGE, 0x1D + .set EFFECT_RAGE, 0x1E + .set EFFECT_STEAL_ITEM, 0x1F + .set EFFECT_PREVENT_ESCAPE, 0x20 + .set EFFECT_NIGHTMARE, 0x21 + .set EFFECT_ALL_STATS_UP, 0x22 + .set EFFECT_RAPIDSPIN, 0x23 + .set EFFECT_REMOVE_PARALYSIS, 0x24 + .set EFFECT_ATK_DEF_DOWN, 0x25 + .set EFFECT_RECOIL_33_PARALYSIS, 0x26 + .set EFFECT_ATK_PLUS_2, 0x27 + .set EFFECT_DEF_PLUS_2, 0x28 + .set EFFECT_SPD_PLUS_2, 0x29 + .set EFFECT_SP_ATK_PLUS_2, 0x2A + .set EFFECT_SP_DEF_PLUS_2, 0x2B + .set EFFECT_ACC_PLUS_2, 0x2C + .set EFFECT_EVS_PLUS_2, 0x2D + .set EFFECT_ATK_MINUS_2, 0x2E + .set EFFECT_DEF_MINUS_2, 0x2F + .set EFFECT_SPD_MINUS_2, 0x30 + .set EFFECT_SP_ATK_MINUS_2, 0x31 + .set EFFECT_SP_DEF_MINUS_2, 0x32 + .set EFFECT_ACC_MINUS_2, 0x33 + .set EFFECT_EVS_MINUS_2, 0x34 + .set EFFECT_THRASH, 0x35 + .set EFFECT_KNOCK_OFF, 0x36 + .set EFFECT_NOTHING_37, 0x37 + .set EFFECT_NOTHING_38, 0x38 + .set EFFECT_NOTHING_39, 0x39 + .set EFFECT_NOTHING_3A, 0x3A + .set EFFECT_SP_ATK_TWO_DOWN, 0x3B + .set EFFECT_NOTHING_3C, 0x3C + .set EFFECT_NOTHING_3D, 0x3D + .set EFFECT_NOTHING_3E, 0x3E + .set EFFECT_NOTHING_3F, 0x3F + + .set AFFECTS_USER, 0x40 + .set CERTAIN, 0x80 + +@ accuracy calc + .set NO_ACC_CALC, 0xFFFE + .set NO_ACC_CALC_CHECK_LOCK_ON, 0xFFFF + .set ACC_CURR_MOVE, 0x0 + +@ bank values + .set EFFECT_BANK, 0x2 + .set GBANK_1, 0x3 + .set ATTACKER_WITH_PARTNER, 0x4 @ only for cmd98 + .set BANK0, 0x7 + .set SCRIPTING_BANK, 0xA + .set OPPONENT1, 0xC + @ various .set VARIOUS_CANCEL_MULTI_TURN_MOVES, 0 .set VARIOUS_SET_MAGIC_COAT_TARGET, 1 @@ -11,3 +130,33 @@ .set VARIOUS_RETURN_OPPONENT_MON2, 20 .set VARIOUS_SET_TELEPORT_OUTCOME, 25 .set VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC, 26 + +@ jumpifcant switch flag argument + .set ATK4F_DONT_CHECK_STATUSES, 0x80 + +@ battle scripting struct + .equiv sANIM_TURN, gSharedMem + 0x16002 + .equiv sBANK, gSharedMem + 0x16003 + .equiv sMOVEEND_STATE, gSharedMem + 0x1600C + .equiv sGIVEEXP_STATE, gSharedMem + 0x1600F + .equiv sPAINSPLIT_HP, gSharedMem + 0x16014 + .equiv sLEARNMOVE_STATE, gSharedMem + 0x1601A + .equiv sSTATCHANGER, gSharedMem + 0x1601E + .equiv sDMG_MULTIPLIER, gSharedMem + 0x1601F + .equiv sTWOTURN_STRINGID, gSharedMem + 0x16055 + .equiv sBATTLE_STYLE, gSharedMem + 0x16084 + .equiv sBIDE_DMG, gSharedMem + 0x16090 + .equiv sLVLBOX_STATE, gSharedMem + 0x1609C + .equiv sANIM_TARGETS_HIT, gSharedMem + 0x160A1 + .equiv sANIM_ARG1, gSharedMem + 0x160A4 + .equiv sANIM_ARG2, gSharedMem + 0x160A5 + .equiv sFIELD_1B, gSharedMem + 0x160DC + .equiv sTRIPLE_KICK_POWER, gSharedMem + 0x160DE + .equiv sMULTIHIT_STRING, gSharedMem + 0x160E0 + .equiv sBANK_WITH_ABILITY, gSharedMem + 0x160F8 + .equiv sMULTIHIT_EFFECT, gSharedMem + 0x16112 + + +@ battle communication struct + .equiv cEFFECT_CHOOSER, gBattleCommunication + 3 + .equiv cMULTISTRING_CHOOSER, gBattleCommunication + 5 diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 3041e7a48..3c255b461 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -1,4 +1,7 @@ #include "constants/abilities.h" +#include "constants/battle_constants.h" +#include "constants/moves.h" +#include "constants/songs.h" .include "asm/macros.inc" .include "asm/macros/battle_script.inc" .include "constants/constants.inc" @@ -6,268 +9,268 @@ .section script_data, "aw", %progbits -gBattleScriptsEffectsTable:: @ 81D6BBC - .4byte MoveEffect_Hit - .4byte MoveEffect_Sleep - .4byte MoveEffect_PoisonHit - .4byte MoveEffect_Absorb - .4byte MoveEffect_BurnHit - .4byte MoveEffect_FreezeHit - .4byte MoveEffect_ParalyzeHit - .4byte MoveEffect_Explosion - .4byte MoveEffect_DreamEater - .4byte MoveEffect_MirrorMove - .4byte MoveEffect_AttackUp - .4byte MoveEffect_DefenseUp - .4byte MoveEffect_SpeedUp - .4byte MoveEffect_SpecialAttackUp - .4byte MoveEffect_SpecialDefenseUp - .4byte MoveEffect_AccuracyUp - .4byte MoveEffect_EvasionUp - .4byte MoveEffect_AlwaysHit - .4byte MoveEffect_AttackDown - .4byte MoveEffect_DefenseDown - .4byte MoveEffect_SpeedDown - .4byte MoveEffect_SpecialAttackDown - .4byte MoveEffect_SpecialDefenseDown - .4byte MoveEffect_AccuracyDown - .4byte MoveEffect_EvasionDown - .4byte MoveEffect_Haze - .4byte MoveEffect_Bide - .4byte MoveEffect_Rampage - .4byte MoveEffect_Roar - .4byte MoveEffect_MultiHit - .4byte MoveEffect_Conversion - .4byte MoveEffect_FlinchHit - .4byte MoveEffect_RestoreHp - .4byte MoveEffect_Toxic - .4byte MoveEffect_PayDay - .4byte MoveEffect_LightScreen - .4byte MoveEffect_TriAttack - .4byte MoveEffect_Rest - .4byte MoveEffect_Ohko - .4byte MoveEffect_RazorWind - .4byte MoveEffect_SuperFang - .4byte MoveEffect_DragonRage - .4byte MoveEffect_Trap - .4byte MoveEffect_HighCritical - .4byte MoveEffect_DoubleHit - .4byte MoveEffect_RecoilIfMiss - .4byte MoveEffect_Mist - .4byte MoveEffect_FocusEnergy - .4byte MoveEffect_Recoil - .4byte MoveEffect_Confuse - .4byte MoveEffect_AttackUp2 - .4byte MoveEffect_DefenseUp2 - .4byte MoveEffect_SpeedUp2 - .4byte MoveEffect_SpecialAttackUp2 - .4byte MoveEffect_SpecialDefenseUp2 - .4byte MoveEffect_AccuracyUp2 - .4byte MoveEffect_EvasionUp2 - .4byte MoveEffect_Transform - .4byte MoveEffect_AttackDown2 - .4byte MoveEffect_DefenseDown2 - .4byte MoveEffect_SpeedDown2 - .4byte MoveEffect_SpecialAttackDown2 - .4byte MoveEffect_SpecialDefenseDown2 - .4byte MoveEffect_AccuracyDown2 - .4byte MoveEffect_EvasionDown2 - .4byte MoveEffect_Reflect - .4byte MoveEffect_Poison - .4byte MoveEffect_Paralyze - .4byte MoveEffect_AttackDownHit - .4byte MoveEffect_DefenseDownHit - .4byte MoveEffect_SpeedDownHit - .4byte MoveEffect_SpecialAttackDownHit - .4byte MoveEffect_SpecialDefenseDownHit - .4byte MoveEffect_AccuracyDownHit - .4byte MoveEffect_EvasionDownHit - .4byte MoveEffect_SkyAttack - .4byte MoveEffect_ConfuseHit - .4byte MoveEffect_Twineedle - .4byte MoveEffect_VitalThrow - .4byte MoveEffect_Substitute - .4byte MoveEffect_Recharge - .4byte MoveEffect_Rage - .4byte MoveEffect_Mimic - .4byte MoveEffect_Metronome - .4byte MoveEffect_LeechSeed - .4byte MoveEffect_Splash - .4byte MoveEffect_Disable - .4byte MoveEffect_LevelDamage - .4byte MoveEffect_Psywave - .4byte MoveEffect_Counter - .4byte MoveEffect_Encore - .4byte MoveEffect_PainSplit - .4byte MoveEffect_Snore - .4byte MoveEffect_Conversion2 - .4byte MoveEffect_LockOn - .4byte MoveEffect_Sketch - .4byte MoveEffect_Unused60 - .4byte MoveEffect_SleepTalk - .4byte MoveEffect_DestinyBond - .4byte MoveEffect_Flail - .4byte MoveEffect_Spite - .4byte MoveEffect_FalseSwipe - .4byte MoveEffect_HealBell - .4byte MoveEffect_QuickAttack - .4byte MoveEffect_TripleKick - .4byte MoveEffect_Thief - .4byte MoveEffect_MeanLook - .4byte MoveEffect_Nightmare - .4byte MoveEffect_Minimize - .4byte MoveEffect_Curse - .4byte MoveEffect_Unused6E - .4byte MoveEffect_Protect - .4byte MoveEffect_Spikes - .4byte MoveEffect_Foresight - .4byte MoveEffect_PerishSong - .4byte MoveEffect_Sandstorm - .4byte MoveEffect_Endure - .4byte MoveEffect_Rollout - .4byte MoveEffect_Swagger - .4byte MoveEffect_FuryCutter - .4byte MoveEffect_Attract - .4byte MoveEffect_Return - .4byte MoveEffect_Present - .4byte MoveEffect_Frustration - .4byte MoveEffect_Safeguard - .4byte MoveEffect_ThawHit - .4byte MoveEffect_Magnitude - .4byte MoveEffect_BatonPass - .4byte MoveEffect_Pursuit - .4byte MoveEffect_RapidSpin - .4byte MoveEffect_Sonicboom - .4byte MoveEffect_Unused83 - .4byte MoveEffect_MorningSun - .4byte MoveEffect_Synthesis - .4byte MoveEffect_Moonlight - .4byte MoveEffect_HiddenPower - .4byte MoveEffect_RainDance - .4byte MoveEffect_SunnyDay - .4byte MoveEffect_DefenseUpHit - .4byte MoveEffect_AttackUpHit - .4byte MoveEffect_AllStatsUpHit - .4byte MoveEffect_Unused8D - .4byte MoveEffect_BellyDrum - .4byte MoveEffect_PsychUp - .4byte MoveEffect_MirrorCoat - .4byte MoveEffect_SkullBash - .4byte MoveEffect_Twister - .4byte MoveEffect_Earthquake - .4byte MoveEffect_FutureSight - .4byte MoveEffect_Gust - .4byte MoveEffect_FlinchHit2 - .4byte MoveEffect_Solarbeam - .4byte MoveEffect_Thunder - .4byte MoveEffect_Teleport - .4byte MoveEffect_BeatUp - .4byte MoveEffect_Fly - .4byte MoveEffect_DefenseCurl - .4byte MoveEffect_Softboiled - .4byte MoveEffect_FakeOut - .4byte MoveEffect_Uproar - .4byte MoveEffect_Stockpile - .4byte MoveEffect_SpitUp - .4byte MoveEffect_Swallow - .4byte MoveEffect_UnusedA3 - .4byte MoveEffect_Hail - .4byte MoveEffect_Torment - .4byte MoveEffect_Flatter - .4byte MoveEffect_WillOWisp - .4byte MoveEffect_Memento - .4byte MoveEffect_Facade - .4byte MoveEffect_FocusPunch - .4byte MoveEffect_Smellingsalt - .4byte MoveEffect_FollowMe - .4byte MoveEffect_NaturePower - .4byte MoveEffect_Charge - .4byte MoveEffect_Taunt - .4byte MoveEffect_HelpingHand - .4byte MoveEffect_Trick - .4byte MoveEffect_RolePlay - .4byte MoveEffect_Wish - .4byte MoveEffect_Assist - .4byte MoveEffect_Ingrain - .4byte MoveEffect_Superpower - .4byte MoveEffect_MagicCoat - .4byte MoveEffect_Recycle - .4byte MoveEffect_Revenge - .4byte MoveEffect_BrickBreak - .4byte MoveEffect_Yawn - .4byte MoveEffect_KnockOff - .4byte MoveEffect_Endeavor - .4byte MoveEffect_Eruption - .4byte MoveEffect_SkillSwap - .4byte MoveEffect_Imprison - .4byte MoveEffect_Refresh - .4byte MoveEffect_Grudge - .4byte MoveEffect_Snatch - .4byte MoveEffect_LowKick - .4byte MoveEffect_SecretPower - .4byte MoveEffect_DoubleEdge - .4byte MoveEffect_TeeterDance - .4byte MoveEffect_BlazeKick - .4byte MoveEffect_MudSport - .4byte MoveEffect_PoisonFang - .4byte MoveEffect_WeatherBall - .4byte MoveEffect_Overheat - .4byte MoveEffect_Tickle - .4byte MoveEffect_CosmicPower - .4byte MoveEffect_SkyUppercut - .4byte MoveEffect_BulkUp - .4byte MoveEffect_PoisonTail - .4byte MoveEffect_WaterSport - .4byte MoveEffect_CalmMind - .4byte MoveEffect_DragonDance - .4byte MoveEffect_Camouflage - -BattleScript_1D6F14: @ 81D6F14 -MoveEffect_AccuracyDown2: @ 81D6F14 -MoveEffect_AccuracyUp2: @ 81D6F14 -MoveEffect_AccuracyUp: @ 81D6F14 -MoveEffect_AlwaysHit: @ 81D6F14 -MoveEffect_EvasionDown2: @ 81D6F14 -MoveEffect_EvasionDownHit: @ 81D6F14 -MoveEffect_EvasionUp2: @ 81D6F14 -MoveEffect_FalseSwipe: @ 81D6F14 -MoveEffect_HighCritical: @ 81D6F14 -MoveEffect_Hit: @ 81D6F14 -MoveEffect_Pursuit: @ 81D6F14 -MoveEffect_QuickAttack: @ 81D6F14 -MoveEffect_SpecialAttackDown2: @ 81D6F14 -MoveEffect_SpecialAttackDown: @ 81D6F14 -MoveEffect_SpecialDefenseDown: @ 81D6F14 -MoveEffect_SpecialDefenseUp: @ 81D6F14 -MoveEffect_SpeedUp: @ 81D6F14 -MoveEffect_Unused60: @ 81D6F14 -MoveEffect_Unused6E: @ 81D6F14 -MoveEffect_Unused83: @ 81D6F14 -MoveEffect_Unused8D: @ 81D6F14 -MoveEffect_UnusedA3: @ 81D6F14 -MoveEffect_VitalThrow: @ 81D6F14 - jumpifhalfword 1, gCurrentMove, 57, BattleScript_1D6F3A - jumpifstatus3condition TARGET, 0x40000, 1, BattleScript_1D6F3A - orword gHitMarker, 0x40000 - setbyte gSharedMem + 0x1601F, 2 - -BattleScript_1D6F3A: @ 81D6F3A - attackcanceler - -BattleScript_1D6F3B: @ 81D6F3B - accuracycheck BattleScript_1D6F72, 0 - -BattleScript_1D6F42: @ 81D6F42 - attackstring - ppreduce - -BattleScript_1D6F44:: @ 81D6F44 +gBattleScriptsForMoveEffects:: @ 81D6BBC + .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_EffectHit: @ 81D6F14 +BattleScript_EffectAccuracyDown2: @ 81D6F14 +BattleScript_EffectAccuracyUp2: @ 81D6F14 +BattleScript_EffectAccuracyUp: @ 81D6F14 +BattleScript_EffectAlwaysHit: @ 81D6F14 +BattleScript_EffectEvasionDown2: @ 81D6F14 +BattleScript_EffectEvasionDownHit: @ 81D6F14 +BattleScript_EffectEvasionUp2: @ 81D6F14 +BattleScript_EffectFalseSwipe: @ 81D6F14 +BattleScript_EffectHighCritical: @ 81D6F14 +BattleScript_EffectHit: @ 81D6F14 +BattleScript_EffectPursuit: @ 81D6F14 +BattleScript_EffectQuickAttack: @ 81D6F14 +BattleScript_EffectSpecialAttackDown2: @ 81D6F14 +BattleScript_EffectSpecialAttackDown: @ 81D6F14 +BattleScript_EffectSpecialDefenseDown: @ 81D6F14 +BattleScript_EffectSpecialDefenseUp: @ 81D6F14 +BattleScript_EffectSpeedUp: @ 81D6F14 +BattleScript_EffectUnused60: @ 81D6F14 +BattleScript_EffectUnused6E: @ 81D6F14 +BattleScript_EffectUnused83: @ 81D6F14 +BattleScript_EffectUnused8D: @ 81D6F14 +BattleScript_EffectUnusedA3: @ 81D6F14 +BattleScript_EffectVitalThrow: @ 81D6F14 + jumpifnotmove MOVE_SURF, BattleScript_HitFromAtkCanceler + jumpifnostatus3 TARGET, STATUS3_UNDERWATER, BattleScript_HitFromAtkCanceler + orword gHitMarker, HITMARKER_IGNORE_UNDERWATER + setbyte sDMG_MULTIPLIER, 2 + +BattleScript_HitFromAtkCanceler: @ 81D6F3A + attackcanceler + +BattleScript_HitFromAccCheck: @ 81D6F3B + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + +BattleScript_HitFromAtkString: @ 81D6F42 + attackstring + ppreduce + +BattleScript_HitFromCritCalc:: @ 81D6F44 critcalc damagecalc typecalc adjustnormaldamage -BattleScript_1D6F48: @ 81D6F48 +BattleScript_HitFromAtkAnimation: @ 81D6F48 attackanimation waitanimation effectivenesssound @@ -280,71 +283,71 @@ BattleScript_1D6F48: @ 81D6F48 resultmessage waitmessage 64 seteffectwithchance - tryfaintmon TARGET, 0, 0x0 + tryfaintmon TARGET, FALSE, NULL -BattleScript_EndTurn:: @ 81D6F62 - setbyte gSharedMem + 0x1600C, 0 +BattleScript_MoveEnd:: @ 81D6F62 + setbyte sMOVEEND_STATE, 0 moveend 0, 0 end -BattleScript_1D6F6C: @ 81D6F6C - orbyte gBattleMoveFlags, 1 +BattleScript_MakeMoveMissed: @ 81D6F6C + orbyte gBattleMoveFlags, MOVESTATUS_MISSED -BattleScript_1D6F72: @ 81D6F72 +BattleScript_PrintMoveMissed: @ 81D6F72 attackstring ppreduce -BattleScript_1D6F74:: @ 81D6F74 +BattleScript_MoveMissedPause:: @ 81D6F74 pause 32 -BattleScript_1D6F77: @ 81D6F77 +BattleScript_MoveMissed: @ 81D6F77 effectivenesssound resultmessage waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Sleep: @ 81D6F81 +BattleScript_EffectSleep: @ 81D6F81 attackcanceler attackstring ppreduce - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_ButItFailed - jumpifstatus TARGET, SLP, BattleScript_1D6FC4 - jumpifcantmakeasleep BattleScript_1D6FE0 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus TARGET, SLP, BattleScript_AlreadyAsleep + jumpifcantmakeasleep BattleScript_CantMakeAsleep jumpifstatus TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, BattleScript_ButItFailed - accuracycheck BattleScript_ButItFailed, 0 - jumpifsideaffecting TARGET, 32, BattleScript_1D9037 + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected attackanimation waitanimation - setbyte gUnknown_02024D1F + 0x2, 1 + setmoveeffect EFFECT_SLEEP seteffectprimary - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -BattleScript_1D6FC4: @ 81D6FC4 +BattleScript_AlreadyAsleep: @ 81D6FC4 pause 32 printstring BATTLE_TEXT_DefendingAsleep waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -BattleScript_1D6FD2: @ 81D6FD2 +BattleScript_WasntAffected: @ 81D6FD2 pause 32 printstring BATTLE_TEXT_WasntAffected waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -BattleScript_1D6FE0: @ 81D6FE0 +BattleScript_CantMakeAsleep: @ 81D6FE0 pause 32 - printfromtable BattleTextList_40156A + printfromtable gUproarAwakeStringIds waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_PoisonHit: @ 81D6FF0 -MoveEffect_PoisonTail: @ 81D6FF0 - setbyte gUnknown_02024D1F + 0x2, 2 - goto BattleScript_1D6F14 +BattleScript_EffectPoisonHit: @ 81D6FF0 +BattleScript_EffectPoisonTail: @ 81D6FF0 + setmoveeffect EFFECT_POISON + goto BattleScript_EffectHit -MoveEffect_Absorb: @ 81D6FFB +BattleScript_EffectAbsorb: @ 81D6FFB attackcanceler - accuracycheck BattleScript_1D6F72, 0 + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce critcalc @@ -363,48 +366,48 @@ MoveEffect_Absorb: @ 81D6FFB resultmessage waitmessage 64 negativedamage - orword gHitMarker, 0x100 - jumpifability TARGET, ABILITY_LIQUID_OOZE, BattleScript_1D7037 - setbyte gUnknown_02024D1F + 0x4, 0 - goto BattleScript_1D703F + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + jumpifability TARGET, ABILITY_LIQUID_OOZE, BattleScript_AbsorbLiquidOoze + setbyte cMULTISTRING_CHOOSER, 0 + goto BattleScript_AbsorbUpdateHp -BattleScript_1D7037: @ 81D7037 +BattleScript_AbsorbLiquidOoze: @ 81D7037 manipulatedamage 0 - setbyte gUnknown_02024D1F + 0x4, 1 + setbyte cMULTISTRING_CHOOSER, 1 -BattleScript_1D703F: @ 81D703F +BattleScript_AbsorbUpdateHp: @ 81D703F healthbarupdate USER datahpupdate USER - jumpifbyte 4, gBattleMoveFlags, 41, BattleScript_1D7056 - printfromtable BattleTextList_4015D0 + jumpifmovehadnoeffect BattleScript_AbsorbTryFainting + printfromtable gLeechSeedDrainStringIds waitmessage 64 -BattleScript_1D7056: @ 81D7056 - tryfaintmon USER, 0, 0x0 - tryfaintmon TARGET, 0, 0x0 - goto BattleScript_EndTurn +BattleScript_AbsorbTryFainting: @ 81D7056 + tryfaintmon USER, FALSE, NULL + tryfaintmon TARGET, FALSE, NULL + goto BattleScript_MoveEnd -MoveEffect_BlazeKick: @ 81D7069 -MoveEffect_BurnHit: @ 81D7069 - setbyte gUnknown_02024D1F + 0x2, 3 - goto BattleScript_1D6F14 +BattleScript_EffectBlazeKick: @ 81D7069 +BattleScript_EffectBurnHit: @ 81D7069 + setmoveeffect EFFECT_BURN + goto BattleScript_EffectHit -MoveEffect_FreezeHit: @ 81D7074 - setbyte gUnknown_02024D1F + 0x2, 4 - goto BattleScript_1D6F14 +BattleScript_EffectFreezeHit: @ 81D7074 + setmoveeffect EFFECT_FREEZE + goto BattleScript_EffectHit -MoveEffect_ParalyzeHit: @ 81D707F - setbyte gUnknown_02024D1F + 0x2, 5 - goto BattleScript_1D6F14 +BattleScript_EffectParalyzeHit: @ 81D707F + setmoveeffect EFFECT_PARALYSIS + goto BattleScript_EffectHit -MoveEffect_Explosion: @ 81D708A +BattleScript_EffectExplosion: @ 81D708A attackcanceler attackstring ppreduce faintifabilitynotdamp setatkhptozero waitstate - jumpifbyte 5, gBattleMoveFlags, 1, BattleScript_1D70A5 + jumpifbyte NO_COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED, BattleScript_1D70A5 call BattleScript_1D70FB goto BattleScript_1D70A7 @@ -418,7 +421,7 @@ BattleScript_1D70A7: @ 81D70A7 damagecalc typecalc adjustnormaldamage - accuracycheck BattleScript_1D70E0, 0 + accuracycheck BattleScript_1D70E0, ACC_CURR_MOVE effectivenesssound hitanimation TARGET waitstate @@ -428,43 +431,43 @@ BattleScript_1D70A7: @ 81D70A7 waitmessage 64 resultmessage waitmessage 64 - tryfaintmon TARGET, 0, 0x0 - setbyte gSharedMem + 0x1600C, 0 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0 moveend 2, 16 jumpifnexttargetvalid BattleScript_1D70A7 - tryfaintmon USER, 0, 0x0 + tryfaintmon USER, FALSE, NULL end BattleScript_1D70E0: @ 81D70E0 effectivenesssound resultmessage waitmessage 64 - setbyte gSharedMem + 0x1600C, 0 + setbyte sMOVEEND_STATE, 0 moveend 2, 16 jumpifnexttargetvalid BattleScript_1D70A7 - tryfaintmon USER, 0, 0x0 + tryfaintmon USER, FALSE, NULL end BattleScript_1D70FB: @ 81D70FB - bicbyte gBattleMoveFlags, 1 + bicbyte gBattleMoveFlags, MOVESTATUS_MISSED attackanimation waitanimation - orbyte gBattleMoveFlags, 1 + orbyte gBattleMoveFlags, MOVESTATUS_MISSED return -MoveEffect_DreamEater: @ 81D710A +BattleScript_EffectDreamEater: @ 81D710A attackcanceler - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_1D711F + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_1D711F jumpifstatus TARGET, SLP, BattleScript_1D7129 BattleScript_1D711F: @ 81D711F attackstring ppreduce waitmessage 64 - goto BattleScript_1D6FD2 + goto BattleScript_WasntAffected BattleScript_1D7129: @ 81D7129 - accuracycheck BattleScript_1D6F72, 0 + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce critcalc @@ -483,126 +486,126 @@ BattleScript_1D7129: @ 81D7129 resultmessage waitmessage 64 negativedamage - orword gHitMarker, 0x100 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate USER datahpupdate USER - jumpifbyte 4, gBattleMoveFlags, 41, BattleScript_1D7167 + jumpifmovehadnoeffect BattleScript_DreamEaterTryFaintEnd printstring BATTLE_TEXT_DreamEaten waitmessage 64 -BattleScript_1D7167: @ 81D7167 - tryfaintmon TARGET, 0, 0x0 - goto BattleScript_EndTurn +BattleScript_DreamEaterTryFaintEnd: @ 81D7167 + tryfaintmon TARGET, FALSE, NULL + goto BattleScript_MoveEnd -MoveEffect_MirrorMove: @ 81D7173 +BattleScript_EffectMirrorMove: @ 81D7173 attackcanceler attackstring pause 64 trymirrormove ppreduce - orbyte gBattleMoveFlags, 32 + orbyte gBattleMoveFlags, MOVESTATUS_FAILED printstring BATTLE_TEXT_MirrorFail waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_AttackUp: @ 81D718B - setbyte gSharedMem + 0x1601E, 17 - goto BattleScript_1D71B2 +BattleScript_EffectAttackUp: @ 81D718B + setstatchanger ATTACK, 1, FALSE + goto BattleScript_EffectStatUp -MoveEffect_DefenseUp: @ 81D7196 - setbyte gSharedMem + 0x1601E, 18 - goto BattleScript_1D71B2 +BattleScript_EffectDefenseUp: @ 81D7196 + setstatchanger DEFENSE, 1, FALSE + goto BattleScript_EffectStatUp -MoveEffect_SpecialAttackUp: @ 81D71A1 - setbyte gSharedMem + 0x1601E, 20 - goto BattleScript_1D71B2 +BattleScript_EffectSpecialAttackUp: @ 81D71A1 + setstatchanger SP_ATTACK, 1, FALSE + goto BattleScript_EffectStatUp -MoveEffect_EvasionUp: @ 81D71AC - setbyte gSharedMem + 0x1601E, 23 +BattleScript_EffectEvasionUp: @ 81D71AC + setstatchanger EVASION, 1, FALSE -BattleScript_1D71B2: @ 81D71B2 +BattleScript_EffectStatUp: @ 81D71B2 attackcanceler -BattleScript_1D71B3: @ 81D71B3 +BattleScript_EffectStatUpAfterAtkCanceler: @ 81D71B3 attackstring ppreduce - statbuffchange 65, BattleScript_1D71E0 - jumpifbyte 1, gUnknown_02024D1F + 0x4, 2, BattleScript_1D71CE + statbuffchange AFFECTS_USER | 0x1, BattleScript_StatUpEnd + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_StatUpAttackAnim pause 32 - goto BattleScript_1D71D8 + goto BattleScript_StatUpPrintString -BattleScript_1D71CE: @ 81D71CE +BattleScript_StatUpAttackAnim: @ 81D71CE attackanimation waitanimation -BattleScript_1D71D0: @ 81D71D0 +BattleScript_StatUpDoAnim: @ 81D71D0 setgraphicalstatchangevalues - playanimation USER, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4 + playanimation USER, B_ANIM_STATS_CHANGE, sANIM_ARG1 -BattleScript_1D71D8: @ 81D71D8 - printfromtable BattleTextList_401570 +BattleScript_StatUpPrintString: @ 81D71D8 + printfromtable gStatUpStringIds waitmessage 64 -BattleScript_1D71E0: @ 81D71E0 - goto BattleScript_EndTurn +BattleScript_StatUpEnd: @ 81D71E0 + goto BattleScript_MoveEnd BattleScript_StatUp:: @ 81D71E5 - playanimation 2, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4 - printfromtable BattleTextList_401570 + playanimation 2, B_ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable gStatUpStringIds waitmessage 64 return -MoveEffect_AttackDown: @ 81D71F5 - setbyte gSharedMem + 0x1601E, 145 - goto BattleScript_1D7227 +BattleScript_EffectAttackDown: @ 81D71F5 + setstatchanger ATTACK, 1, TRUE + goto BattleScript_EffectStatDown -MoveEffect_DefenseDown: @ 81D7200 - setbyte gSharedMem + 0x1601E, 146 - goto BattleScript_1D7227 +BattleScript_EffectDefenseDown: @ 81D7200 + setstatchanger DEFENSE, 1, TRUE + goto BattleScript_EffectStatDown -MoveEffect_SpeedDown: @ 81D720B - setbyte gSharedMem + 0x1601E, 147 - goto BattleScript_1D7227 +BattleScript_EffectSpeedDown: @ 81D720B + setstatchanger SPEED, 1, TRUE + goto BattleScript_EffectStatDown -MoveEffect_AccuracyDown: @ 81D7216 - setbyte gSharedMem + 0x1601E, 150 - goto BattleScript_1D7227 +BattleScript_EffectAccuracyDown: @ 81D7216 + setstatchanger ACCURACY, 1, TRUE + goto BattleScript_EffectStatDown -MoveEffect_EvasionDown: @ 81D7221 - setbyte gSharedMem + 0x1601E, 151 +BattleScript_EffectEvasionDown: @ 81D7221 + setstatchanger EVASION, 1, TRUE -BattleScript_1D7227: @ 81D7227 +BattleScript_EffectStatDown: @ 81D7227 attackcanceler - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_1D83D4 - accuracycheck BattleScript_1D6F72, 0 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailedAtkStringPpReduce + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce - statbuffchange 1, BattleScript_1D7271 - jumpifbyte 3, gUnknown_02024D1F + 0x4, 2, BattleScript_1D725F - jumpifbyte 0, gUnknown_02024D1F + 0x4, 3, BattleScript_1D7271 + statbuffchange 1, BattleScript_StatDownEnd + jumpifbyte LESS_THAN, cMULTISTRING_CHOOSER, 2, BattleScript_StatDownDoAnim + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 3, BattleScript_StatDownEnd pause 32 - goto BattleScript_1D7269 + goto BattleScript_StatDownPrintString -BattleScript_1D725F: @ 81D725F +BattleScript_StatDownDoAnim: @ 81D725F attackanimation waitanimation setgraphicalstatchangevalues - playanimation TARGET, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4 + playanimation TARGET, B_ANIM_STATS_CHANGE, sANIM_ARG1 -BattleScript_1D7269: @ 81D7269 - printfromtable BattleTextList_40157C +BattleScript_StatDownPrintString: @ 81D7269 + printfromtable gStatDownStringIds waitmessage 64 -BattleScript_1D7271: @ 81D7271 - goto BattleScript_EndTurn +BattleScript_StatDownEnd: @ 81D7271 + goto BattleScript_MoveEnd BattleScript_StatDown:: @ 81D7276 - playanimation 2, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4 - printfromtable BattleTextList_40157C + playanimation 2, B_ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable gStatDownStringIds waitmessage 64 return -MoveEffect_Haze: @ 81D7286 +BattleScript_EffectHaze: @ 81D7286 attackcanceler attackstring ppreduce @@ -611,61 +614,61 @@ MoveEffect_Haze: @ 81D7286 normalisebuffs printstring BATTLE_TEXT_StatElim waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Bide: @ 81D7297 +BattleScript_EffectBide: @ 81D7297 attackcanceler attackstring ppreduce attackanimation waitanimation - orword gHitMarker, 0x8000000 + orword gHitMarker, HITMARKER_x8000000 setbide - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Rampage: @ 81D72AB +BattleScript_EffectRampage: @ 81D72AB attackcanceler - accuracycheck BattleScript_1D6F72, 0 + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring - jumpifstatus2 USER, S_CONTINUE, BattleScript_1D72BF + jumpifstatus2 USER, STATUS2_MULTIPLETURNS, BattleScript_1D72BF ppreduce BattleScript_1D72BF: @ 81D72BF confuseifrepeatingattackends - goto BattleScript_1D6F44 + goto BattleScript_HitFromCritCalc -MoveEffect_Roar: @ 81D72C5 +BattleScript_EffectRoar: @ 81D72C5 attackcanceler attackstring ppreduce - jumpifability TARGET, ABILITY_SUCTION_CUPS, BattleScript_1D988D - jumpifstatus3condition TARGET, 0x400, 0, BattleScript_1D93EC - accuracycheck BattleScript_ButItFailed, 65535 - accuracycheck BattleScript_1D6F77, 0 + jumpifability TARGET, ABILITY_SUCTION_CUPS, BattleScript_AbilityPreventsPhasingOut + jumpifstatus3 TARGET, STATUS3_ROOTED, BattleScript_PrintMonIsRooted + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE forcerandomswitch BattleScript_ButItFailed -MoveEffect_MultiHit: @ 81D72ED +BattleScript_EffectMultiHit: @ 81D72ED attackcanceler - accuracycheck BattleScript_1D6F72, 0 + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce setmultihitcounter 0 initmultihitstring - setbyte gSharedMem + 0x16112, 0 + setbyte sMULTIHIT_EFFECT, 0 -BattleScript_1D7300: @ 81D7300 - jumpifhasnohp USER, BattleScript_1D7396 - jumpifhasnohp TARGET, BattleScript_1D7377 - jumpifhalfword 0, gUnknown_02024BE8, 214, BattleScript_1D7322 - jumpifstatus USER, SLP, BattleScript_1D7377 +BattleScript_MultiHitLoop: @ 81D7300 + jumpifhasnohp USER, BattleScript_MultiHitEnd + jumpifhasnohp TARGET, BattleScript_MultiHitPrintStrings + jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoMultiHit + jumpifstatus USER, SLP, BattleScript_MultiHitPrintStrings -BattleScript_1D7322: @ 81D7322 +BattleScript_DoMultiHit: @ 81D7322 movevaluescleanup - copyarray gUnknown_02024D1F + 0x2, gSharedMem + 0x16112, 1 + copybyte cEFFECT_CHOOSER, sMULTIHIT_EFFECT critcalc damagecalc typecalc - jumpifbyte 4, gBattleMoveFlags, 41, BattleScript_1D7374 + jumpifmovehadnoeffect BattleScript_MultiHitNoMoreHits adjustnormaldamage attackanimation waitanimation @@ -678,34 +681,34 @@ BattleScript_1D7322: @ 81D7322 waitmessage 64 printstring BATTLE_TEXT_Terminator2 waitmessage 1 - addbyte gSharedMem + 0x160E4, 1 - setbyte gSharedMem + 0x1600C, 0 + addbyte sMULTIHIT_STRING + 4, 1 + setbyte sMOVEEND_STATE, 0 moveend 2, 16 - jumpifbyte 4, gBattleMoveFlags, 64, BattleScript_1D7377 - decrementmultihit BattleScript_1D7300 - goto BattleScript_1D7377 + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_MultiHitPrintStrings + decrementmultihit BattleScript_MultiHitLoop + goto BattleScript_MultiHitPrintStrings -BattleScript_1D7374: @ 81D7374 +BattleScript_MultiHitNoMoreHits: @ 81D7374 pause 32 -BattleScript_1D7377: @ 81D7377 +BattleScript_MultiHitPrintStrings: @ 81D7377 resultmessage waitmessage 64 - jumpifbyte 4, gBattleMoveFlags, 41, BattleScript_1D7396 - copyarray gBattleTextBuff1, gSharedMem + 0x160E0, 6 + jumpifmovehadnoeffect BattleScript_MultiHitEnd + copyarray gBattleTextBuff1, sMULTIHIT_STRING, 6 printstring BATTLE_TEXT_HitMulti waitmessage 64 -BattleScript_1D7396: @ 81D7396 +BattleScript_MultiHitEnd: @ 81D7396 seteffectwithchance - tryfaintmon TARGET, 0, 0x0 - setbyte gSharedMem + 0x1600C, 2 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 2 moveend 1, 0 - setbyte gSharedMem + 0x1600C, 4 + setbyte sMOVEEND_STATE, 4 moveend 0, 0 end -MoveEffect_Conversion: @ 81D73B1 +BattleScript_EffectConversion: @ 81D73B1 attackcanceler attackstring ppreduce @@ -714,520 +717,517 @@ MoveEffect_Conversion: @ 81D73B1 waitanimation printstring BATTLE_TEXT_TypeTransform waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_FlinchHit: @ 81D73C6 - setbyte gUnknown_02024D1F + 0x2, 8 - goto BattleScript_1D6F14 +BattleScript_EffectFlinchHit: @ 81D73C6 + setmoveeffect EFFECT_FLINCH + goto BattleScript_EffectHit -MoveEffect_RestoreHp: @ 81D73D1 +BattleScript_EffectRestoreHp: @ 81D73D1 attackcanceler attackstring ppreduce - tryhealhalfhealth BattleScript_1D83B5, 1 + tryhealhalfhealth BattleScript_AlreadyAtFullHp, 1 attackanimation waitanimation - orword gHitMarker, 0x100 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate USER datahpupdate USER printstring BATTLE_TEXT_RegainedHealth waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Toxic: @ 81D73F4 +BattleScript_EffectToxic: @ 81D73F4 attackcanceler attackstring ppreduce - jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_1D7463 - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_ButItFailed - jumpifstatus TARGET, PSN, BattleScript_1D7455 - jumpifstatus TARGET, TOX, BattleScript_1D7455 + jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus TARGET, PSN, BattleScript_AlreadyPoisoned + jumpifstatus TARGET, TOX, BattleScript_AlreadyPoisoned jumpifstatus TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, BattleScript_ButItFailed - jumpiftype TARGET, TYPE_POISON, BattleScript_1D83E8 - jumpiftype TARGET, TYPE_STEEL, BattleScript_1D83E8 - accuracycheck BattleScript_ButItFailed, 0 - jumpifsideaffecting TARGET, 32, BattleScript_1D9037 + 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 - setbyte gUnknown_02024D1F + 0x2, 6 + setmoveeffect EFFECT_TOXIC seteffectprimary resultmessage waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -BattleScript_1D7455: @ 81D7455 +BattleScript_AlreadyPoisoned: @ 81D7455 pause 64 printstring BATTLE_TEXT_AlreadyPoisoned waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -BattleScript_1D7463: @ 81D7463 - copyarray gEffectBank, gBankTarget, 1 - setbyte gUnknown_02024D1F + 0x4, 0 +BattleScript_ImmunityProtected: @ 81D7463 + copybyte gEffectBank, gBankTarget + setbyte cMULTISTRING_CHOOSER, 0 call BattleScript_PSNPrevention - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_PayDay: @ 81D747D - setbyte gUnknown_02024D1F + 0x2, 11 - goto BattleScript_1D6F14 +BattleScript_EffectPayDay: @ 81D747D + setmoveeffect EFFECT_PAYDAY + goto BattleScript_EffectHit -MoveEffect_LightScreen: @ 81D7488 +BattleScript_EffectLightScreen: @ 81D7488 attackcanceler attackstring ppreduce setlightscreen - goto BattleScript_1D7786 + goto BattleScript_PrintReflectLightScreenSafeguardString -MoveEffect_TriAttack: @ 81D7491 - setbyte gUnknown_02024D1F + 0x2, 9 - goto BattleScript_1D6F14 +BattleScript_EffectTriAttack: @ 81D7491 + setmoveeffect EFFECT_TRI_ATTACK + goto BattleScript_EffectHit -MoveEffect_Rest: @ 81D749C +BattleScript_EffectRest: @ 81D749C attackcanceler attackstring ppreduce - jumpifstatus USER, SLP, BattleScript_1D74D6 - jumpifcantmakeasleep BattleScript_1D74C6 - trysetrest BattleScript_1D83B5 + jumpifstatus USER, SLP, BattleScript_RestIsAlreadyAsleep + jumpifcantmakeasleep BattleScript_RestCantSleep + trysetrest BattleScript_AlreadyAtFullHp pause 32 - printfromtable BattleTextList_401556 + printfromtable gRestUsedStringIds waitmessage 64 - updatestatusicon 1 + updatestatusicon USER waitstate - goto BattleScript_1D839B + goto BattleScript_PresentHealTarget -BattleScript_1D74C6: @ 81D74C6 +BattleScript_RestCantSleep: @ 81D74C6 pause 64 - printfromtable BattleTextList_40156A + printfromtable gUproarAwakeStringIds waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -BattleScript_1D74D6: @ 81D74D6 +BattleScript_RestIsAlreadyAsleep: @ 81D74D6 pause 32 printstring BATTLE_TEXT_AttackingAsleep waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Ohko: @ 81D74E4 +BattleScript_EffectOHKO: @ 81D74E4 attackcanceler attackstring ppreduce - accuracycheck BattleScript_ButItFailed, 65535 + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON typecalc - jumpifbyte 4, gBattleMoveFlags, 41, BattleScript_1D6F48 - tryKO BattleScript_1D7505 + jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation + tryKO BattleScript_KOFail trysetdestinybondtohappen - goto BattleScript_1D6F48 + goto BattleScript_HitFromAtkAnimation -BattleScript_1D7505: @ 81D7505 +BattleScript_KOFail: @ 81D7505 pause 64 - printfromtable BattleTextList_4015C8 + printfromtable gKOFailedStringIds waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_RazorWind: @ 81D7515 - jumpifstatus2 USER, S_CONTINUE, BattleScript_1D753D - jumpifword 4, gHitMarker, 0x200, BattleScript_1D753D - setbyte gSharedMem + 0x16055, 0 - call BattleScript_1D756C - goto BattleScript_EndTurn +BattleScript_EffectRazorWind: @ 81D7515 + jumpifstatus2 USER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn + setbyte sTWOTURN_STRINGID, 0 + call BattleScriptFirstChargingTurn + goto BattleScript_MoveEnd -BattleScript_1D753D: @ 81D753D +BattleScript_TwoTurnMovesSecondTurn: @ 81D753D attackcanceler - setbyte gUnknown_02024D1F + 0x2, 12 - setbyte gSharedMem + 0x16002, 1 + setmoveeffect EFFECT_CHARGING + setbyte sANIM_TURN, 1 clearstatusfromeffect USER - orword gHitMarker, 0x800 - jumpifhalfword 1, gCurrentMove, 143, BattleScript_1D6F3B - setbyte gUnknown_02024D1F + 0x2, 8 - goto BattleScript_1D6F3B + orword gHitMarker, HITMARKER_NO_PPDEDUCT + jumpifnotmove MOVE_SKY_ATTACK, BattleScript_HitFromAccCheck + setmoveeffect EFFECT_FLINCH + goto BattleScript_HitFromAccCheck -BattleScript_1D756C: @ 81D756C +BattleScriptFirstChargingTurn: @ 81D756C attackcanceler printstring BATTLE_TEXT_Terminator2 ppreduce attackanimation waitanimation - orword gHitMarker, 0x8000000 - setbyte gUnknown_02024D1F + 0x2, 76 + orword gHitMarker, HITMARKER_x8000000 + setbyte cEFFECT_CHOOSER, 76 seteffectprimary - copyarray gUnknown_02024D1F + 0x4, gSharedMem + 0x16055, 1 - printfromtable BattleTextList_401584 + copybyte cMULTISTRING_CHOOSER, sTWOTURN_STRINGID + printfromtable gFirstTurnOfTwoStringIds waitmessage 64 return -MoveEffect_SuperFang: @ 81D7596 +BattleScript_EffectSuperFang: @ 81D7596 attackcanceler - accuracycheck BattleScript_1D6F72, 0 + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce typecalc - bicbyte gBattleMoveFlags, 6 + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE damagetohalftargethp - goto BattleScript_1D6F48 + goto BattleScript_HitFromAtkAnimation -MoveEffect_DragonRage: @ 81D75AD +BattleScript_EffectDragonRage: @ 81D75AD attackcanceler - accuracycheck BattleScript_1D6F72, 0 + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce typecalc - bicbyte gBattleMoveFlags, 6 - setbyte gBattleMoveDamage, 40 - setbyte gBattleMoveDamage + 0x1, 0 - setbyte gBattleMoveDamage + 0x2, 0 - setbyte gBattleMoveDamage + 0x3, 0 + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + setword gBattleMoveDamage, 40 adjustsetdamage - goto BattleScript_1D6F48 + goto BattleScript_HitFromAtkAnimation -MoveEffect_Trap: @ 81D75DC - jumpifhalfword 1, gCurrentMove, 250, BattleScript_1D7602 - jumpifstatus3condition TARGET, 0x40000, 1, BattleScript_1D7602 - orword gHitMarker, 0x40000 - setbyte gSharedMem + 0x1601F, 2 +BattleScript_EffectTrap: @ 81D75DC + jumpifnotmove MOVE_WHIRLPOOL, BattleScript_DoWrapEffect + jumpifnostatus3 TARGET, STATUS3_UNDERWATER, BattleScript_DoWrapEffect + orword gHitMarker, HITMARKER_IGNORE_UNDERWATER + setbyte sDMG_MULTIPLIER, 2 -BattleScript_1D7602: @ 81D7602 - setbyte gUnknown_02024D1F + 0x2, 13 - goto BattleScript_1D6F14 +BattleScript_DoWrapEffect: @ 81D7602 + setmoveeffect EFFECT_WRAP + goto BattleScript_EffectHit -MoveEffect_DoubleHit: @ 81D760D +BattleScript_EffectDoubleHit: @ 81D760D attackcanceler - accuracycheck BattleScript_1D6F72, 0 + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce setmultihitcounter 2 initmultihitstring - setbyte gSharedMem + 0x16112, 0 - goto BattleScript_1D7300 + setbyte sMULTIHIT_EFFECT, 0 + goto BattleScript_MultiHitLoop -MoveEffect_RecoilIfMiss: @ 81D7625 +BattleScript_EffectRecoilIfMiss: @ 81D7625 attackcanceler - accuracycheck BattleScript_1D7632, 0 - goto BattleScript_1D6F42 + accuracycheck BattleScript_MoveMissedDoDamage, ACC_CURR_MOVE + goto BattleScript_HitFromAtkString -BattleScript_1D7632: @ 81D7632 +BattleScript_MoveMissedDoDamage: @ 81D7632 attackstring ppreduce pause 64 resultmessage waitmessage 64 - jumpifbyte 4, gBattleMoveFlags, 8, BattleScript_EndTurn + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_MoveEnd printstring BATTLE_TEXT_KeptGoingCrash waitmessage 64 damagecalc typecalc adjustnormaldamage manipulatedamage 1 - bicbyte gBattleMoveFlags, 1 - orword gHitMarker, 0x100 + bicbyte gBattleMoveFlags, MOVESTATUS_MISSED + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate USER datahpupdate USER - tryfaintmon USER, 0, 0x0 - orbyte gBattleMoveFlags, 1 - goto BattleScript_EndTurn + tryfaintmon USER, FALSE, NULL + orbyte gBattleMoveFlags, MOVESTATUS_MISSED + goto BattleScript_MoveEnd -MoveEffect_Mist: @ 81D7676 +BattleScript_EffectMist: @ 81D7676 attackcanceler attackstring ppreduce setmist attackanimation waitanimation - printfromtable BattleTextList_4015A0 + printfromtable gMistUsedStringIds waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_FocusEnergy: @ 81D7689 +BattleScript_EffectFocusEnergy: @ 81D7689 attackcanceler attackstring ppreduce - jumpifstatus2 USER, S_FOCUS_ENERGY, BattleScript_ButItFailed + jumpifstatus2 USER, STATUS2_FOCUS_ENERGY, BattleScript_ButItFailed setfocusenergy attackanimation waitanimation - printfromtable BattleTextList_4015A4 + printfromtable gFocusEnergyUsedStringIds waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Recoil: @ 81D76A6 - setbyte gUnknown_02024D1F + 0x2, 206 - jumpifhalfword 1, gCurrentMove, 165, BattleScript_1D6F14 +BattleScript_EffectRecoil: @ 81D76A6 + setmoveeffect EFFECT_RECOIL_25 | AFFECTS_USER | CERTAIN + jumpifnotmove MOVE_STRUGGLE, BattleScript_EffectHit incrementgamestat 27 - goto BattleScript_1D6F14 + goto BattleScript_EffectHit -MoveEffect_Confuse: @ 81D76BF +BattleScript_EffectConfuse: @ 81D76BF attackcanceler attackstring ppreduce - jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_1D98E5 - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_ButItFailed - jumpifstatus2 TARGET, S_CONFUSED, BattleScript_1D76FE - accuracycheck BattleScript_ButItFailed, 0 - jumpifsideaffecting TARGET, 32, BattleScript_1D9037 + 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 - setbyte gUnknown_02024D1F + 0x2, 7 + setmoveeffect EFFECT_CONFUSION seteffectprimary resultmessage waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -BattleScript_1D76FE: @ 81D76FE +BattleScript_AlreadyConfused: @ 81D76FE pause 32 printstring BATTLE_TEXT_AlreadyConfused waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_AttackUp2: @ 81D770C - setbyte gSharedMem + 0x1601E, 33 - goto BattleScript_1D71B2 +BattleScript_EffectAttackUp2: @ 81D770C + setstatchanger ATTACK, 2, FALSE + goto BattleScript_EffectStatUp -MoveEffect_DefenseUp2: @ 81D7717 - setbyte gSharedMem + 0x1601E, 34 - goto BattleScript_1D71B2 +BattleScript_EffectDefenseUp2: @ 81D7717 + setstatchanger DEFENSE, 2, FALSE + goto BattleScript_EffectStatUp -MoveEffect_SpeedUp2: @ 81D7722 - setbyte gSharedMem + 0x1601E, 35 - goto BattleScript_1D71B2 +BattleScript_EffectSpeedUp2: @ 81D7722 + setstatchanger SPEED, 2, FALSE + goto BattleScript_EffectStatUp -MoveEffect_SpecialAttackUp2: @ 81D772D - setbyte gSharedMem + 0x1601E, 36 - goto BattleScript_1D71B2 +BattleScript_EffectSpecialAttackUp2: @ 81D772D + setstatchanger SP_ATTACK, 2, FALSE + goto BattleScript_EffectStatUp -MoveEffect_SpecialDefenseUp2: @ 81D7738 - setbyte gSharedMem + 0x1601E, 37 - goto BattleScript_1D71B2 +BattleScript_EffectSpecialDefenseUp2: @ 81D7738 + setstatchanger SP_DEFENSE, 2, FALSE + goto BattleScript_EffectStatUp -MoveEffect_Transform: @ 81D7743 +BattleScript_EffectTransform: @ 81D7743 attackcanceler attackstring ppreduce transformdataexecution attackanimation waitanimation - printfromtable BattleTextList_4015A8 + printfromtable gTransformUsedStringIds waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_AttackDown2: @ 81D7756 - setbyte gSharedMem + 0x1601E, 161 - goto BattleScript_1D7227 +BattleScript_EffectAttackDown2: @ 81D7756 + setstatchanger ATTACK, 2, TRUE + goto BattleScript_EffectStatDown -MoveEffect_DefenseDown2: @ 81D7761 - setbyte gSharedMem + 0x1601E, 162 - goto BattleScript_1D7227 +BattleScript_EffectDefenseDown2: @ 81D7761 + setstatchanger DEFENSE, 2, TRUE + goto BattleScript_EffectStatDown -MoveEffect_SpeedDown2: @ 81D776C - setbyte gSharedMem + 0x1601E, 163 - goto BattleScript_1D7227 +BattleScript_EffectSpeedDown2: @ 81D776C + setstatchanger SPEED, 2, TRUE + goto BattleScript_EffectStatDown -MoveEffect_SpecialDefenseDown2: @ 81D7777 - setbyte gSharedMem + 0x1601E, 165 - goto BattleScript_1D7227 +BattleScript_EffectSpecialDefenseDown2: @ 81D7777 + setstatchanger SP_DEFENSE, 2, TRUE + goto BattleScript_EffectStatDown -MoveEffect_Reflect: @ 81D7782 +BattleScript_EffectReflect: @ 81D7782 attackcanceler attackstring ppreduce setreflect -BattleScript_1D7786: @ 81D7786 +BattleScript_PrintReflectLightScreenSafeguardString: @ 81D7786 attackanimation waitanimation - printfromtable BattleTextList_401540 + printfromtable gReflectLightScreenSafeguardStringIds waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Poison: @ 81D7795 +BattleScript_EffectPoison: @ 81D7795 attackcanceler attackstring ppreduce - jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_1D7463 - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_ButItFailed - jumpifstatus TARGET, PSN, BattleScript_1D7455 - jumpifstatus TARGET, TOX, BattleScript_1D7455 - jumpiftype TARGET, TYPE_POISON, BattleScript_1D83E8 - jumpiftype TARGET, TYPE_STEEL, BattleScript_1D83E8 + jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus TARGET, PSN, BattleScript_AlreadyPoisoned + jumpifstatus TARGET, TOX, BattleScript_AlreadyPoisoned + jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected + jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected jumpifstatus TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, BattleScript_ButItFailed - accuracycheck BattleScript_ButItFailed, 0 - jumpifsideaffecting TARGET, 32, BattleScript_1D9037 + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected attackanimation waitanimation - setbyte gUnknown_02024D1F + 0x2, 2 + setmoveeffect EFFECT_POISON seteffectprimary resultmessage waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Paralyze: @ 81D77F6 +BattleScript_EffectParalyze: @ 81D77F6 attackcanceler attackstring ppreduce - jumpifability TARGET, ABILITY_LIMBER, BattleScript_1D7859 - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_ButItFailed + jumpifability TARGET, ABILITY_LIMBER, BattleScript_LimberProtected + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed typecalc - jumpifbyte 4, gBattleMoveFlags, 41, BattleScript_ButItFailed - jumpifstatus TARGET, PAR, BattleScript_1D784B + jumpifmovehadnoeffect BattleScript_ButItFailed + jumpifstatus TARGET, PAR, BattleScript_AlreadyParalyzed jumpifstatus TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, BattleScript_ButItFailed - accuracycheck BattleScript_ButItFailed, 0 - jumpifsideaffecting TARGET, 32, BattleScript_1D9037 + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected attackanimation waitanimation - setbyte gUnknown_02024D1F + 0x2, 5 + setmoveeffect EFFECT_PARALYSIS seteffectprimary resultmessage waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -BattleScript_1D784B: @ 81D784B +BattleScript_AlreadyParalyzed: @ 81D784B pause 32 printstring BATTLE_TEXT_AlreadyParalyzed waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -BattleScript_1D7859: @ 81D7859 - copyarray gEffectBank, gBankTarget, 1 - setbyte gUnknown_02024D1F + 0x4, 0 +BattleScript_LimberProtected: @ 81D7859 + copybyte gEffectBank, gBankTarget + setbyte cMULTISTRING_CHOOSER, 0 call BattleScript_PRLZPrevention - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_AttackDownHit: @ 81D7873 - setbyte gUnknown_02024D1F + 0x2, 22 - goto BattleScript_1D6F14 +BattleScript_EffectAttackDownHit: @ 81D7873 + setmoveeffect EFFECT_ATK_MINUS_1 + goto BattleScript_EffectHit -MoveEffect_DefenseDownHit: @ 81D787E - setbyte gUnknown_02024D1F + 0x2, 23 - goto BattleScript_1D6F14 +BattleScript_EffectDefenseDownHit: @ 81D787E + setmoveeffect EFFECT_DEF_MINUS_1 + goto BattleScript_EffectHit -MoveEffect_SpeedDownHit: @ 81D7889 - setbyte gUnknown_02024D1F + 0x2, 24 - goto BattleScript_1D6F14 +BattleScript_EffectSpeedDownHit: @ 81D7889 + setmoveeffect EFFECT_SPD_MINUS_1 + goto BattleScript_EffectHit -MoveEffect_SpecialAttackDownHit: @ 81D7894 - setbyte gUnknown_02024D1F + 0x2, 25 - goto BattleScript_1D6F14 +BattleScript_EffectSpecialAttackDownHit: @ 81D7894 + setmoveeffect EFFECT_SP_ATK_MINUS_1 + goto BattleScript_EffectHit -MoveEffect_SpecialDefenseDownHit: @ 81D789F - setbyte gUnknown_02024D1F + 0x2, 26 - goto BattleScript_1D6F14 +BattleScript_EffectSpecialDefenseDownHit: @ 81D789F + setmoveeffect EFFECT_SP_DEF_MINUS_1 + goto BattleScript_EffectHit -MoveEffect_AccuracyDownHit: @ 81D78AA - setbyte gUnknown_02024D1F + 0x2, 27 - goto BattleScript_1D6F14 +BattleScript_EffectAccuracyDownHit: @ 81D78AA + setmoveeffect EFFECT_ACC_MINUS_1 + goto BattleScript_EffectHit -MoveEffect_SkyAttack: @ 81D78B5 - jumpifstatus2 USER, S_CONTINUE, BattleScript_1D753D - jumpifword 4, gHitMarker, 0x200, BattleScript_1D753D - setbyte gSharedMem + 0x16055, 3 - call BattleScript_1D756C - goto BattleScript_EndTurn +BattleScript_EffectSkyAttack: @ 81D78B5 + jumpifstatus2 USER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn + setbyte sTWOTURN_STRINGID, 3 + call BattleScriptFirstChargingTurn + goto BattleScript_MoveEnd -MoveEffect_ConfuseHit: @ 81D78DD - setbyte gUnknown_02024D1F + 0x2, 7 - goto BattleScript_1D6F14 +BattleScript_EffectConfuseHit: @ 81D78DD + setmoveeffect EFFECT_CONFUSION + goto BattleScript_EffectHit -MoveEffect_Twineedle: @ 81D78E8 +BattleScript_EffectTwineedle: @ 81D78E8 attackcanceler - accuracycheck BattleScript_1D6F72, 0 - setbyte gSharedMem + 0x16112, 2 + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + setbyte sMULTIHIT_EFFECT, 2 attackstring ppreduce setmultihitcounter 2 initmultihitstring - goto BattleScript_1D7300 + goto BattleScript_MultiHitLoop -MoveEffect_Substitute: @ 81D7900 +BattleScript_EffectSubstitute: @ 81D7900 attackcanceler ppreduce attackstring waitstate - jumpifstatus2 USER, S_SUBSTITUTE, BattleScript_1D7935 + jumpifstatus2 USER, STATUS2_SUBSTITUTE, BattleScript_AlreadyHasSubstitute setsubstitute - jumpifbyte 1, gUnknown_02024D1F + 0x4, 1, BattleScript_1D7922 + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 1, BattleScript_SubstituteAnim pause 32 - goto BattleScript_1D7928 + goto BattleScript_SubstituteString -BattleScript_1D7922: @ 81D7922 +BattleScript_SubstituteAnim: @ 81D7922 attackanimation waitanimation healthbarupdate USER datahpupdate USER -BattleScript_1D7928: @ 81D7928 - printfromtable BattleTextList_4015AC +BattleScript_SubstituteString: @ 81D7928 + printfromtable gSubsituteUsedStringIds waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -BattleScript_1D7935: @ 81D7935 +BattleScript_AlreadyHasSubstitute: @ 81D7935 pause 32 printstring BATTLE_TEXT_SubAlready waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Recharge: @ 81D7943 +BattleScript_EffectRecharge: @ 81D7943 attackcanceler - accuracycheck BattleScript_1D6F72, 0 - setbyte gUnknown_02024D1F + 0x2, 221 - goto BattleScript_1D6F42 + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + setmoveeffect EFFECT_RECHARGE | AFFECTS_USER | CERTAIN + goto BattleScript_HitFromAtkString BattleScript_MoveUsedMustRecharge:: @ 81D7956 printstring BATTLE_TEXT_MustRecharge waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Rage: @ 81D7961 +BattleScript_EffectRage: @ 81D7961 attackcanceler - accuracycheck BattleScript_1D797B, 0 - setbyte gUnknown_02024D1F + 0x2, 30 + accuracycheck BattleScript_RageMiss, ACC_CURR_MOVE + setmoveeffect EFFECT_RAGE seteffectprimary - setbyte gUnknown_02024D1F + 0x2, 0 - goto BattleScript_1D6F42 + setmoveeffect 0 + goto BattleScript_HitFromAtkString -BattleScript_1D797B: @ 81D797B - setbyte gUnknown_02024D1F + 0x2, 30 +BattleScript_RageMiss: @ 81D797B + setmoveeffect EFFECT_RAGE clearstatusfromeffect USER - goto BattleScript_1D6F72 + goto BattleScript_PrintMoveMissed -MoveEffect_Mimic: @ 81D7988 +BattleScript_EffectMimic: @ 81D7988 attackcanceler attackstring ppreduce - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_ButItFailed - accuracycheck BattleScript_ButItFailed, 65535 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON mimicattackcopy BattleScript_ButItFailed attackanimation waitanimation printstring BATTLE_TEXT_LearnedMove2 waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Metronome: @ 81D79AE +BattleScript_EffectMetronome: @ 81D79AE attackcanceler attackstring pause 32 attackanimation waitanimation - setbyte gSharedMem + 0x16002, 0 - setbyte gSharedMem + 0x160A1, 0 + setbyte sANIM_TURN, 0 + setbyte sANIM_TARGETS_HIT, 0 metronome -MoveEffect_LeechSeed: @ 81D79C2 +BattleScript_EffectLeechSeed: @ 81D79C2 attackcanceler attackstring pause 32 ppreduce - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_ButItFailed - accuracycheck BattleScript_1D79D9, 0 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_DoLeechSeed, ACC_CURR_MOVE -BattleScript_1D79D9: @ 81D79D9 +BattleScript_DoLeechSeed: @ 81D79D9 setseeded attackanimation waitanimation - printfromtable BattleTextList_40154C + printfromtable gLeechSeedStringIds waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Splash: @ 81D79E9 +BattleScript_EffectSplash: @ 81D79E9 attackcanceler attackstring ppreduce @@ -1236,55 +1236,55 @@ MoveEffect_Splash: @ 81D79E9 incrementgamestat 26 printstring BATTLE_TEXT_Nothing waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Disable: @ 81D79FB +BattleScript_EffectDisable: @ 81D79FB attackcanceler attackstring ppreduce - accuracycheck BattleScript_ButItFailed, 0 + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE disablelastusedattack BattleScript_ButItFailed attackanimation waitanimation printstring BATTLE_TEXT_MoveWasDisabled waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_LevelDamage: @ 81D7A17 +BattleScript_EffectLevelDamage: @ 81D7A17 attackcanceler - accuracycheck BattleScript_1D6F72, 0 + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce typecalc - bicbyte gBattleMoveFlags, 6 + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE dmgtolevel adjustsetdamage - goto BattleScript_1D6F48 + goto BattleScript_HitFromAtkAnimation -MoveEffect_Psywave: @ 81D7A2F +BattleScript_EffectPsywave: @ 81D7A2F attackcanceler - accuracycheck BattleScript_1D6F72, 0 + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce typecalc - bicbyte gBattleMoveFlags, 6 + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE psywavedamageeffect adjustsetdamage - goto BattleScript_1D6F48 + goto BattleScript_HitFromAtkAnimation -MoveEffect_Counter: @ 81D7A47 +BattleScript_EffectCounter: @ 81D7A47 attackcanceler - counterdamagecalculator BattleScript_1D83D4 - accuracycheck BattleScript_1D6F72, 0 + counterdamagecalculator BattleScript_ButItFailedAtkStringPpReduce + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce typecalc2 adjustsetdamage - goto BattleScript_1D6F48 + goto BattleScript_HitFromAtkAnimation -MoveEffect_Encore: @ 81D7A5D +BattleScript_EffectEncore: @ 81D7A5D attackcanceler - accuracycheck BattleScript_1D6F72, 0 + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce trysetencore BattleScript_ButItFailed @@ -1292,47 +1292,47 @@ MoveEffect_Encore: @ 81D7A5D waitanimation printstring BATTLE_TEXT_EncoreGot waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_PainSplit: @ 81D7A79 +BattleScript_EffectPainSplit: @ 81D7A79 attackcanceler attackstring ppreduce - accuracycheck BattleScript_ButItFailed, 65535 + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON painsplitdmgcalc BattleScript_ButItFailed attackanimation waitanimation - orword gHitMarker, 0x100 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate USER datahpupdate USER - copyarray gBattleMoveDamage, gSharedMem + 0x16014, 4 + copyword gBattleMoveDamage, sPAINSPLIT_HP healthbarupdate TARGET datahpupdate TARGET printstring BATTLE_TEXT_PainSplit waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Snore: @ 81D7AB0 +BattleScript_EffectSnore: @ 81D7AB0 attackcanceler - jumpifstatus USER, SLP, BattleScript_1D7AC2 + jumpifstatus USER, SLP, BattleScript_SnoreIsAsleep attackstring ppreduce goto BattleScript_ButItFailed -BattleScript_1D7AC2: @ 81D7AC2 - jumpifhalfword 0, gUnknown_02024BE8, 214, BattleScript_1D7AD6 +BattleScript_SnoreIsAsleep: @ 81D7AC2 + jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoSnore printstring BATTLE_TEXT_FastAsleep waitmessage 64 statusanimation USER -BattleScript_1D7AD6: @ 81D7AD6 +BattleScript_DoSnore: @ 81D7AD6 attackstring ppreduce - accuracycheck BattleScript_1D6F77, 0 - setbyte gUnknown_02024D1F + 0x2, 8 - goto BattleScript_1D6F44 + accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE + setmoveeffect EFFECT_FLINCH + goto BattleScript_HitFromCritCalc -MoveEffect_Conversion2: @ 81D7AEA +BattleScript_EffectConversion2: @ 81D7AEA attackcanceler attackstring ppreduce @@ -1341,34 +1341,34 @@ MoveEffect_Conversion2: @ 81D7AEA waitanimation printstring BATTLE_TEXT_TypeTransform waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_LockOn: @ 81D7AFF +BattleScript_EffectLockOn: @ 81D7AFF attackcanceler attackstring ppreduce - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_ButItFailed - accuracycheck BattleScript_ButItFailed, 0 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE setalwayshitflag attackanimation waitanimation printstring BATTLE_TEXT_TookAim waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Sketch: @ 81D7B21 +BattleScript_EffectSketch: @ 81D7B21 attackcanceler attackstring ppreduce - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed copymovepermanently BattleScript_ButItFailed attackanimation waitanimation printstring BATTLE_TEXT_SketchedMove waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_SleepTalk: @ 81D7B40 +BattleScript_EffectSleepTalk: @ 81D7B40 attackcanceler jumpifstatus USER, SLP, BattleScript_1D7B52 attackstring @@ -1381,19 +1381,19 @@ BattleScript_1D7B52: @ 81D7B52 statusanimation USER attackstring ppreduce - orword gHitMarker, 0x800 - trychoosesleeptalkmove BattleScript_1D7B72 + orword gHitMarker, HITMARKER_NO_PPDEDUCT + trychoosesleeptalkmove BattleScript_SleepTalkIsAsleep pause 64 goto BattleScript_ButItFailed -BattleScript_1D7B72: @ 81D7B72 +BattleScript_SleepTalkIsAsleep: @ 81D7B72 attackanimation waitanimation - setbyte gSharedMem + 0x16002, 0 - setbyte gSharedMem + 0x160A1, 0 + setbyte sANIM_TURN, 0 + setbyte sANIM_TARGETS_HIT, 0 jumptorandomattack USER -MoveEffect_DestinyBond: @ 81D7B82 +BattleScript_EffectDestinyBond: @ 81D7B82 attackcanceler attackstring ppreduce @@ -1402,25 +1402,25 @@ MoveEffect_DestinyBond: @ 81D7B82 waitanimation printstring BATTLE_TEXT_DestinyBondTake waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Flail: @ 81D7B93 +BattleScript_EffectFlail: @ 81D7B93 remaininghptopower - goto BattleScript_1D6F14 + goto BattleScript_EffectHit -MoveEffect_Spite: @ 81D7B99 +BattleScript_EffectSpite: @ 81D7B99 attackcanceler attackstring ppreduce - accuracycheck BattleScript_ButItFailed, 0 + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE tryspiteppreduce BattleScript_ButItFailed attackanimation waitanimation printstring BATTLE_TEXT_ReducedBy waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_HealBell: @ 81D7BB5 +BattleScript_EffectHealBell: @ 81D7BB5 attackcanceler attackstring ppreduce @@ -1428,49 +1428,48 @@ MoveEffect_HealBell: @ 81D7BB5 waitstate attackanimation waitanimation - printfromtable BattleTextList_4015D8 + printfromtable gPartyStatusHealStringIds waitmessage 64 - jumpifhalfword 1, gCurrentMove, 215, BattleScript_1D7BF2 - jumpifbyte 5, gUnknown_02024D1F + 0x4, 1, BattleScript_1D7BE1 + jumpifnotmove MOVE_HEAL_BELL, BattleScript_PartyHealEnd + jumpifbyte NO_COMMON_BITS, cMULTISTRING_CHOOSER, 1, BattleScript_CheckHealBellMon2Unaffected printstring BATTLE_TEXT_BlocksOther waitmessage 64 -BattleScript_1D7BE1: @ 81D7BE1 - jumpifbyte 5, gUnknown_02024D1F + 0x4, 2, BattleScript_1D7BF2 +BattleScript_CheckHealBellMon2Unaffected: @ 81D7BE1 + jumpifbyte NO_COMMON_BITS, cMULTISTRING_CHOOSER, 2, BattleScript_PartyHealEnd printstring BATTLE_TEXT_BlocksOther2 waitmessage 64 -BattleScript_1D7BF2: @ 81D7BF2 - updatestatusicon 4 +BattleScript_PartyHealEnd: @ 81D7BF2 + updatestatusicon ATTACKER_WITH_PARTNER waitstate - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_TripleKick: @ 81D7BFA +BattleScript_EffectTripleKick: @ 81D7BFA attackcanceler attackstring ppreduce - setbyte gSharedMem + 0x160DE, 0 - setbyte gSharedMem + 0x160DF, 0 + sethword sTRIPLE_KICK_POWER, 0 initmultihitstring setmultihit 3 -BattleScript_1D7C0C: @ 81D7C0C - jumpifhasnohp USER, BattleScript_1D7CAF - jumpifhasnohp TARGET, BattleScript_1D7C8D - jumpifhalfword 0, gUnknown_02024BE8, 214, BattleScript_1D7C2E - jumpifstatus USER, SLP, BattleScript_1D7C8D +BattleScript_TripleKickLoop: @ 81D7C0C + jumpifhasnohp USER, BattleScript_TripleKickEnd + jumpifhasnohp TARGET, BattleScript_TripleKickNoMoreHits + jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoTripleKickAttack + jumpifstatus USER, SLP, BattleScript_TripleKickNoMoreHits -BattleScript_1D7C2E: @ 81D7C2E +BattleScript_DoTripleKickAttack: @ 81D7C2E movevaluescleanup - accuracycheck BattleScript_1D7C8D, 0 - addbyte gSharedMem + 0x160DE, 10 - addbyte gSharedMem + 0x160E4, 1 - copyarray gDynamicBasePower, gSharedMem + 0x160DE, 2 + accuracycheck BattleScript_TripleKickNoMoreHits, ACC_CURR_MOVE + addbyte sTRIPLE_KICK_POWER, 10 + addbyte sMULTIHIT_STRING + 4, 1 + copyhword gDynamicBasePower, sTRIPLE_KICK_POWER critcalc damagecalc typecalc adjustnormaldamage - jumpifbyte 4, gBattleMoveFlags, 41, BattleScript_1D7C8D + jumpifmovehadnoeffect BattleScript_TripleKickNoMoreHits attackanimation waitanimation effectivenesssound @@ -1482,153 +1481,153 @@ BattleScript_1D7C2E: @ 81D7C2E waitmessage 64 printstring BATTLE_TEXT_Terminator2 waitmessage 1 - setbyte gSharedMem + 0x1600C, 0 + setbyte sMOVEEND_STATE, 0 moveend 2, 16 - jumpifbyte 4, gBattleMoveFlags, 64, BattleScript_1D7C90 - decrementmultihit BattleScript_1D7C0C - goto BattleScript_1D7C90 + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_TripleKickPrintStrings + decrementmultihit BattleScript_TripleKickLoop + goto BattleScript_TripleKickPrintStrings -BattleScript_1D7C8D: @ 81D7C8D +BattleScript_TripleKickNoMoreHits: @ 81D7C8D pause 32 -BattleScript_1D7C90: @ 81D7C90 +BattleScript_TripleKickPrintStrings: @ 81D7C90 resultmessage waitmessage 64 - jumpifbyte 0, gSharedMem + 0x160E4, 0, BattleScript_1D7CAF - copyarray gBattleTextBuff1, gSharedMem + 0x160E0, 6 + jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0, BattleScript_TripleKickEnd + copyarray gBattleTextBuff1,sMULTIHIT_STRING, 6 printstring BATTLE_TEXT_HitMulti waitmessage 64 -BattleScript_1D7CAF: @ 81D7CAF +BattleScript_TripleKickEnd: @ 81D7CAF seteffectwithchance - tryfaintmon TARGET, 0, 0x0 - setbyte gSharedMem + 0x1600C, 14 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 14 moveend 0, 0 end -MoveEffect_Thief: @ 81D7CC1 - setbyte gUnknown_02024D1F + 0x2, 31 - goto BattleScript_1D6F14 +BattleScript_EffectThief: @ 81D7CC1 + setmoveeffect EFFECT_STEAL_ITEM + goto BattleScript_EffectHit -MoveEffect_MeanLook: @ 81D7CCC +BattleScript_EffectMeanLook: @ 81D7CCC attackcanceler attackstring ppreduce - accuracycheck BattleScript_ButItFailed, 65534 - jumpifstatus2 TARGET, S_MEAN_LOOK, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC + jumpifstatus2 TARGET, STATUS2_ESCAPE_PREVENTION, BattleScript_ButItFailed attackanimation waitanimation - setbyte gUnknown_02024D1F + 0x2, 32 + setmoveeffect EFFECT_PREVENT_ESCAPE seteffectprimary printstring BATTLE_TEXT_CantEscapeNow waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Nightmare: @ 81D7CF4 +BattleScript_EffectNightmare: @ 81D7CF4 attackcanceler attackstring ppreduce - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_ButItFailed - jumpifstatus2 TARGET, S_NIGHTMARE, BattleScript_ButItFailed - jumpifstatus TARGET, SLP, BattleScript_1D7D1A + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus2 TARGET, STATUS2_NIGHTMARE, BattleScript_ButItFailed + jumpifstatus TARGET, SLP, BattleScript_NightmareWorked goto BattleScript_ButItFailed -BattleScript_1D7D1A: @ 81D7D1A +BattleScript_NightmareWorked: @ 81D7D1A attackanimation waitanimation - setbyte gUnknown_02024D1F + 0x2, 33 + setmoveeffect EFFECT_NIGHTMARE seteffectprimary printstring BATTLE_TEXT_NightmareStart waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Minimize: @ 81D7D2E +BattleScript_EffectMinimize: @ 81D7D2E attackcanceler setminimize - setbyte gSharedMem + 0x1601E, 23 - goto BattleScript_1D71B3 + setstatchanger EVASION, 1, FALSE + goto BattleScript_EffectStatUpAfterAtkCanceler -MoveEffect_Curse: @ 81D7D3B - jumpiftype2 USER, TYPE_GHOST, BattleScript_1D7DB3 +BattleScript_EffectCurse: @ 81D7D3B + jumpiftype2 USER, TYPE_GHOST, BattleScript_GhostCurse attackcanceler attackstring ppreduce - jumpifstat USER, 2, 3, 0, BattleScript_1D7D60 - jumpifstat USER, 1, 1, 12, BattleScript_1D7D60 - jumpifstat USER, 0, 2, 12, BattleScript_ButItFailed + jumpifstat USER, GREATER_THAN, SPEED, 0, BattleScript_CurseTrySpeed + jumpifstat USER, NOT_EQUAL, ATTACK, 12, BattleScript_CurseTrySpeed + jumpifstat USER, EQUAL, DEFENSE, 12, BattleScript_ButItFailed -BattleScript_1D7D60: @ 81D7D60 - copyarray gBankTarget, gBankAttacker, 1 - setbyte gSharedMem + 0x16002, 1 +BattleScript_CurseTrySpeed: @ 81D7D60 + copybyte gBankTarget, gBankAttacker + setbyte sANIM_TURN, 1 attackanimation waitanimation - setbyte gSharedMem + 0x1601E, 147 - statbuffchange 65, BattleScript_1D7D86 - printfromtable BattleTextList_40157C + setstatchanger SPEED, 1, TRUE + statbuffchange AFFECTS_USER | 0x1, BattleScript_CurseTryAttack + printfromtable gStatDownStringIds waitmessage 64 -BattleScript_1D7D86: @ 81D7D86 - setbyte gSharedMem + 0x1601E, 17 - statbuffchange 65, BattleScript_1D7D9A - printfromtable BattleTextList_401570 +BattleScript_CurseTryAttack: @ 81D7D86 + setstatchanger ATTACK, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_CurseTryDefence + printfromtable gStatUpStringIds waitmessage 64 -BattleScript_1D7D9A: @ 81D7D9A - setbyte gSharedMem + 0x1601E, 18 - statbuffchange 65, BattleScript_1D7DAE - printfromtable BattleTextList_401570 +BattleScript_CurseTryDefence: @ 81D7D9A + setstatchanger DEFENSE, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_CurseEnd + printfromtable gStatUpStringIds waitmessage 64 -BattleScript_1D7DAE: @ 81D7DAE - goto BattleScript_EndTurn +BattleScript_CurseEnd: @ 81D7DAE + goto BattleScript_MoveEnd -BattleScript_1D7DB3: @ 81D7DB3 - jumpifarraynotequal gBankAttacker, gBankTarget, 1, BattleScript_1D7DC4 +BattleScript_GhostCurse: @ 81D7DB3 + jumpifbytenotequal gBankAttacker, gBankTarget, BattleScript_DoGhostCurse getmovetarget USER -BattleScript_1D7DC4: @ 81D7DC4 +BattleScript_DoGhostCurse: @ 81D7DC4 attackcanceler attackstring ppreduce - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed cursetarget BattleScript_ButItFailed - orword gHitMarker, 0x100 - setbyte gSharedMem + 0x16002, 0 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + setbyte sANIM_TURN, 0 attackanimation waitanimation healthbarupdate USER datahpupdate USER printstring BATTLE_TEXT_CurseLay waitmessage 64 - tryfaintmon USER, 0, 0x0 - goto BattleScript_EndTurn + tryfaintmon USER, FALSE, NULL + goto BattleScript_MoveEnd -MoveEffect_Endure: @ 81D7DFD -MoveEffect_Protect: @ 81D7DFD +BattleScript_EffectEndure: @ 81D7DFD +BattleScript_EffectProtect: @ 81D7DFD attackcanceler attackstring ppreduce setprotectlike attackanimation waitanimation - printfromtable BattleTextList_40153A + printfromtable gProtectLikeUsedStringIds waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Spikes: @ 81D7E10 +BattleScript_EffectSpikes: @ 81D7E10 attackcanceler - trysetspikes BattleScript_1D83D4 + trysetspikes BattleScript_ButItFailedAtkStringPpReduce attackstring ppreduce attackanimation waitanimation printstring BATTLE_TEXT_SpikesScattered waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Foresight: @ 81D7E25 +BattleScript_EffectForesight: @ 81D7E25 attackcanceler - accuracycheck BattleScript_1D6F72, 0 + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce setforesight @@ -1636,9 +1635,9 @@ MoveEffect_Foresight: @ 81D7E25 waitanimation printstring BATTLE_TEXT_IdentifiedPoke waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_PerishSong: @ 81D7E3D +BattleScript_EffectPerishSong: @ 81D7E3D attackcanceler attackstring ppreduce @@ -1647,120 +1646,120 @@ MoveEffect_PerishSong: @ 81D7E3D waitanimation printstring BATTLE_TEXT_PerishSong waitmessage 64 - setbyte gSharedMem + 0x16003, 0 + setbyte sBANK, 0 -BattleScript_1D7E53: @ 81D7E53 - jumpifability 10, ABILITY_SOUNDPROOF, BattleScript_1D7E73 +BattleScript_PerishSongLoop: @ 81D7E53 + jumpifability SCRIPTING_BANK, ABILITY_SOUNDPROOF, BattleScript_1D7E73 -BattleScript_1D7E5A: @ 81D7E5A - addbyte gSharedMem + 0x16003, 1 - jumpifarraynotequal gSharedMem + 0x16003, gNoOfAllBanks, 1, BattleScript_1D7E53 - goto BattleScript_EndTurn +BattleScript_PerishSongLoopIncrement: @ 81D7E5A + addbyte sBANK, 1 + jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_PerishSongLoop + goto BattleScript_MoveEnd BattleScript_1D7E73: @ 81D7E73 printstring BATTLE_TEXT_BlocksOther2 waitmessage 64 - goto BattleScript_1D7E5A + goto BattleScript_PerishSongLoopIncrement -MoveEffect_Sandstorm: @ 81D7E7E +BattleScript_EffectSandstorm: @ 81D7E7E attackcanceler attackstring ppreduce setsandstorm - goto BattleScript_1D7FFA + goto BattleScript_MoveWeatherChange -MoveEffect_Rollout: @ 81D7E87 +BattleScript_EffectRollout: @ 81D7E87 attackcanceler attackstring - jumpifstatus2 USER, S_CONTINUE, BattleScript_1D7E94 + jumpifstatus2 USER, STATUS2_MULTIPLETURNS, BattleScript_RolloutCheckAccuracy ppreduce -BattleScript_1D7E94: @ 81D7E94 - accuracycheck BattleScript_1D7E9B, 0 +BattleScript_RolloutCheckAccuracy: @ 81D7E94 + accuracycheck BattleScript_RolloutHit, ACC_CURR_MOVE -BattleScript_1D7E9B: @ 81D7E9B +BattleScript_RolloutHit: @ 81D7E9B typecalc2 rolloutdamagecalculation - goto BattleScript_1D6F44 + goto BattleScript_HitFromCritCalc -MoveEffect_Swagger: @ 81D7EA2 +BattleScript_EffectSwagger: @ 81D7EA2 attackcanceler - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_1D6F6C - accuracycheck BattleScript_1D6F72, 0 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_MakeMoveMissed + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce jumpifconfusedandstatmaxed 1, BattleScript_ButItFailed attackanimation waitanimation - setbyte gSharedMem + 0x1601E, 33 - statbuffchange 1, BattleScript_1D7EE5 - jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D7EE5 + setstatchanger ATTACK, 2, FALSE + statbuffchange 1, BattleScript_SwaggerTryConfuse + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_SwaggerTryConfuse setgraphicalstatchangevalues - playanimation TARGET, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4 - printfromtable BattleTextList_401570 + playanimation TARGET, B_ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable gStatUpStringIds waitmessage 64 -BattleScript_1D7EE5: @ 81D7EE5 - jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_1D98E5 - jumpifsideaffecting TARGET, 32, BattleScript_1D9037 - setbyte gUnknown_02024D1F + 0x2, 7 +BattleScript_SwaggerTryConfuse: @ 81D7EE5 + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected + setmoveeffect EFFECT_CONFUSION seteffectprimary - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_FuryCutter: @ 81D7F00 +BattleScript_EffectFuryCutter: @ 81D7F00 attackcanceler attackstring ppreduce - accuracycheck BattleScript_1D7F0A, 0 + accuracycheck BattleScript_FuryCutterHit, ACC_CURR_MOVE -BattleScript_1D7F0A: @ 81D7F0A +BattleScript_FuryCutterHit: @ 81D7F0A furycuttercalc critcalc damagecalc typecalc - jumpifbyte 4, gBattleMoveFlags, 41, BattleScript_1D7F0A + jumpifmovehadnoeffect BattleScript_FuryCutterHit adjustnormaldamage - goto BattleScript_1D6F48 + goto BattleScript_HitFromAtkAnimation -MoveEffect_Attract: @ 81D7F1F +BattleScript_EffectAttract: @ 81D7F1F attackcanceler attackstring ppreduce - accuracycheck BattleScript_ButItFailed, 0 + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE tryinfatuating BattleScript_ButItFailed attackanimation waitanimation printstring BATTLE_TEXT_FellLove waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Frustration: @ 81D7F3B -MoveEffect_Return: @ 81D7F3B +BattleScript_EffectFrustration: @ 81D7F3B +BattleScript_EffectReturn: @ 81D7F3B attackcanceler - accuracycheck BattleScript_1D6F72, 0 + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE happinesstodamagecalculation - goto BattleScript_1D6F42 + goto BattleScript_HitFromAtkString -MoveEffect_Present: @ 81D7F49 +BattleScript_EffectPresent: @ 81D7F49 attackcanceler - accuracycheck BattleScript_1D6F72, 0 + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce typecalc presentdamagecalculation -MoveEffect_Safeguard: @ 81D7F55 +BattleScript_EffectSafeguard: @ 81D7F55 attackcanceler attackstring ppreduce setsafeguard - goto BattleScript_1D7786 + goto BattleScript_PrintReflectLightScreenSafeguardString -MoveEffect_ThawHit: @ 81D7F5E - setbyte gUnknown_02024D1F + 0x2, 3 - goto BattleScript_1D6F14 +BattleScript_EffectThawHit: @ 81D7F5E + setmoveeffect EFFECT_BURN + goto BattleScript_EffectHit -MoveEffect_Magnitude: @ 81D7F69 +BattleScript_EffectMagnitude: @ 81D7F69 attackcanceler attackstring ppreduce @@ -1769,13 +1768,13 @@ MoveEffect_Magnitude: @ 81D7F69 pause 32 printstring BATTLE_TEXT_MagnitudeCount waitmessage 64 - goto BattleScript_1D80FD + goto BattleScript_HitsAllWithUndergroundBonusLoop -MoveEffect_BatonPass: @ 81D7F7C +BattleScript_EffectBatonPass: @ 81D7F7C attackcanceler attackstring ppreduce - jumpifcantswitch 129, BattleScript_ButItFailed + jumpifcantswitch ATK4F_DONT_CHECK_STATUSES | USER, BattleScript_ButItFailed attackanimation waitanimation openpartyscreen USER, BattleScript_ButItFailed @@ -1790,87 +1789,84 @@ MoveEffect_BatonPass: @ 81D7F7C switchinanim USER, 1 waitstate switchineffects USER - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_RapidSpin: @ 81D7FA9 - setbyte gUnknown_02024D1F + 0x2, 163 - goto BattleScript_1D6F14 +BattleScript_EffectRapidSpin: @ 81D7FA9 + setmoveeffect EFFECT_RAPIDSPIN | CERTAIN + goto BattleScript_EffectHit -MoveEffect_Sonicboom: @ 81D7FB4 +BattleScript_EffectSonicboom: @ 81D7FB4 attackcanceler - accuracycheck BattleScript_1D6F72, 0 + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce typecalc - bicbyte gBattleMoveFlags, 6 - setbyte gBattleMoveDamage, 20 - setbyte gBattleMoveDamage + 0x1, 0 - setbyte gBattleMoveDamage + 0x2, 0 - setbyte gBattleMoveDamage + 0x3, 0 + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + setword gBattleMoveDamage, 20 adjustsetdamage - goto BattleScript_1D6F48 + goto BattleScript_HitFromAtkAnimation -MoveEffect_Moonlight: @ 81D7FE3 -MoveEffect_MorningSun: @ 81D7FE3 -MoveEffect_Synthesis: @ 81D7FE3 +BattleScript_EffectMoonlight: @ 81D7FE3 +BattleScript_EffectMorningSun: @ 81D7FE3 +BattleScript_EffectSynthesis: @ 81D7FE3 attackcanceler attackstring ppreduce - recoverbasedonsunlight BattleScript_1D83B5 - goto BattleScript_1D839B + recoverbasedonsunlight BattleScript_AlreadyAtFullHp + goto BattleScript_PresentHealTarget -MoveEffect_HiddenPower: @ 81D7FF0 +BattleScript_EffectHiddenPower: @ 81D7FF0 hiddenpowercalc - goto BattleScript_1D6F14 + goto BattleScript_EffectHit -MoveEffect_RainDance: @ 81D7FF6 +BattleScript_EffectRainDance: @ 81D7FF6 attackcanceler attackstring ppreduce setrain -BattleScript_1D7FFA: @ 81D7FFA +BattleScript_MoveWeatherChange: @ 81D7FFA attackanimation waitanimation - printfromtable BattleTextList_40151C + printfromtable gMoveWeatherChangeStringIds waitmessage 64 - call BattleScript_1D9761 - goto BattleScript_EndTurn + call BattleScript_WeatherFormChanges + goto BattleScript_MoveEnd -MoveEffect_SunnyDay: @ 81D800E +BattleScript_EffectSunnyDay: @ 81D800E attackcanceler attackstring ppreduce setsunny - goto BattleScript_1D7FFA + goto BattleScript_MoveWeatherChange -MoveEffect_DefenseUpHit: @ 81D8017 - setbyte gUnknown_02024D1F + 0x2, 80 - goto BattleScript_1D6F14 +BattleScript_EffectDefenseUpHit: @ 81D8017 + setbyte cEFFECT_CHOOSER, 80 + goto BattleScript_EffectHit -MoveEffect_AttackUpHit: @ 81D8022 - setbyte gUnknown_02024D1F + 0x2, 79 - goto BattleScript_1D6F14 +BattleScript_EffectAttackUpHit: @ 81D8022 + setbyte cEFFECT_CHOOSER, 79 + goto BattleScript_EffectHit -MoveEffect_AllStatsUpHit: @ 81D802D - setbyte gUnknown_02024D1F + 0x2, 98 - goto BattleScript_1D6F14 +BattleScript_EffectAllStatsUpHit: @ 81D802D + setbyte cEFFECT_CHOOSER, 98 + goto BattleScript_EffectHit -MoveEffect_BellyDrum: @ 81D8038 +BattleScript_EffectBellyDrum: @ 81D8038 attackcanceler attackstring ppreduce maxattackhalvehp BattleScript_ButItFailed - orword gHitMarker, 0x100 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE attackanimation waitanimation healthbarupdate USER datahpupdate USER printstring BATTLE_TEXT_CutHPMaxATK waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_PsychUp: @ 81D805A +BattleScript_EffectPsychUp: @ 81D805A attackcanceler attackstring ppreduce @@ -1879,62 +1875,62 @@ MoveEffect_PsychUp: @ 81D805A waitanimation printstring BATTLE_TEXT_CopyStatChanges waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_MirrorCoat: @ 81D806F +BattleScript_EffectMirrorCoat: @ 81D806F attackcanceler - mirrorcoatdamagecalculator BattleScript_1D83D4 - accuracycheck BattleScript_1D6F72, 0 + mirrorcoatdamagecalculator BattleScript_ButItFailedAtkStringPpReduce + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce typecalc2 adjustsetdamage - goto BattleScript_1D6F48 - -MoveEffect_SkullBash: @ 81D8085 - jumpifstatus2 USER, S_CONTINUE, BattleScript_1D753D - jumpifword 4, gHitMarker, 0x200, BattleScript_1D753D - setbyte gSharedMem + 0x16055, 2 - call BattleScript_1D756C - setbyte gSharedMem + 0x1601E, 18 - statbuffchange 65, BattleScript_1D80CF - jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D80CF + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectSkullBash: @ 81D8085 + jumpifstatus2 USER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn + setbyte sTWOTURN_STRINGID, 2 + call BattleScriptFirstChargingTurn + setstatchanger DEFENSE, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_SkullBashEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_SkullBashEnd setgraphicalstatchangevalues - playanimation USER, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4 - printfromtable BattleTextList_401570 + playanimation USER, B_ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable gStatUpStringIds waitmessage 64 -BattleScript_1D80CF: @ 81D80CF - goto BattleScript_EndTurn +BattleScript_SkullBashEnd: @ 81D80CF + goto BattleScript_MoveEnd -MoveEffect_Twister: @ 81D80D4 - jumpifstatus3condition TARGET, 0x40, 1, BattleScript_1D80EE - orword gHitMarker, 0x10000 - setbyte gSharedMem + 0x1601F, 2 +BattleScript_EffectTwister: @ 81D80D4 + jumpifnostatus3 TARGET, STATUS3_ON_AIR, BattleScript_FlinchEffect + orword gHitMarker, HITMARKER_IGNORE_ON_AIR + setbyte sDMG_MULTIPLIER, 2 -BattleScript_1D80EE: @ 81D80EE - setbyte gUnknown_02024D1F + 0x2, 8 - goto BattleScript_1D6F14 +BattleScript_FlinchEffect: @ 81D80EE + setmoveeffect EFFECT_FLINCH + goto BattleScript_EffectHit -MoveEffect_Earthquake: @ 81D80F9 +BattleScript_EffectEarthquake: @ 81D80F9 attackcanceler attackstring ppreduce selectfirstvalidtarget -BattleScript_1D80FD: @ 81D80FD +BattleScript_HitsAllWithUndergroundBonusLoop: @ 81D80FD movevaluescleanup - jumpifstatus3condition TARGET, 0x80, 1, BattleScript_1D811D - orword gHitMarker, 0x20000 - setbyte gSharedMem + 0x1601F, 2 - goto BattleScript_1D812C + jumpifnostatus3 TARGET, STATUS3_UNDERGROUND, BattleScript_HitsAllNoUndergroundBonus + orword gHitMarker, HITMARKER_IGNORE_UNDERGROUND + setbyte sDMG_MULTIPLIER, 2 + goto BattleScript_DoHitAllWithUndergroundBonus -BattleScript_1D811D: @ 81D811D - bicword gHitMarker, 0x20000 - setbyte gSharedMem + 0x1601F, 1 +BattleScript_HitsAllNoUndergroundBonus: @ 81D811D + bicword gHitMarker, HITMARKER_IGNORE_UNDERGROUND + setbyte sDMG_MULTIPLIER, 1 -BattleScript_1D812C: @ 81D812C - accuracycheck BattleScript_1D8165, 0 +BattleScript_DoHitAllWithUndergroundBonus: @ 81D812C + accuracycheck BattleScript_HitAllWithUndergroundBonusMissed, ACC_CURR_MOVE critcalc damagecalc typecalc @@ -1952,101 +1948,101 @@ BattleScript_1D812C: @ 81D812C waitmessage 64 printstring BATTLE_TEXT_Terminator2 waitmessage 1 - tryfaintmon TARGET, 0, 0x0 - setbyte gSharedMem + 0x1600C, 0 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0 moveend 2, 16 - jumpifnexttargetvalid BattleScript_1D80FD + jumpifnexttargetvalid BattleScript_HitsAllWithUndergroundBonusLoop end -BattleScript_1D8165: @ 81D8165 +BattleScript_HitAllWithUndergroundBonusMissed: @ 81D8165 pause 32 typecalc effectivenesssound resultmessage waitmessage 64 - setbyte gSharedMem + 0x1600C, 0 + setbyte sMOVEEND_STATE, 0 moveend 2, 16 - jumpifnexttargetvalid BattleScript_1D80FD + jumpifnexttargetvalid BattleScript_HitsAllWithUndergroundBonusLoop end -MoveEffect_FutureSight: @ 81D817D +BattleScript_EffectFutureSight: @ 81D817D attackcanceler attackstring ppreduce trysetfutureattack BattleScript_ButItFailed attackanimation waitanimation - printfromtable BattleTextList_4015E2 - waitmessage 64 - goto BattleScript_EndTurn - -MoveEffect_Gust: @ 81D8194 - jumpifstatus3condition TARGET, 0x40, 1, BattleScript_1D6F14 - orword gHitMarker, 0x10000 - setbyte gSharedMem + 0x1601F, 2 - goto BattleScript_1D6F14 - -MoveEffect_FlinchHit2: @ 81D81B3 - jumpifstatus3condition TARGET, 0x100, 1, BattleScript_1D80EE - setbyte gSharedMem + 0x1601F, 2 - goto BattleScript_1D80EE - -MoveEffect_Solarbeam: @ 81D81C9 - jumpifabilitypresent ABILITY_CLOUD_NINE, BattleScript_1D81E1 - jumpifabilitypresent ABILITY_AIR_LOCK, BattleScript_1D81E1 - jumpifhalfword 4, gBattleWeather, 96, BattleScript_1D8209 - -BattleScript_1D81E1: @ 81D81E1 - jumpifstatus2 USER, S_CONTINUE, BattleScript_1D753D - jumpifword 4, gHitMarker, 0x200, BattleScript_1D753D - setbyte gSharedMem + 0x16055, 1 - call BattleScript_1D756C - goto BattleScript_EndTurn - -BattleScript_1D8209: @ 81D8209 - orword gHitMarker, 0x8000000 - setbyte gUnknown_02024D1F + 0x2, 76 + printfromtable gFutureMoveUsedStringIds + waitmessage 64 + goto BattleScript_MoveEnd + +BattleScript_EffectGust: @ 81D8194 + jumpifnostatus3 TARGET, STATUS3_ON_AIR, BattleScript_EffectHit + orword gHitMarker, HITMARKER_IGNORE_ON_AIR + setbyte sDMG_MULTIPLIER, 2 + goto BattleScript_EffectHit + +BattleScript_EffectStomp: @ 81D81B3 + jumpifnostatus3 TARGET, STATUS3_MINIMIZED, BattleScript_FlinchEffect + setbyte sDMG_MULTIPLIER, 2 + goto BattleScript_FlinchEffect + +BattleScript_EffectSolarbeam: @ 81D81C9 + jumpifabilitypresent ABILITY_CLOUD_NINE, BattleScript_SolarbeamDecideTurn + jumpifabilitypresent ABILITY_AIR_LOCK, BattleScript_SolarbeamDecideTurn + jumpifhalfword COMMON_BITS, gBattleWeather, 96, BattleScript_SolarbeamOnFirstTurn + +BattleScript_SolarbeamDecideTurn: @ 81D81E1 + jumpifstatus2 USER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn + setbyte sTWOTURN_STRINGID, 1 + call BattleScriptFirstChargingTurn + goto BattleScript_MoveEnd + +BattleScript_SolarbeamOnFirstTurn: @ 81D8209 + orword gHitMarker, HITMARKER_x8000000 + setbyte cEFFECT_CHOOSER, 76 seteffectprimary ppreduce - goto BattleScript_1D753D + goto BattleScript_TwoTurnMovesSecondTurn -MoveEffect_Thunder: @ 81D821F - setbyte gUnknown_02024D1F + 0x2, 5 - orword gHitMarker, 0x10000 - goto BattleScript_1D6F14 +BattleScript_EffectThunder: @ 81D821F + setmoveeffect EFFECT_PARALYSIS + orword gHitMarker, HITMARKER_IGNORE_ON_AIR + goto BattleScript_EffectHit -MoveEffect_Teleport: @ 81D8233 +BattleScript_EffectTeleport: @ 81D8233 attackcanceler attackstring ppreduce - jumpifhalfword 4, gBattleTypeFlags, 8, BattleScript_ButItFailed + jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_ButItFailed getifcantrunfrombattle USER - jumpifbyte 0, gBattleCommunication, 1, BattleScript_ButItFailed - jumpifbyte 0, gBattleCommunication, 2, BattleScript_1D8839 + jumpifbyte EQUAL, gBattleCommunication, 1, BattleScript_ButItFailed + jumpifbyte EQUAL, gBattleCommunication, 2, BattleScript_PrintAbilityMadeIneffective attackanimation waitanimation printstring BATTLE_TEXT_FledBattle waitmessage 64 setbyte gBattleOutcome, 5 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_BeatUp: @ 81D826E +BattleScript_EffectBeatUp: @ 81D826E attackcanceler - accuracycheck BattleScript_1D6F72, 0 + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring pause 32 ppreduce setbyte gBattleCommunication, 0 -BattleScript_1D8281: @ 81D8281 +BattleScript_BeatUpLoop: @ 81D8281 movevaluescleanup - trydobeatup BattleScript_1D82C4, BattleScript_ButItFailed + trydobeatup BattleScript_BeatUpEnd, BattleScript_ButItFailed printstring BATTLE_TEXT_PokeAttack critcalc - jumpifbyte 1, gCritMultiplier, 2, BattleScript_1D829C + jumpifbyte NOT_EQUAL, gCritMultiplier, 2, BattleScript_BeatUpAttack manipulatedamage 2 -BattleScript_1D829C: @ 81D829C +BattleScript_BeatUpAttack: @ 81D829C adjustnormaldamage attackanimation waitanimation @@ -2059,283 +2055,283 @@ BattleScript_1D829C: @ 81D829C waitmessage 64 resultmessage waitmessage 64 - tryfaintmon TARGET, 0, 0x0 - setbyte gSharedMem + 0x1600C, 0 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0 moveend 2, 16 - goto BattleScript_1D8281 + goto BattleScript_BeatUpLoop -BattleScript_1D82C4: @ 81D82C4 +BattleScript_BeatUpEnd: @ 81D82C4 end -MoveEffect_Fly: @ 81D82C5 - jumpifstatus2 USER, S_CONTINUE, BattleScript_1D8333 - jumpifword 4, gHitMarker, 0x200, BattleScript_1D8333 - jumpifhalfword 0, gCurrentMove, 19, BattleScript_1D8322 - jumpifhalfword 0, gCurrentMove, 291, BattleScript_1D8317 - jumpifhalfword 0, gCurrentMove, 340, BattleScript_1D830C - setbyte gSharedMem + 0x16055, 5 - goto BattleScript_1D8328 +BattleScript_EffectSemiInvulnerable: @ 81D82C5 + jumpifstatus2 USER, 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, 5 + goto BattleScript_FirstTurnSemiInvulnerable -BattleScript_1D830C: @ 81D830C - setbyte gSharedMem + 0x16055, 7 - goto BattleScript_1D8328 +BattleScript_FirstTurnBounce: @ 81D830C + setbyte sTWOTURN_STRINGID, 7 + goto BattleScript_FirstTurnSemiInvulnerable -BattleScript_1D8317: @ 81D8317 - setbyte gSharedMem + 0x16055, 6 - goto BattleScript_1D8328 +BattleScript_FirstTurnDive: @ 81D8317 + setbyte sTWOTURN_STRINGID, 6 + goto BattleScript_FirstTurnSemiInvulnerable -BattleScript_1D8322: @ 81D8322 - setbyte gSharedMem + 0x16055, 4 +BattleScript_FirstTurnFly: @ 81D8322 + setbyte sTWOTURN_STRINGID, 4 -BattleScript_1D8328: @ 81D8328 - call BattleScript_1D756C +BattleScript_FirstTurnSemiInvulnerable: @ 81D8328 + call BattleScriptFirstChargingTurn setsemiinvulnerablebit - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -BattleScript_1D8333: @ 81D8333 +BattleScript_SecondTurnSemiInvulnerable: @ 81D8333 attackcanceler - setbyte gUnknown_02024D1F + 0x2, 12 - setbyte gSharedMem + 0x16002, 1 + setmoveeffect EFFECT_CHARGING + setbyte sANIM_TURN, 1 clearstatusfromeffect USER - orword gHitMarker, 0x800 - jumpifhalfword 1, gCurrentMove, 340, BattleScript_1D835D - setbyte gUnknown_02024D1F + 0x2, 5 + orword gHitMarker, HITMARKER_NO_PPDEDUCT + jumpifnotmove MOVE_BOUNCE, BattleScript_SemiInvulnerableTryHit + setmoveeffect EFFECT_PARALYSIS -BattleScript_1D835D: @ 81D835D - accuracycheck BattleScript_1D836A, 0 +BattleScript_SemiInvulnerableTryHit: @ 81D835D + accuracycheck BattleScript_SemiInvulnerableMiss, ACC_CURR_MOVE clearsemiinvulnerablebit - goto BattleScript_1D6F42 + goto BattleScript_HitFromAtkString -BattleScript_1D836A: @ 81D836A +BattleScript_SemiInvulnerableMiss: @ 81D836A clearsemiinvulnerablebit - goto BattleScript_1D6F72 + goto BattleScript_PrintMoveMissed -MoveEffect_DefenseCurl: @ 81D8370 +BattleScript_EffectDefenseCurl: @ 81D8370 attackcanceler attackstring ppreduce setdefensecurlbit - setbyte gSharedMem + 0x1601E, 18 - statbuffchange 65, BattleScript_1D838D - jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D71D8 + setstatchanger DEFENSE, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_DefenseCurlDoStatUpAnim + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_StatUpPrintString attackanimation waitanimation -BattleScript_1D838D: @ 81D838D - goto BattleScript_1D71D0 +BattleScript_DefenseCurlDoStatUpAnim: @ 81D838D + goto BattleScript_StatUpDoAnim -MoveEffect_Softboiled: @ 81D8392 +BattleScript_EffectSoftboiled: @ 81D8392 attackcanceler attackstring ppreduce - tryhealhalfhealth BattleScript_1D83B5, 0 + tryhealhalfhealth BattleScript_AlreadyAtFullHp, 0 -BattleScript_1D839B:: @ 81D839B +BattleScript_PresentHealTarget:: @ 81D839B attackanimation waitanimation - orword gHitMarker, 0x100 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate TARGET datahpupdate TARGET printstring BATTLE_TEXT_RegainedHealth waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -BattleScript_1D83B5:: @ 81D83B5 +BattleScript_AlreadyAtFullHp:: @ 81D83B5 pause 32 printstring BATTLE_TEXT_HPFull waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_FakeOut: @ 81D83C3 +BattleScript_EffectFakeOut: @ 81D83C3 attackcanceler - jumpifnotfirstturn BattleScript_1D83D4 - setbyte gUnknown_02024D1F + 0x2, 136 - goto BattleScript_1D6F14 + jumpifnotfirstturn BattleScript_ButItFailedAtkStringPpReduce + setbyte cEFFECT_CHOOSER, 136 + goto BattleScript_EffectHit -BattleScript_1D83D4: @ 81D83D4 +BattleScript_ButItFailedAtkStringPpReduce: @ 81D83D4 attackstring -BattleScript_1D83D5: @ 81D83D5 +BattleScript_ButItFailedPpReduce: @ 81D83D5 ppreduce BattleScript_ButItFailed:: @ 81D83D6 pause 32 - orbyte gBattleMoveFlags, 32 + orbyte gBattleMoveFlags, MOVESTATUS_FAILED resultmessage waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -BattleScript_1D83E8: @ 81D83E8 +BattleScript_NotAffected: @ 81D83E8 pause 32 - orbyte gBattleMoveFlags, 8 + orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED resultmessage waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Uproar: @ 81D83FA +BattleScript_EffectUproar: @ 81D83FA attackcanceler - accuracycheck BattleScript_1D6F72, 0 - setbyte gUnknown_02024D1F + 0x2, 74 + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + setbyte cEFFECT_CHOOSER, 74 attackstring - jumpifstatus2 USER, S_CONTINUE, BattleScript_1D8414 + jumpifstatus2 USER, STATUS2_MULTIPLETURNS, BattleScript_UproarHit ppreduce -BattleScript_1D8414: @ 81D8414 +BattleScript_UproarHit: @ 81D8414 nop - goto BattleScript_1D6F44 + goto BattleScript_HitFromCritCalc -MoveEffect_Stockpile: @ 81D841A +BattleScript_EffectStockpile: @ 81D841A attackcanceler attackstring ppreduce stockpile attackanimation waitanimation - printfromtable BattleTextList_40155E + printfromtable gStockpileUsedStringIds waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_SpitUp: @ 81D842D +BattleScript_EffectSpitUp: @ 81D842D attackcanceler - jumpifbyte 0, gUnknown_02024D1F + 0x5, 1, BattleScript_1D845C + jumpifbyte EQUAL, gUnknown_02024D1F + 0x5, 1, BattleScript_SpitUpFail attackstring ppreduce - accuracycheck BattleScript_1D6F72, 0 + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE stockpiletobasedamage BattleScript_1D844E typecalc adjustsetdamage - goto BattleScript_1D6F48 + goto BattleScript_HitFromAtkAnimation BattleScript_1D844E: @ 81D844E pause 32 printstring BATTLE_TEXT_SpitUpFail waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -BattleScript_1D845C: @ 81D845C +BattleScript_SpitUpFail: @ 81D845C attackstring ppreduce pause 64 stockpiletobasedamage BattleScript_1D844E resultmessage waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Swallow: @ 81D846F +BattleScript_EffectSwallow: @ 81D846F attackcanceler attackstring ppreduce - stockpiletohpheal BattleScript_1D847C - goto BattleScript_1D839B + stockpiletohpheal BattleScript_SwallowFail + goto BattleScript_PresentHealTarget -BattleScript_1D847C: @ 81D847C +BattleScript_SwallowFail: @ 81D847C pause 32 - printfromtable BattleTextList_401566 + printfromtable gSwallowFailStringIds waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Hail: @ 81D848C +BattleScript_EffectHail: @ 81D848C attackcanceler attackstring ppreduce sethail - goto BattleScript_1D7FFA + goto BattleScript_MoveWeatherChange -MoveEffect_Torment: @ 81D8495 +BattleScript_EffectTorment: @ 81D8495 attackcanceler attackstring ppreduce - accuracycheck BattleScript_ButItFailed, 0 + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE settorment BattleScript_ButItFailed attackanimation waitanimation printstring BATTLE_TEXT_TormentSubject waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Flatter: @ 81D84B1 +BattleScript_EffectFlatter: @ 81D84B1 attackcanceler - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_1D6F6C - accuracycheck BattleScript_1D6F72, 0 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_MakeMoveMissed + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce jumpifconfusedandstatmaxed 4, BattleScript_ButItFailed attackanimation waitanimation - setbyte gSharedMem + 0x1601E, 20 - statbuffchange 1, BattleScript_1D84F4 - jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D84F4 + setstatchanger SP_ATTACK, 1, FALSE + statbuffchange 1, BattleScript_FlatterTryConfuse + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_FlatterTryConfuse setgraphicalstatchangevalues - playanimation TARGET, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4 - printfromtable BattleTextList_401570 + playanimation TARGET, B_ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable gStatUpStringIds waitmessage 64 -BattleScript_1D84F4: @ 81D84F4 - jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_1D98E5 - jumpifsideaffecting TARGET, 32, BattleScript_1D9037 - setbyte gUnknown_02024D1F + 0x2, 7 +BattleScript_FlatterTryConfuse: @ 81D84F4 + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected + setmoveeffect EFFECT_CONFUSION seteffectprimary - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_WillOWisp: @ 81D850F +BattleScript_EffectWillOWisp: @ 81D850F attackcanceler attackstring ppreduce - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_ButItFailed - jumpifstatus TARGET, BRN, BattleScript_1D8575 - jumpiftype TARGET, TYPE_FIRE, BattleScript_1D83E8 - jumpifability TARGET, ABILITY_WATER_VEIL, BattleScript_1D855B + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus TARGET, BRN, BattleScript_AlreadyBurned + jumpiftype TARGET, TYPE_FIRE, BattleScript_NotAffected + jumpifability TARGET, ABILITY_WATER_VEIL, BattleScript_WaterVeilPrevents jumpifstatus TARGET, SLP | PSN | BRN | FRZ | PAR | TOX, BattleScript_ButItFailed - accuracycheck BattleScript_ButItFailed, 0 - jumpifsideaffecting TARGET, 32, BattleScript_1D9037 + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected attackanimation waitanimation - setbyte gUnknown_02024D1F + 0x2, 3 + setmoveeffect EFFECT_BURN seteffectprimary - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -BattleScript_1D855B: @ 81D855B - copyarray gEffectBank, gBankTarget, 1 - setbyte gUnknown_02024D1F + 0x4, 0 +BattleScript_WaterVeilPrevents: @ 81D855B + copybyte gEffectBank, gBankTarget + setbyte cMULTISTRING_CHOOSER, 0 call BattleScript_BRNPrevention - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -BattleScript_1D8575: @ 81D8575 +BattleScript_AlreadyBurned: @ 81D8575 pause 32 printstring BATTLE_TEXT_AlreadyBurned waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Memento: @ 81D8583 +BattleScript_EffectMemento: @ 81D8583 attackcanceler - jumpifbyte 0, gUnknown_02024D1F + 0x5, 1, BattleScript_1D860A + jumpifbyte EQUAL, gUnknown_02024D1F + 0x5, 1, BattleScript_1D860A attackstring ppreduce jumpifattackandspecialattackcannotfall BattleScript_ButItFailed setatkhptozero attackanimation waitanimation - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_1D85FF - setbyte gSharedMem + 0x160DC, 0 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_1D85FF + setbyte sFIELD_1B, 0 playstatchangeanimation TARGET, 18, 7 playstatchangeanimation TARGET, 2, 3 - setbyte gSharedMem + 0x1601E, 161 + setstatchanger ATTACK, 2, TRUE statbuffchange 1, BattleScript_1D85D0 - jumpifbyte 2, gUnknown_02024D1F + 0x4, 1, BattleScript_1D85D0 - printfromtable BattleTextList_40157C + jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 1, BattleScript_1D85D0 + printfromtable gStatDownStringIds waitmessage 64 BattleScript_1D85D0: @ 81D85D0 playstatchangeanimation TARGET, 16, 3 - setbyte gSharedMem + 0x1601E, 164 + setstatchanger SP_ATTACK, 2, TRUE statbuffchange 1, BattleScript_1D85F3 - jumpifbyte 2, gUnknown_02024D1F + 0x4, 1, BattleScript_1D85F3 - printfromtable BattleTextList_40157C + jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 1, BattleScript_1D85F3 + printfromtable gStatDownStringIds waitmessage 64 BattleScript_1D85F3: @ 81D85F3 - tryfaintmon USER, 0, 0x0 - goto BattleScript_EndTurn + tryfaintmon USER, FALSE, NULL + goto BattleScript_MoveEnd BattleScript_1D85FF: @ 81D85FF printstring BATTLE_TEXT_NoEffect @@ -2353,36 +2349,36 @@ BattleScript_1D8611: @ 81D8611 effectivenesssound resultmessage waitmessage 64 - tryfaintmon USER, 0, 0x0 - goto BattleScript_EndTurn + tryfaintmon USER, FALSE, NULL + goto BattleScript_MoveEnd -MoveEffect_Facade: @ 81D8626 - jumpifstatus USER, PSN | BRN | PAR | TOX, BattleScript_1D8635 - goto BattleScript_1D6F14 +BattleScript_EffectFacade: @ 81D8626 + jumpifstatus USER, PSN | BRN | PAR | TOX, BattleScript_FacadeDoubleDmg + goto BattleScript_EffectHit -BattleScript_1D8635: @ 81D8635 - setbyte gSharedMem + 0x1601F, 2 - goto BattleScript_1D6F14 +BattleScript_FacadeDoubleDmg: @ 81D8635 + setbyte sDMG_MULTIPLIER, 2 + goto BattleScript_EffectHit -MoveEffect_FocusPunch: @ 81D8640 +BattleScript_EffectFocusPunch: @ 81D8640 attackcanceler - jumpifnodamage BattleScript_1D6F3B + jumpifnodamage BattleScript_HitFromAccCheck ppreduce printstring BATTLE_TEXT_LostFocus waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Smellingsalt: @ 81D8652 - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_1D6F14 - setbyte gUnknown_02024D1F + 0x2, 164 - jumpifstatus TARGET, PAR, BattleScript_1D8671 - goto BattleScript_1D6F14 +BattleScript_EffectSmellingsalt: @ 81D8652 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_EffectHit + setmoveeffect EFFECT_REMOVE_PARALYSIS | CERTAIN + jumpifstatus TARGET, PAR, BattleScript_SmellingsaltDoubleDmg + goto BattleScript_EffectHit -BattleScript_1D8671: @ 81D8671 - setbyte gSharedMem + 0x1601F, 2 - goto BattleScript_1D6F14 +BattleScript_SmellingsaltDoubleDmg: @ 81D8671 + setbyte sDMG_MULTIPLIER, 2 + goto BattleScript_EffectHit -MoveEffect_FollowMe: @ 81D867C +BattleScript_EffectFollowMe: @ 81D867C attackcanceler attackstring ppreduce @@ -2391,9 +2387,9 @@ MoveEffect_FollowMe: @ 81D867C waitanimation printstring BATTLE_TEXT_CenterAttention waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_NaturePower: @ 81D868D +BattleScript_EffectNaturePower: @ 81D868D attackcanceler attackstring pause 32 @@ -2402,7 +2398,7 @@ MoveEffect_NaturePower: @ 81D868D waitmessage 64 return -MoveEffect_Charge: @ 81D869A +BattleScript_EffectCharge: @ 81D869A attackcanceler attackstring ppreduce @@ -2411,21 +2407,21 @@ MoveEffect_Charge: @ 81D869A waitanimation printstring BATTLE_TEXT_ChargingPower waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Taunt: @ 81D86AB +BattleScript_EffectTaunt: @ 81D86AB attackcanceler attackstring ppreduce - accuracycheck BattleScript_ButItFailed, 0 + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE settaunt BattleScript_ButItFailed attackanimation waitanimation printstring BATTLE_TEXT_TauntFell waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_HelpingHand: @ 81D86C7 +BattleScript_EffectHelpingHand: @ 81D86C7 attackcanceler attackstring ppreduce @@ -2434,55 +2430,55 @@ MoveEffect_HelpingHand: @ 81D86C7 waitanimation printstring BATTLE_TEXT_ReadyToHelp waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Trick: @ 81D86DC +BattleScript_EffectTrick: @ 81D86DC attackcanceler attackstring ppreduce - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_ButItFailed - accuracycheck BattleScript_ButItFailed, 0 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE tryswapitems BattleScript_ButItFailed attackanimation waitanimation printstring BATTLE_TEXT_SwitchedItems waitmessage 64 - printfromtable BattleTextList_401642 + printfromtable gItemSwapStringIds waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_RolePlay: @ 81D870A +BattleScript_EffectRolePlay: @ 81D870A attackcanceler attackstring ppreduce - accuracycheck BattleScript_ButItFailed, 65535 + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON trycopyability BattleScript_ButItFailed attackanimation waitanimation printstring BATTLE_TEXT_CopiedObject waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Wish: @ 81D8726 +BattleScript_EffectWish: @ 81D8726 attackcanceler attackstring ppreduce trywish 0, BattleScript_ButItFailed attackanimation waitanimation - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Assist: @ 81D8736 +BattleScript_EffectAssist: @ 81D8736 attackcanceler attackstring - assistattackselect BattleScript_1D83D5 + assistattackselect BattleScript_ButItFailedPpReduce attackanimation waitanimation - setbyte gSharedMem + 0x16002, 0 - setbyte gSharedMem + 0x160A1, 0 + setbyte sANIM_TURN, 0 + setbyte sANIM_TARGETS_HIT, 0 jumptorandomattack USER -MoveEffect_Ingrain: @ 81D874D +BattleScript_EffectIngrain: @ 81D874D attackcanceler attackstring ppreduce @@ -2491,24 +2487,24 @@ MoveEffect_Ingrain: @ 81D874D waitanimation printstring BATTLE_TEXT_PlantedRoots waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Superpower: @ 81D8762 - setbyte gUnknown_02024D1F + 0x2, 229 - goto BattleScript_1D6F14 +BattleScript_EffectSuperpower: @ 81D8762 + setmoveeffect EFFECT_ATK_DEF_DOWN | AFFECTS_USER | CERTAIN + goto BattleScript_EffectHit -MoveEffect_MagicCoat: @ 81D876D +BattleScript_EffectMagicCoat: @ 81D876D attackcanceler - trysetmagiccoat BattleScript_1D83D4 + trysetmagiccoat BattleScript_ButItFailedAtkStringPpReduce attackstring ppreduce attackanimation waitanimation printstring BATTLE_TEXT_ShroudedItself waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Recycle: @ 81D8782 +BattleScript_EffectRecycle: @ 81D8782 attackcanceler attackstring ppreduce @@ -2517,15 +2513,15 @@ MoveEffect_Recycle: @ 81D8782 waitanimation printstring BATTLE_TEXT_FoundOne waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Revenge: @ 81D8797 +BattleScript_EffectRevenge: @ 81D8797 doubledamagedealtifdamaged - goto BattleScript_1D6F14 + goto BattleScript_EffectHit -MoveEffect_BrickBreak: @ 81D879D +BattleScript_EffectBrickBreak: @ 81D879D attackcanceler - accuracycheck BattleScript_1D6F72, 0 + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce removelightscreenreflect @@ -2533,17 +2529,17 @@ MoveEffect_BrickBreak: @ 81D879D damagecalc typecalc adjustnormaldamage - jumpifbyte 0, gSharedMem + 0x16002, 0, BattleScript_1D87BD + jumpifbyte EQUAL, sANIM_TURN, 0, BattleScript_BrickBreakAnim bicbyte gBattleMoveFlags, 9 -BattleScript_1D87BD: @ 81D87BD +BattleScript_BrickBreakAnim: @ 81D87BD attackanimation waitanimation - jumpifbyte 3, gSharedMem + 0x16002, 2, BattleScript_1D87D0 + jumpifbyte LESS_THAN, sANIM_TURN, 2, BattleScript_BrickBreakDoHit printstring BATTLE_TEXT_BrokeWall waitmessage 64 -BattleScript_1D87D0: @ 81D87D0 +BattleScript_BrickBreakDoHit: @ 81D87D0 typecalc2 effectivenesssound hitanimation TARGET @@ -2555,70 +2551,70 @@ BattleScript_1D87D0: @ 81D87D0 resultmessage waitmessage 64 seteffectwithchance - tryfaintmon TARGET, 0, 0x0 - goto BattleScript_EndTurn + tryfaintmon TARGET, FALSE, NULL + goto BattleScript_MoveEnd -MoveEffect_Yawn: @ 81D87EE +BattleScript_EffectYawn: @ 81D87EE attackcanceler attackstring ppreduce - jumpifability TARGET, ABILITY_VITAL_SPIRIT, BattleScript_1D882F - jumpifability TARGET, ABILITY_INSOMNIA, BattleScript_1D882F - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_ButItFailed - jumpifsideaffecting TARGET, 32, BattleScript_1D9037 - accuracycheck BattleScript_ButItFailed, 65535 + jumpifability TARGET, ABILITY_VITAL_SPIRIT, BattleScript_PrintBankAbilityMadeIneffective + jumpifability TARGET, ABILITY_INSOMNIA, BattleScript_PrintBankAbilityMadeIneffective + 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 BATTLE_TEXT_DrowsyMade waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -BattleScript_1D882F: @ 81D882F - copyarray gSharedMem + 0x16003, gSharedMem + 0x160F8, 1 +BattleScript_PrintBankAbilityMadeIneffective: @ 81D882F + copybyte sBANK, sBANK_WITH_ABILITY -BattleScript_1D8839: @ 81D8839 +BattleScript_PrintAbilityMadeIneffective: @ 81D8839 pause 32 printstring BATTLE_TEXT_MadeIneffective2 waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_KnockOff: @ 81D8847 - setbyte gUnknown_02024D1F + 0x2, 54 - goto BattleScript_1D6F14 +BattleScript_EffectKnockOff: @ 81D8847 + setmoveeffect EFFECT_KNOCK_OFF + goto BattleScript_EffectHit -MoveEffect_Endeavor: @ 81D8852 +BattleScript_EffectEndeavor: @ 81D8852 attackcanceler attackstring ppreduce setdamagetohealthdifference BattleScript_ButItFailed - copyarray gHP_dealt, gBattleMoveDamage, 4 - accuracycheck BattleScript_1D6F77, 0 + copyword gHP_dealt, gBattleMoveDamage + accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE typecalc - jumpifbyte 4, gBattleMoveFlags, 41, BattleScript_1D6F48 - bicbyte gBattleMoveFlags, 6 - copyarray gBattleMoveDamage, gHP_dealt, 4 + jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + copyword gBattleMoveDamage, gHP_dealt adjustsetdamage - goto BattleScript_1D6F48 + goto BattleScript_HitFromAtkAnimation -MoveEffect_Eruption: @ 81D888D +BattleScript_EffectEruption: @ 81D888D scaledamagebyhealthratio - goto BattleScript_1D6F14 + goto BattleScript_EffectHit -MoveEffect_SkillSwap: @ 81D8893 +BattleScript_EffectSkillSwap: @ 81D8893 attackcanceler attackstring ppreduce - accuracycheck BattleScript_ButItFailed, 65535 + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON tryswapabilities BattleScript_ButItFailed attackanimation waitanimation printstring BATTLE_TEXT_AbilitySwap waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Imprison: @ 81D88AF +BattleScript_EffectImprison: @ 81D88AF attackcanceler attackstring ppreduce @@ -2627,9 +2623,9 @@ MoveEffect_Imprison: @ 81D88AF waitanimation printstring BATTLE_TEXT_SealedMove waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Refresh: @ 81D88C4 +BattleScript_EffectRefresh: @ 81D88C4 attackcanceler attackstring ppreduce @@ -2638,10 +2634,10 @@ MoveEffect_Refresh: @ 81D88C4 waitanimation printstring BATTLE_TEXT_StatusNormal waitmessage 64 - updatestatusicon 1 - goto BattleScript_EndTurn + updatestatusicon USER + goto BattleScript_MoveEnd -MoveEffect_Grudge: @ 81D88DB +BattleScript_EffectGrudge: @ 81D88DB attackcanceler attackstring ppreduce @@ -2650,11 +2646,11 @@ MoveEffect_Grudge: @ 81D88DB waitanimation printstring BATTLE_TEXT_GrudgeBear waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_Snatch: @ 81D88F0 +BattleScript_EffectSnatch: @ 81D88F0 attackcanceler - trysetsnatch BattleScript_1D83D4 + trysetsnatch BattleScript_ButItFailedAtkStringPpReduce attackstring ppreduce attackanimation @@ -2662,267 +2658,267 @@ MoveEffect_Snatch: @ 81D88F0 pause 32 printstring BATTLE_TEXT_AwaitMove waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_LowKick: @ 81D8908 +BattleScript_EffectLowKick: @ 81D8908 attackcanceler attackstring ppreduce weightdamagecalculation - accuracycheck BattleScript_1D6F77, 0 - goto BattleScript_1D6F44 + accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE + goto BattleScript_HitFromCritCalc -MoveEffect_SecretPower: @ 81D8918 +BattleScript_EffectSecretPower: @ 81D8918 getsecretpowereffect - goto BattleScript_1D6F14 + goto BattleScript_EffectHit -MoveEffect_DoubleEdge: @ 81D891E - setbyte gUnknown_02024D1F + 0x2, 230 - goto BattleScript_1D6F14 +BattleScript_EffectDoubleEdge: @ 81D891E + setmoveeffect EFFECT_RECOIL_33_PARALYSIS | AFFECTS_USER | CERTAIN + goto BattleScript_EffectHit -MoveEffect_TeeterDance: @ 81D8929 +BattleScript_EffectTeeterDance: @ 81D8929 attackcanceler attackstring ppreduce setbyte gBankTarget, 0 -BattleScript_1D8932: @ 81D8932 +BattleScript_TeeterDanceLoop: @ 81D8932 movevaluescleanup - setbyte gUnknown_02024D1F + 0x2, 7 - jumpifarrayequal gBankAttacker, gBankTarget, 1, BattleScript_1D8978 - jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_1D8996 - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_1D89B2 - jumpifstatus2 TARGET, S_CONFUSED, BattleScript_1D89C0 - accuracycheck BattleScript_1D89CE, 0 - jumpifsideaffecting TARGET, 32, BattleScript_1D89A4 + setmoveeffect EFFECT_CONFUSION + jumpifbyteequal gBankAttacker, gBankTarget, BattleScript_TeeterDanceDoMoveEndIncrement + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_TeeterDanceLoopIncrement + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_TeeterDanceSubstitutePrevents + jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_TeeterDanceAlreadyConfused + accuracycheck BattleScript_TeeterDanceMissed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_TeeterDanceSafeguardProtected attackanimation waitanimation seteffectprimary resultmessage waitmessage 64 -BattleScript_1D8978: @ 81D8978 - setbyte gSharedMem + 0x1600C, 0 +BattleScript_TeeterDanceDoMoveEndIncrement: @ 81D8978 + setbyte sMOVEEND_STATE, 0 moveend 2, 16 addbyte gBankTarget, 1 - jumpifarraynotequal gBankTarget, gNoOfAllBanks, 1, BattleScript_1D8932 + jumpifbytenotequal gBankTarget, gNoOfAllBanks, BattleScript_TeeterDanceLoop end -BattleScript_1D8996: @ 81D8996 +BattleScript_TeeterDanceLoopIncrement: @ 81D8996 pause 32 printstring BATTLE_TEXT_PreventedConfusion waitmessage 64 - goto BattleScript_1D8978 + goto BattleScript_TeeterDanceDoMoveEndIncrement -BattleScript_1D89A4: @ 81D89A4 +BattleScript_TeeterDanceSafeguardProtected: @ 81D89A4 pause 32 printstring BATTLE_TEXT_SafeguardActive waitmessage 64 - goto BattleScript_1D8978 + goto BattleScript_TeeterDanceDoMoveEndIncrement -BattleScript_1D89B2: @ 81D89B2 +BattleScript_TeeterDanceSubstitutePrevents: @ 81D89B2 pause 32 printstring BATTLE_TEXT_Failed waitmessage 64 - goto BattleScript_1D8978 + goto BattleScript_TeeterDanceDoMoveEndIncrement -BattleScript_1D89C0: @ 81D89C0 +BattleScript_TeeterDanceAlreadyConfused: @ 81D89C0 pause 32 printstring BATTLE_TEXT_AlreadyConfused waitmessage 64 - goto BattleScript_1D8978 + goto BattleScript_TeeterDanceDoMoveEndIncrement -BattleScript_1D89CE: @ 81D89CE +BattleScript_TeeterDanceMissed: @ 81D89CE resultmessage waitmessage 64 - goto BattleScript_1D8978 + goto BattleScript_TeeterDanceDoMoveEndIncrement -MoveEffect_MudSport: @ 81D89D7 -MoveEffect_WaterSport: @ 81D89D7 +BattleScript_EffectMudSport: @ 81D89D7 +BattleScript_EffectWaterSport: @ 81D89D7 attackcanceler attackstring ppreduce settypebasedhalvers BattleScript_ButItFailed attackanimation waitanimation - printfromtable BattleTextList_4015D4 + printfromtable gSportsUsedStringIds waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_PoisonFang: @ 81D89EE - setbyte gUnknown_02024D1F + 0x2, 6 - goto BattleScript_1D6F14 +BattleScript_EffectPoisonFang: @ 81D89EE + setmoveeffect EFFECT_TOXIC + goto BattleScript_EffectHit -MoveEffect_WeatherBall: @ 81D89F9 +BattleScript_EffectWeatherBall: @ 81D89F9 setweatherballtype - goto BattleScript_1D6F14 + goto BattleScript_EffectHit -MoveEffect_Overheat: @ 81D89FF - setbyte gUnknown_02024D1F + 0x2, 251 - goto BattleScript_1D6F14 +BattleScript_EffectOverheat: @ 81D89FF + setmoveeffect EFFECT_SP_ATK_TWO_DOWN | AFFECTS_USER | CERTAIN + goto BattleScript_EffectHit -MoveEffect_Tickle: @ 81D8A0A +BattleScript_EffectTickle: @ 81D8A0A attackcanceler attackstring ppreduce - jumpifstat TARGET, 2, 1, 0, BattleScript_1D8A1F - jumpifstat TARGET, 0, 2, 0, BattleScript_1D8A7D + jumpifstat TARGET, GREATER_THAN, ATTACK, 0, BattleScript_TickleDoMoveAnim + jumpifstat TARGET, EQUAL, DEFENSE, 0, BattleScript_CantLowerMultipleStats -BattleScript_1D8A1F: @ 81D8A1F - accuracycheck BattleScript_ButItFailed, 0 +BattleScript_TickleDoMoveAnim: @ 81D8A1F + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE attackanimation waitanimation - setbyte gSharedMem + 0x160DC, 0 + setbyte sFIELD_1B, 0 playstatchangeanimation TARGET, 6, 5 playstatchangeanimation TARGET, 2, 1 - setbyte gSharedMem + 0x1601E, 145 - statbuffchange 1, BattleScript_1D8A55 - jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8A55 - printfromtable BattleTextList_40157C + setstatchanger ATTACK, 1, TRUE + statbuffchange 1, BattleScript_TickleTryLowerDef + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_TickleTryLowerDef + printfromtable gStatDownStringIds waitmessage 64 -BattleScript_1D8A55: @ 81D8A55 +BattleScript_TickleTryLowerDef: @ 81D8A55 playstatchangeanimation TARGET, 4, 1 - setbyte gSharedMem + 0x1601E, 146 - statbuffchange 1, BattleScript_1D8A78 - jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8A78 - printfromtable BattleTextList_40157C + setstatchanger DEFENSE, 1, TRUE + statbuffchange 1, BattleScript_TickleEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_TickleEnd + printfromtable gStatDownStringIds waitmessage 64 -BattleScript_1D8A78: @ 81D8A78 - goto BattleScript_EndTurn +BattleScript_TickleEnd: @ 81D8A78 + goto BattleScript_MoveEnd -BattleScript_1D8A7D: @ 81D8A7D +BattleScript_CantLowerMultipleStats: @ 81D8A7D pause 32 - orbyte gBattleMoveFlags, 32 + orbyte gBattleMoveFlags, MOVESTATUS_FAILED printstring BATTLE_TEXT_StatNoLower waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_CosmicPower: @ 81D8A91 +BattleScript_EffectCosmicPower: @ 81D8A91 attackcanceler attackstring ppreduce - jumpifstat USER, 3, 2, 12, BattleScript_1D8AA6 - jumpifstat USER, 0, 5, 12, BattleScript_1D8BCB + jumpifstat USER, LESS_THAN, DEFENSE, 12, BattleScript_CosmicPowerDoMoveAnim + jumpifstat USER, EQUAL, SP_DEFENSE, 12, BattleScript_CantRaiseMultipleStats -BattleScript_1D8AA6: @ 81D8AA6 +BattleScript_CosmicPowerDoMoveAnim: @ 81D8AA6 attackanimation waitanimation - setbyte gSharedMem + 0x160DC, 0 + setbyte sFIELD_1B, 0 playstatchangeanimation USER, 36, 0 - setbyte gSharedMem + 0x1601E, 18 - statbuffchange 65, BattleScript_1D8AD1 - jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8AD1 - printfromtable BattleTextList_401570 + setstatchanger DEFENSE, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_CosmicPowerTrySpDef + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_CosmicPowerTrySpDef + printfromtable gStatUpStringIds waitmessage 64 -BattleScript_1D8AD1: @ 81D8AD1 - setbyte gSharedMem + 0x1601E, 21 - statbuffchange 65, BattleScript_1D8AF0 - jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8AF0 - printfromtable BattleTextList_401570 +BattleScript_CosmicPowerTrySpDef: @ 81D8AD1 + setstatchanger SP_DEFENSE, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_CosmicPowerEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_CosmicPowerEnd + printfromtable gStatUpStringIds waitmessage 64 -BattleScript_1D8AF0: @ 81D8AF0 - goto BattleScript_EndTurn +BattleScript_CosmicPowerEnd: @ 81D8AF0 + goto BattleScript_MoveEnd -MoveEffect_SkyUppercut: @ 81D8AF5 - orword gHitMarker, 0x10000 - goto BattleScript_1D6F14 +BattleScript_EffectSkyUppercut: @ 81D8AF5 + orword gHitMarker, HITMARKER_IGNORE_ON_AIR + goto BattleScript_EffectHit -MoveEffect_BulkUp: @ 81D8B03 +BattleScript_EffectBulkUp: @ 81D8B03 attackcanceler attackstring ppreduce - jumpifstat USER, 3, 1, 12, BattleScript_1D8B18 - jumpifstat USER, 0, 2, 12, BattleScript_1D8BCB + jumpifstat USER, LESS_THAN, ATTACK, 12, BattleScript_BulkUpDoMoveAnim + jumpifstat USER, EQUAL, DEFENSE, 12, BattleScript_CantRaiseMultipleStats -BattleScript_1D8B18: @ 81D8B18 +BattleScript_BulkUpDoMoveAnim: @ 81D8B18 attackanimation waitanimation - setbyte gSharedMem + 0x160DC, 0 + setbyte sFIELD_1B, 0 playstatchangeanimation USER, 6, 0 - setbyte gSharedMem + 0x1601E, 17 - statbuffchange 65, BattleScript_1D8B43 - jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8B43 - printfromtable BattleTextList_401570 + setstatchanger ATTACK, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_BulkUpTryDef + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_BulkUpTryDef + printfromtable gStatUpStringIds waitmessage 64 -BattleScript_1D8B43: @ 81D8B43 - setbyte gSharedMem + 0x1601E, 18 - statbuffchange 65, BattleScript_1D8B62 - jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8B62 - printfromtable BattleTextList_401570 +BattleScript_BulkUpTryDef: @ 81D8B43 + setstatchanger DEFENSE, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_BulkUpEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_BulkUpEnd + printfromtable gStatUpStringIds waitmessage 64 -BattleScript_1D8B62: @ 81D8B62 - goto BattleScript_EndTurn +BattleScript_BulkUpEnd: @ 81D8B62 + goto BattleScript_MoveEnd -MoveEffect_CalmMind: @ 81D8B67 +BattleScript_EffectCalmMind: @ 81D8B67 attackcanceler attackstring ppreduce - jumpifstat USER, 3, 4, 12, BattleScript_1D8B7C - jumpifstat USER, 0, 5, 12, BattleScript_1D8BCB + jumpifstat USER, LESS_THAN, SP_ATTACK, 12, BattleScript_CalmMindDoMoveAnim + jumpifstat USER, EQUAL, SP_DEFENSE, 12, BattleScript_CantRaiseMultipleStats -BattleScript_1D8B7C: @ 81D8B7C +BattleScript_CalmMindDoMoveAnim: @ 81D8B7C attackanimation waitanimation - setbyte gSharedMem + 0x160DC, 0 + setbyte sFIELD_1B, 0 playstatchangeanimation USER, 48, 0 - setbyte gSharedMem + 0x1601E, 20 - statbuffchange 65, BattleScript_1D8BA7 - jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8BA7 - printfromtable BattleTextList_401570 + setstatchanger SP_ATTACK, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_CalmMindTrySpDef + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_CalmMindTrySpDef + printfromtable gStatUpStringIds waitmessage 64 -BattleScript_1D8BA7: @ 81D8BA7 - setbyte gSharedMem + 0x1601E, 21 - statbuffchange 65, BattleScript_1D8BC6 - jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8BC6 - printfromtable BattleTextList_401570 +BattleScript_CalmMindTrySpDef: @ 81D8BA7 + setstatchanger SP_DEFENSE, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_CalmMindEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_CalmMindEnd + printfromtable gStatUpStringIds waitmessage 64 -BattleScript_1D8BC6: @ 81D8BC6 - goto BattleScript_EndTurn +BattleScript_CalmMindEnd: @ 81D8BC6 + goto BattleScript_MoveEnd -BattleScript_1D8BCB: @ 81D8BCB +BattleScript_CantRaiseMultipleStats: @ 81D8BCB pause 32 - orbyte gBattleMoveFlags, 32 + orbyte gBattleMoveFlags, MOVESTATUS_FAILED printstring BATTLE_TEXT_StatNoHigher waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -MoveEffect_DragonDance: @ 81D8BDF +BattleScript_EffectDragonDance: @ 81D8BDF attackcanceler attackstring ppreduce - jumpifstat USER, 3, 1, 12, BattleScript_1D8BF4 - jumpifstat USER, 0, 3, 12, BattleScript_1D8BCB + jumpifstat USER, LESS_THAN, ATTACK, 12, BattleScript_DragonDanceDoMoveAnim + jumpifstat USER, EQUAL, SPEED, 12, BattleScript_CantRaiseMultipleStats -BattleScript_1D8BF4: @ 81D8BF4 +BattleScript_DragonDanceDoMoveAnim: @ 81D8BF4 attackanimation waitanimation - setbyte gSharedMem + 0x160DC, 0 + setbyte sFIELD_1B, 0 playstatchangeanimation USER, 10, 0 - setbyte gSharedMem + 0x1601E, 17 - statbuffchange 65, BattleScript_1D8C1F - jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8C1F - printfromtable BattleTextList_401570 + setstatchanger ATTACK, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_DragonDanceTrySpeed + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_DragonDanceTrySpeed + printfromtable gStatUpStringIds waitmessage 64 -BattleScript_1D8C1F: @ 81D8C1F - setbyte gSharedMem + 0x1601E, 19 - statbuffchange 65, BattleScript_1D8C3E - jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8C3E - printfromtable BattleTextList_401570 +BattleScript_DragonDanceTrySpeed: @ 81D8C1F + setstatchanger SPEED, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_DragonDanceEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_DragonDanceEnd + printfromtable gStatUpStringIds waitmessage 64 -BattleScript_1D8C3E: @ 81D8C3E - goto BattleScript_EndTurn +BattleScript_DragonDanceEnd: @ 81D8C3E + goto BattleScript_MoveEnd -MoveEffect_Camouflage: @ 81D8C43 +BattleScript_EffectCamouflage: @ 81D8C43 attackcanceler attackstring ppreduce @@ -2931,62 +2927,62 @@ MoveEffect_Camouflage: @ 81D8C43 waitanimation printstring BATTLE_TEXT_TypeTransform waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -gUnknown_081D8C58:: @ 81D8C58 - playfaintcry 1 +BattleScript_FaintAttacker:: @ 81D8C58 + playfaintcry USER pause 64 - dofaintanimation 1 - cleareffectsonfaint 1 + dofaintanimation USER + cleareffectsonfaint USER printstring BATTLE_TEXT_AttackingFainted return -gUnknown_081D8C65:: @ 81D8C65 - playfaintcry 0 +BattleScript_FaintTarget:: @ 81D8C65 + playfaintcry TARGET pause 64 - dofaintanimation 0 - cleareffectsonfaint 0 + dofaintanimation TARGET + cleareffectsonfaint TARGET printstring BATTLE_TEXT_DefendingFainted return -gUnknown_081D8C72:: @ 81D8C72 - setbyte gSharedMem + 0x1600F, 0 - getexp 0 +BattleScript_GiveExp:: @ 81D8C72 + setbyte sGIVEEXP_STATE, 0 + getexp TARGET end2 -gUnknown_081D8C7B:: @ 81D8C7B +BattleScript_HandleFaintedMon:: @ 81D8C7B atk24 BattleScript_1D8D87 - jumpifbyte 1, gBattleOutcome, 0, BattleScript_1D8D86 - jumpifhalfword 4, gBattleTypeFlags, 8, BattleScript_1D8CC2 - jumpifword 5, gHitMarker, 0x400000, BattleScript_1D8CC2 + jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_FaintedMonEnd + jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_FaintedMonTryChooseAnother + jumpifword NO_COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_FaintedMonTryChooseAnother printstring BATTLE_TEXT_UseNext setbyte gBattleCommunication, 0 yesnobox - jumpifbyte 0, gUnknown_02024D1F, 0, BattleScript_1D8CC2 - jumpifplayerran BattleScript_1D8D86 + jumpifbyte EQUAL, gUnknown_02024D1F, 0, BattleScript_FaintedMonTryChooseAnother + jumpifplayerran BattleScript_FaintedMonEnd printstring BATTLE_TEXT_CantEscape -BattleScript_1D8CC2: @ 81D8CC2 - openpartyscreen 3, BattleScript_1D8D86 +BattleScript_FaintedMonTryChooseAnother: @ 81D8CC2 + openpartyscreen 3, BattleScript_FaintedMonEnd switchhandleorder 3, 2 - jumpifhalfword 5, gBattleTypeFlags, 8, BattleScript_1D8D66 - jumpifhalfword 4, gBattleTypeFlags, 2, BattleScript_1D8D66 - jumpifhalfword 4, gBattleTypeFlags, 256, BattleScript_1D8D66 - jumpifhalfword 4, gBattleTypeFlags, 1, BattleScript_1D8D66 - jumpifword 4, gHitMarker, 0x400000, BattleScript_1D8D66 - jumpifbyte 0, gSharedMem + 0x16084, 1, BattleScript_1D8D66 - jumpifcantswitch USER, BattleScript_1D8D66 + jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_FaintedMonChooseAnother + jumpifbattletype BATTLE_TYPE_LINK, BattleScript_FaintedMonChooseAnother + jumpifbattletype BATTLE_TYPE_BATTLE_TOWER, BattleScript_FaintedMonChooseAnother + jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonChooseAnother + jumpifword COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_FaintedMonChooseAnother + jumpifbyte EQUAL, sBATTLE_STYLE, 1, BattleScript_FaintedMonChooseAnother + jumpifcantswitch USER, BattleScript_FaintedMonChooseAnother printstring BATTLE_TEXT_WillSwitch setbyte gBattleCommunication, 0 yesnobox - jumpifbyte 0, gUnknown_02024D1F, 1, BattleScript_1D8D66 + jumpifbyte EQUAL, gUnknown_02024D1F, 1, BattleScript_FaintedMonChooseAnother setatktoplayer0 - openpartyscreen 129, BattleScript_1D8D66 + openpartyscreen 129, BattleScript_FaintedMonChooseAnother switchhandleorder USER, 2 - jumpifbyte 0, gBattleCommunication, 6, BattleScript_1D8D66 + jumpifbyte EQUAL, gBattleCommunication, 6, BattleScript_FaintedMonChooseAnother atknameinbuff1 resetintrimidatetracebits USER - hpthresholds2 1 + hpthresholds2 USER printstring 2 switchoutabilities USER waitstate @@ -3003,7 +2999,7 @@ BattleScript_1D8CC2: @ 81D8CC2 switchineffects USER resetsentmonsvalue -BattleScript_1D8D66: @ 81D8D66 +BattleScript_FaintedMonChooseAnother: @ 81D8D66 drawpartystatussummary 3 getswitchedmondata 3 switchindataupdate 3 @@ -3013,10 +3009,10 @@ BattleScript_1D8D66: @ 81D8D66 switchinanim 3, 0 waitstate switchineffects 3 - jumpifhalfword 4, gBattleTypeFlags, 1, BattleScript_1D8D86 + jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonEnd cancelallactions -BattleScript_1D8D86: @ 81D8D86 +BattleScript_FaintedMonEnd: @ 81D8D86 end2 BattleScript_1D8D87: @ 81D8D87 @@ -3038,12 +3034,12 @@ BattleScript_1D8D99: @ 81D8D99 switchinanim 3, 0 waitstate switchineffects 5 - jumpifarraynotequal gBank1, gNoOfAllBanks, 1, BattleScript_1D8D99 + jumpifbytenotequal gBank1, gNoOfAllBanks, BattleScript_1D8D99 BattleScript_1D8DBD: @ 81D8DBD end2 -gUnknown_081D8DBE:: @ 81D8DBE +BattleScript_LocalTrainerBattleWon:: @ 81D8DBE printstring BATTLE_TEXT_PlayerDefeatedTrainer2 trainerslidein 1 waitstate @@ -3052,21 +3048,21 @@ gUnknown_081D8DBE:: @ 81D8DBE printstring BATTLE_TEXT_WinningPrize waitmessage 64 -gUnknown_081D8DCE:: @ 81D8DCE +BattleScript_PayDayMoneyAndPickUpItems:: @ 81D8DCE givepaydaymoney pickup end2 -gUnknown_081D8DD1:: @ 81D8DD1 - jumpifhalfword 4, gBattleTypeFlags, 256, BattleScript_1D8E01 - jumpifhalfword 4, gBattleTypeFlags, 2048, BattleScript_1D8E01 - jumpifhalfword 0, gTrainerBattleOpponent, 1024, BattleScript_1D8E01 +BattleScript_LocalBattleLost:: @ 81D8DD1 + jumpifbattletype BATTLE_TYPE_BATTLE_TOWER, BattleScript_LocalBattleLostEnd + jumpifbattletype BATTLE_TYPE_EREADER_TRAINER, BattleScript_LocalBattleLostEnd + jumpifhalfword EQUAL, gTrainerBattleOpponent, 1024, BattleScript_LocalBattleLostEnd printstring BATTLE_TEXT_OutOfUsablePoke waitmessage 64 printstring BATTLE_TEXT_WhitedOut waitmessage 64 -BattleScript_1D8E01: @ 81D8E01 +BattleScript_LocalBattleLostEnd: @ 81D8E01 end2 gUnknown_081D8E02:: @ 81D8E02 @@ -3082,64 +3078,64 @@ gUnknown_081D8E0D:: @ 81D8E0D waitstate end2 -gUnknown_081D8E14:: @ 81D8E14 - playanimation USER, B_ANIM_SMOKEBALL_ESCAPE, 0x0 +BattleScript_SmokeBallEscape:: @ 81D8E14 + playanimation USER, B_ANIM_SMOKEBALL_ESCAPE, NULL printstring BATTLE_TEXT_FledUsingItem waitmessage 64 end2 -gUnknown_081D8E22:: @ 81D8E22 +BattleScript_RanAwayUsingMonAbility:: @ 81D8E22 printstring BATTLE_TEXT_FledUsingOther waitmessage 64 end2 -gUnknown_081D8E29:: @ 81D8E29 +BattleScript_GotAwaySafely:: @ 81D8E29 printstring BATTLE_TEXT_GotAwaySafely waitmessage 64 end2 -gUnknown_081D8E30:: @ 81D8E30 +BattleScript_WildMonFled:: @ 81D8E30 printstring BATTLE_TEXT_FledWild waitmessage 64 end2 -gUnknown_081D8E37:: @ 81D8E37 +BattleScript_PrintCantRunFromTrainer:: @ 81D8E37 printstring BATTLE_TEXT_NoRunning end2 -gUnknown_081D8E3B:: @ 81D8E3B - printfromtable BattleTextList_401512 +BattleScript_PrintFailedToRunString:: @ 81D8E3B + printfromtable gNoEscapeStringIds waitmessage 64 end2 -gUnknown_081D8E44:: @ 81D8E44 - printselectionstringfromtable BattleTextList_401512 +BattleScript_PrintCantEscapeFromBattle:: @ 81D8E44 + printselectionstringfromtable gNoEscapeStringIds endselectionscript -gUnknown_081D8E4A:: @ 81D8E4A +BattleScript_PrintFullBox:: @ 81D8E4A printselectionstring BATTLE_TEXT_BoxFull endselectionscript -gUnknown_081D8E4E:: @ 81D8E4E - hpthresholds2 1 +BattleScript_ActionSwitch:: @ 81D8E4E + hpthresholds2 USER printstring 2 - setbyte gSharedMem + 0x1601F, 2 - jumpifbyte 4, gBattleTypeFlags, 1, BattleScript_1D8E6B + setbyte sDMG_MULTIPLIER, 2 + jumpifbyte COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOUBLE, BattleScript_PursuitSwitchDmgSetMultihit setmultihit 1 - goto BattleScript_1D8E6D + goto BattleScript_PursuitSwitchDmgLoop -BattleScript_1D8E6B: @ 81D8E6B +BattleScript_PursuitSwitchDmgSetMultihit: @ 81D8E6B setmultihit 2 -BattleScript_1D8E6D: @ 81D8E6D - jumpifnopursuitswitchdmg BattleScript_1D8E7A +BattleScript_PursuitSwitchDmgLoop: @ 81D8E6D + jumpifnopursuitswitchdmg BattleScript_DoSwitchOut atk5f trysetdestinybondtohappen - call BattleScript_1D8EAD + call BattleScript_PursuitDmgOnSwitchOut atk5f -BattleScript_1D8E7A: @ 81D8E7A - decrementmultihit BattleScript_1D8E6D +BattleScript_DoSwitchOut: @ 81D8E7A + decrementmultihit BattleScript_PursuitSwitchDmgLoop switchoutabilities USER waitstate returnatktoball @@ -3154,13 +3150,13 @@ BattleScript_1D8E7A: @ 81D8E7A switchinanim USER, 0 waitstate switchineffects USER - setbyte gSharedMem + 0x1600C, 4 + setbyte sMOVEEND_STATE, 4 moveend 1, 0 - setbyte gSharedMem + 0x1600C, 15 + setbyte sMOVEEND_STATE, 15 moveend 1, 0 end2 -BattleScript_1D8EAD: @ 81D8EAD +BattleScript_PursuitDmgOnSwitchOut: @ 81D8EAD pause 32 attackstring ppreduce @@ -3179,15 +3175,15 @@ BattleScript_1D8EAD: @ 81D8EAD waitmessage 64 resultmessage waitmessage 64 - tryfaintmon TARGET, 0, 0x0 - setbyte gSharedMem + 0x1600C, 3 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 3 moveend 2, 6 various TARGET, 4 - jumpifbyte 0, gBattleCommunication, 0, BattleScript_1D8EEE - setbyte gSharedMem + 0x1600F, 0 - getexp 0 + jumpifbyte EQUAL, gBattleCommunication, 0, BattleScript_PursuitDmgOnSwitchOutRet + setbyte sGIVEEXP_STATE, 0 + getexp TARGET -BattleScript_1D8EEE: @ 81D8EEE +BattleScript_PursuitDmgOnSwitchOutRet: @ 81D8EEE return BattleScript_Pausex20:: @ 81D8EEF @@ -3195,162 +3191,162 @@ BattleScript_Pausex20:: @ 81D8EEF return BattleScript_LevelUp:: @ 81D8EF3 - fanfare 0xe10016f - attackcanceler - setbyte gSharedMem + 0x1609C, 0 + fanfare BGM_FANFA1 + printstring BATTLE_TEXT_GrewLevel + setbyte sLVLBOX_STATE, 0 drawlvlupbox - handlelearnnewmove BattleScript_1D8F4F, BattleScript_1D8F61, 1 - goto BattleScript_1D8F19 + handlelearnnewmove BattleScript_LearnedNewMove, BattleScript_LearnMoveReturn, 1 + goto BattleScript_AskToLearnMove -BattleScript_1D8F0F: @ 81D8F0F - handlelearnnewmove BattleScript_1D8F4F, BattleScript_1D8F61, 0 +BattleScript_TryLearnMoveLoop: @ 81D8F0F + handlelearnnewmove BattleScript_LearnedNewMove, BattleScript_LearnMoveReturn, 0 -BattleScript_1D8F19: @ 81D8F19 +BattleScript_AskToLearnMove: @ 81D8F19 buffermovetolearn printstring BATTLE_TEXT_TryingToLearnMove printstring BATTLE_TEXT_CantLearnMore printstring BATTLE_TEXT_DeleteMove waitstate - setbyte gSharedMem + 0x1601A, 0 - yesnoboxlearnmove BattleScript_1D8F46 + setbyte sLEARNMOVE_STATE, 0 + yesnoboxlearnmove BattleScript_ForgotAndLearnedNewMove printstring BATTLE_TEXT_StopLearning waitstate - setbyte gSharedMem + 0x1601A, 0 - yesnoboxstoplearningmove BattleScript_1D8F19 + setbyte sLEARNMOVE_STATE, 0 + yesnoboxstoplearningmove BattleScript_AskToLearnMove printstring BATTLE_TEXT_DidNotLearn - goto BattleScript_1D8F0F + goto BattleScript_TryLearnMoveLoop -BattleScript_1D8F46: @ 81D8F46 +BattleScript_ForgotAndLearnedNewMove: @ 81D8F46 printstring BATTLE_TEXT_MoveForget123 printstring BATTLE_TEXT_DeletedMove printstring BATTLE_TEXT_MoveForgetAnd -BattleScript_1D8F4F: @ 81D8F4F +BattleScript_LearnedNewMove: @ 81D8F4F buffermovetolearn - fanfare 0xf10016f - attackcanceler + fanfare BGM_FANFA1 + printstring BATTLE_TEXT_LearnedMove waitmessage 64 updatechoicemoveonlvlup USER - goto BattleScript_1D8F0F + goto BattleScript_TryLearnMoveLoop -BattleScript_1D8F61: @ 81D8F61 +BattleScript_LearnMoveReturn: @ 81D8F61 return -gUnknown_081D8F62:: @ 81D8F62 - printfromtable BattleTextList_401534 +BattleScript_RainContinuesOrEnds:: @ 81D8F62 + printfromtable gRainContinuesStringIds waitmessage 64 - jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8F7C - playanimation USER, B_ANIM_RAIN_CONTINUES, 0x0 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_RainContinuesOrEndsEnd + playanimation USER, B_ANIM_RAIN_CONTINUES, NULL -BattleScript_1D8F7C: @ 81D8F7C +BattleScript_RainContinuesOrEndsEnd: @ 81D8F7C end2 -gUnknown_081D8F7D:: @ 81D8F7D - printfromtable BattleTextList_401528 +BattleScript_DamagingWeatherContinues:: @ 81D8F7D + printfromtable gSandStormHailContinuesStringIds waitmessage 64 - playanimation2 1, gSharedMem + 0x160A4, 0x0 + playanimation2 USER, sANIM_ARG1, NULL setbyte gBattleCommunication, 0 -BattleScript_1D8F95: @ 81D8F95 +BattleScript_DamagingWeatherLoop: @ 81D8F95 copyarraywithindex gBankAttacker, gTurnOrder, gBattleCommunication, 1 weatherdamage - jumpifword 0, gBattleMoveDamage, 0x0, BattleScript_1D8FD6 - printfromtable BattleTextList_40152C + jumpifword EQUAL, gBattleMoveDamage, 0x0, BattleScript_DamagingWeatherLoopIncrement + printfromtable gSandStormHailDmgStringIds waitmessage 64 - orword gHitMarker, 0x1100120 + orword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE effectivenesssound hitanimation USER healthbarupdate USER datahpupdate USER - tryfaintmon USER, 0, 0x0 - atk24 BattleScript_1D8FD6 + tryfaintmon USER, FALSE, NULL + atk24 BattleScript_DamagingWeatherLoopIncrement -BattleScript_1D8FD6: @ 81D8FD6 - jumpifbyte 1, gBattleOutcome, 0, BattleScript_1D8FF5 +BattleScript_DamagingWeatherLoopIncrement: @ 81D8FD6 + jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_DamagingWeatherContinuesEnd addbyte gBattleCommunication, 1 - jumpifarraynotequal gBattleCommunication, gNoOfAllBanks, 1, BattleScript_1D8F95 + jumpifbytenotequal gBattleCommunication, gNoOfAllBanks, BattleScript_DamagingWeatherLoop -BattleScript_1D8FF5: @ 81D8FF5 - bicword gHitMarker, 0x1100120 +BattleScript_DamagingWeatherContinuesEnd: @ 81D8FF5 + bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE end2 -gUnknown_081D8FFF:: @ 81D8FFF - printfromtable BattleTextList_401530 +BattleScript_SandStormHailEnds:: @ 81D8FFF + printfromtable gSandStormHailEndStringIds waitmessage 64 end2 -gUnknown_081D9008:: @ 81D9008 +BattleScript_SunlightContinues:: @ 81D9008 printstring BATTLE_TEXT_SunStrong waitmessage 64 - playanimation USER, B_ANIM_SUN_CONTINUES, 0x0 + playanimation USER, B_ANIM_SUN_CONTINUES, NULL end2 -gUnknown_081D9016:: @ 81D9016 +BattleScript_SunlightFaded:: @ 81D9016 printstring BATTLE_TEXT_SunFaded waitmessage 64 end2 -gUnknown_081D901D:: @ 81D901D - printfromtable BattleTextList_4015EE +BattleScript_OverworldWeatherStarts:: @ 81D901D + printfromtable gWeatherContinuesStringIds waitmessage 64 - playanimation2 1, gSharedMem + 0x160A4, 0x0 + playanimation2 USER, sANIM_ARG1, NULL end3 -gUnknown_081D9030:: @ 81D9030 +BattleScript_SideStatusWoreOff:: @ 81D9030 printstring BATTLE_TEXT_WoreOff waitmessage 64 end2 -BattleScript_1D9037: @ 81D9037 +BattleScript_SafeguardProtected: @ 81D9037 pause 32 printstring BATTLE_TEXT_SafeguardActive waitmessage 64 end2 -gUnknown_081D9041:: @ 81D9041 +BattleScript_SafeguardEnds:: @ 81D9041 pause 32 printstring BATTLE_TEXT_SafeguardFaded waitmessage 64 end2 BattleScript_LeechSeedTurnDrain:: @ 81D904B - playanimation USER, B_ANIM_LEECH_SEED_DRAIN, gSharedMem + 0x160A4 - orword gHitMarker, 0x100100 + playanimation USER, B_ANIM_LEECH_SEED_DRAIN, sANIM_ARG1 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate USER datahpupdate USER - copyarray gBattleMoveDamage, gHP_dealt, 4 - jumpifability USER, ABILITY_LIQUID_OOZE, BattleScript_1D907D + copyword gBattleMoveDamage, gHP_dealt + jumpifability USER, ABILITY_LIQUID_OOZE, BattleScript_LeechSeedTurnPrintLiquidOoze manipulatedamage 0 - setbyte gUnknown_02024D1F + 0x4, 3 - goto BattleScript_1D9083 + setbyte cMULTISTRING_CHOOSER, 3 + goto BattleScript_LeechSeedTurnPrintAndUpdateHp -BattleScript_1D907D: @ 81D907D - setbyte gUnknown_02024D1F + 0x4, 4 +BattleScript_LeechSeedTurnPrintLiquidOoze: @ 81D907D + setbyte cMULTISTRING_CHOOSER, 4 -BattleScript_1D9083: @ 81D9083 - orword gHitMarker, 0x100100 +BattleScript_LeechSeedTurnPrintAndUpdateHp: @ 81D9083 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate TARGET datahpupdate TARGET - printfromtable BattleTextList_40154C + printfromtable gLeechSeedStringIds waitmessage 64 - tryfaintmon USER, 0, 0x0 - tryfaintmon TARGET, 0, 0x0 + tryfaintmon USER, FALSE, NULL + tryfaintmon TARGET, FALSE, NULL end2 BattleScript_BideStoringEnergy:: @ 81D90A7 printstring BATTLE_TEXT_StoringEnergy waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd BattleScript_BideAttack:: @ 81D90B2 printstring BATTLE_TEXT_UnleashedEnergy waitmessage 64 - accuracycheck BattleScript_1D6F77, 0 + accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE typecalc - bicbyte gBattleMoveFlags, 6 - copyarray gBattleMoveDamage, gSharedMem + 0x16090, 4 + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + copyword gBattleMoveDamage, sBIDE_DMG adjustsetdamage - setbyte gSharedMem + 0x16002, 1 + setbyte sANIM_TURN, 1 attackanimation waitanimation effectivenesssound @@ -3360,32 +3356,32 @@ BattleScript_BideAttack:: @ 81D90B2 datahpupdate TARGET resultmessage waitmessage 64 - tryfaintmon TARGET, 0, 0x0 - goto BattleScript_EndTurn + tryfaintmon TARGET, FALSE, NULL + goto BattleScript_MoveEnd BattleScript_BideNoEnergyToAttack:: @ 81D90F1 printstring BATTLE_TEXT_UnleashedEnergy waitmessage 64 goto BattleScript_ButItFailed -gUnknown_081D90FC:: @ 81D90FC +BattleScript_SuccessForceOut:: @ 81D90FC attackanimation waitanimation switchoutabilities TARGET returntoball TARGET waitstate - jumpifhalfword 4, gBattleTypeFlags, 8, BattleScript_1D9116 + jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_TrainerBattleForceOut setbyte gBattleOutcome, 5 finishaction -BattleScript_1D9116: @ 81D9116 +BattleScript_TrainerBattleForceOut: @ 81D9116 getswitchedmondata TARGET switchindataupdate TARGET switchinanim TARGET, 0 waitstate printstring BATTLE_TEXT_DraggedOut switchineffects TARGET - goto BattleScript_EndTurn + goto BattleScript_MoveEnd BattleScript_MistProtected:: @ 81D9128 pause 32 @@ -3393,7 +3389,7 @@ BattleScript_MistProtected:: @ 81D9128 waitmessage 64 return -gUnknown_081D9132:: @ 81D9132 +BattleScript_RageIsBuilding:: @ 81D9132 printstring BATTLE_TEXT_RageBuilding waitmessage 64 return @@ -3401,7 +3397,7 @@ gUnknown_081D9132:: @ 81D9132 BattleScript_MoveUsedIsDisabled:: @ 81D9139 printstring BATTLE_TEXT_MoveIsDisabled waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd BattleScript_MoveSelectionDisabledMove:: @ 81D9144 printselectionstring BATTLE_TEXT_MoveIsDisabled @@ -3417,58 +3413,58 @@ BattleScript_EncoredNoMore:: @ 81D914F waitmessage 64 end2 -gUnknown_081D9156:: @ 81D9156 +BattleScript_DestinyBondTakesLife:: @ 81D9156 printstring BATTLE_TEXT_DestinyBondTaken waitmessage 64 - orword gHitMarker, 0x100100 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate USER datahpupdate USER - tryfaintmon USER, 0, 0x0 + tryfaintmon USER, FALSE, NULL return -gUnknown_081D9171:: @ 81D9171 - orword gHitMarker, 0x100100 +BattleScript_SpikesOnAttacker:: @ 81D9171 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate USER datahpupdate USER - call BattleScript_1D91FB - tryfaintmon USER, 0, 0x0 - tryfaintmon USER, 1, BattleScript_1D9192 + call BattleScript_PrintHurtBySpikes + tryfaintmon USER, FALSE, NULL + tryfaintmon USER, TRUE, BattleScript_SpikesOnAttackerFainted return -BattleScript_1D9192: @ 81D9192 - setbyte gSharedMem + 0x1600F, 0 - getexp 1 - goto gUnknown_081D8C7B +BattleScript_SpikesOnAttackerFainted: @ 81D9192 + setbyte sGIVEEXP_STATE, 0 + getexp USER + goto BattleScript_HandleFaintedMon -gUnknown_081D919F:: @ 81D919F - orword gHitMarker, 0x100100 +BattleScript_SpikesOnTarget:: @ 81D919F + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate TARGET datahpupdate TARGET - call BattleScript_1D91FB - tryfaintmon TARGET, 0, 0x0 - tryfaintmon TARGET, 1, BattleScript_1D91C0 + call BattleScript_PrintHurtBySpikes + tryfaintmon TARGET, FALSE, NULL + tryfaintmon TARGET, TRUE, BattleScript_SpikesOnTargetFainted return -BattleScript_1D91C0: @ 81D91C0 - setbyte gSharedMem + 0x1600F, 0 - getexp 0 - goto gUnknown_081D8C7B +BattleScript_SpikesOnTargetFainted: @ 81D91C0 + setbyte sGIVEEXP_STATE, 0 + getexp TARGET + goto BattleScript_HandleFaintedMon -gUnknown_081D91CD:: @ 81D91CD - orword gHitMarker, 0x100100 +BattleScript_SpikesOngBank1:: @ 81D91CD + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate 3 datahpupdate 3 - call BattleScript_1D91FB - tryfaintmon 3, 0, 0x0 - tryfaintmon 3, 1, BattleScript_1D91EE + call BattleScript_PrintHurtBySpikes + tryfaintmon GBANK_1, FALSE, NULL + tryfaintmon GBANK_1, TRUE, BattleScript_SpikesOngBank1Fainted return -BattleScript_1D91EE: @ 81D91EE - setbyte gSharedMem + 0x1600F, 0 +BattleScript_SpikesOngBank1Fainted: @ 81D91EE + setbyte sGIVEEXP_STATE, 0 getexp 3 - goto gUnknown_081D8C7B + goto BattleScript_HandleFaintedMon -BattleScript_1D91FB: @ 81D91FB +BattleScript_PrintHurtBySpikes: @ 81D91FB printstring BATTLE_TEXT_SpikesHurt waitmessage 64 return @@ -3476,10 +3472,10 @@ BattleScript_1D91FB: @ 81D91FB BattleScript_PerishSongHits:: @ 81D9202 printstring BATTLE_TEXT_PerishSongFell waitmessage 64 - orword gHitMarker, 0x100100 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate USER datahpupdate USER - tryfaintmon USER, 0, 0x0 + tryfaintmon USER, FALSE, NULL end2 BattleScript_PerishSongTimerGoesDown:: @ 81D921D @@ -3488,45 +3484,45 @@ BattleScript_PerishSongTimerGoesDown:: @ 81D921D end2 BattleScript_AllStatsUp:: @ 81D9224 - jumpifstat USER, 3, 1, 12, BattleScript_1D9251 - jumpifstat USER, 3, 2, 12, BattleScript_1D9251 - jumpifstat USER, 3, 3, 12, BattleScript_1D9251 - jumpifstat USER, 3, 4, 12, BattleScript_1D9251 - jumpifstat USER, 0, 5, 12, BattleScript_1D92BF - -BattleScript_1D9251: @ 81D9251 - setbyte gSharedMem + 0x160DC, 0 + jumpifstat USER, LESS_THAN, ATTACK, 12, BattleScript_AllStatsUpAtk + jumpifstat USER, LESS_THAN, DEFENSE, 12, BattleScript_AllStatsUpAtk + jumpifstat USER, LESS_THAN, SPEED, 12, BattleScript_AllStatsUpAtk + jumpifstat USER, LESS_THAN, SP_ATTACK, 12, BattleScript_AllStatsUpAtk + jumpifstat USER, EQUAL, SP_DEFENSE, 12, BattleScript_AllStatsUpRet + +BattleScript_AllStatsUpAtk: @ 81D9251 + setbyte sFIELD_1B, 0 playstatchangeanimation USER, 62, 0 - setbyte gSharedMem + 0x1601E, 17 - statbuffchange 65, BattleScript_1D926F - printfromtable BattleTextList_401570 + setstatchanger ATTACK, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_AllStatsUpDef + printfromtable gStatUpStringIds waitmessage 64 -BattleScript_1D926F: @ 81D926F - setbyte gSharedMem + 0x1601E, 18 - statbuffchange 65, BattleScript_1D9283 - printfromtable BattleTextList_401570 +BattleScript_AllStatsUpDef: @ 81D926F + setstatchanger DEFENSE, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_AllStatsUpSpeed + printfromtable gStatUpStringIds waitmessage 64 -BattleScript_1D9283: @ 81D9283 - setbyte gSharedMem + 0x1601E, 19 - statbuffchange 65, BattleScript_1D9297 - printfromtable BattleTextList_401570 +BattleScript_AllStatsUpSpeed: @ 81D9283 + setstatchanger SPEED, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_AllStatsUpSpAtk + printfromtable gStatUpStringIds waitmessage 64 -BattleScript_1D9297: @ 81D9297 - setbyte gSharedMem + 0x1601E, 20 - statbuffchange 65, BattleScript_1D92AB - printfromtable BattleTextList_401570 +BattleScript_AllStatsUpSpAtk: @ 81D9297 + setstatchanger SP_ATTACK, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_AllStatsUpSpDef + printfromtable gStatUpStringIds waitmessage 64 -BattleScript_1D92AB: @ 81D92AB - setbyte gSharedMem + 0x1601E, 21 - statbuffchange 65, BattleScript_1D92BF - printfromtable BattleTextList_401570 +BattleScript_AllStatsUpSpDef: @ 81D92AB + setstatchanger SP_DEFENSE, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_AllStatsUpRet + printfromtable gStatUpStringIds waitmessage 64 -BattleScript_1D92BF: @ 81D92BF +BattleScript_AllStatsUpRet: @ 81D92BF return BattleScript_RapidSpinAway:: @ 81D92C0 @@ -3548,26 +3544,26 @@ BattleScript_SpikesFree:: @ 81D92D0 waitmessage 64 return -BattleScript_FutureSightHits:: @ 81D92D7 +BattleScript_MonTookFutureAttack:: @ 81D92D7 printstring BATTLE_TEXT_TookAttack waitmessage 64 - jumpifbyte 1, gUnknown_02024D1F + 0x4, 0, BattleScript_1D92F4 - accuracycheck BattleScript_1D934B, 248 - goto BattleScript_1D92FB + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0, BattleScript_CheckDoomDesireMiss + accuracycheck BattleScript_FutureAttackMiss, 248 + goto BattleScript_FutureAttackAnimate -BattleScript_1D92F4: @ 81D92F4 - accuracycheck BattleScript_1D934B, 353 +BattleScript_CheckDoomDesireMiss: @ 81D92F4 + accuracycheck BattleScript_FutureAttackMiss, 353 -BattleScript_1D92FB: @ 81D92FB +BattleScript_FutureAttackAnimate: @ 81D92FB adjustnormaldamage2 - jumpifbyte 1, gUnknown_02024D1F + 0x4, 0, BattleScript_1D9313 - playanimation USER, B_ANIM_FUTURE_SIGHT_HIT, 0x0 - goto BattleScript_1D931A + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0, BattleScript_FutureHitAnimDoomDesire + playanimation USER, B_ANIM_FUTURE_SIGHT_HIT, NULL + goto BattleScript_DoFutureAttackHit -BattleScript_1D9313: @ 81D9313 - playanimation USER, B_ANIM_DOOM_DESIRE_HIT, 0x0 +BattleScript_FutureHitAnimDoomDesire: @ 81D9313 + playanimation USER, B_ANIM_DOOM_DESIRE_HIT, NULL -BattleScript_1D931A: @ 81D931A +BattleScript_DoFutureAttackHit: @ 81D931A effectivenesssound hitanimation TARGET waitstate @@ -3575,21 +3571,21 @@ BattleScript_1D931A: @ 81D931A datahpupdate TARGET resultmessage waitmessage 64 - tryfaintmon TARGET, 0, 0x0 - atk24 BattleScript_1D9332 + tryfaintmon TARGET, FALSE, NULL + atk24 BattleScript_FutureAttackEnd -BattleScript_1D9332: @ 81D9332 - setbyte gSharedMem + 0x1600C, 0 +BattleScript_FutureAttackEnd: @ 81D9332 + setbyte sMOVEEND_STATE, 0 moveend 1, 0 - setbyte gSharedMem + 0x1600C, 8 + setbyte sMOVEEND_STATE, 8 moveend 2, 14 setbyte gBattleMoveFlags, 0 end2 -BattleScript_1D934B: @ 81D934B +BattleScript_FutureAttackMiss: @ 81D934B pause 32 setbyte gBattleMoveFlags, 0 - orbyte gBattleMoveFlags, 32 + orbyte gBattleMoveFlags, MOVESTATUS_FAILED resultmessage waitmessage 64 setbyte gBattleMoveFlags, 0 @@ -3608,14 +3604,14 @@ BattleScript_NoPPForMove:: @ 81D936D pause 32 printstring BATTLE_TEXT_NoPP2 waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd BattleScript_MoveSelectionTormented:: @ 81D937C printselectionstring BATTLE_TEXT_TormentNoUse endselectionscript printstring BATTLE_TEXT_TormentNoUse waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd BattleScript_MoveSelectionTaunted:: @ 81D938B printselectionstring BATTLE_TEXT_TauntNoUse @@ -3624,21 +3620,21 @@ BattleScript_MoveSelectionTaunted:: @ 81D938B BattleScript_MoveUsedIsTaunted:: @ 81D938F printstring BATTLE_TEXT_TauntNoUse waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd BattleScript_WishComesTrue:: @ 81D939A - trywish 1, BattleScript_1D93C1 - playanimation TARGET, B_ANIM_WISH_HEAL, 0x0 + trywish 1, BattleScript_WishButFullHp + playanimation TARGET, B_ANIM_WISH_HEAL, NULL printstring BATTLE_TEXT_WishTrue waitmessage 64 - orword gHitMarker, 0x100 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate TARGET datahpupdate TARGET printstring BATTLE_TEXT_RegainedHealth waitmessage 64 end2 -BattleScript_1D93C1: @ 81D93C1 +BattleScript_WishButFullHp: @ 81D93C1 printstring BATTLE_TEXT_WishTrue waitmessage 64 pause 32 @@ -3647,43 +3643,43 @@ BattleScript_1D93C1: @ 81D93C1 end2 BattleScript_IngrainTurnHeal:: @ 81D93D1 - playanimation USER, B_ANIM_INGRAIN_HEAL, 0x0 + playanimation USER, B_ANIM_INGRAIN_HEAL, NULL printstring BATTLE_TEXT_AbsorbNutrients waitmessage 64 - orword gHitMarker, 0x100 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate USER datahpupdate USER end2 -BattleScript_1D93EC: @ 81D93EC +BattleScript_PrintMonIsRooted: @ 81D93EC pause 32 printstring BATTLE_TEXT_AnchoredItself waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd BattleScript_AtkDefDown:: @ 81D93FA - setbyte gSharedMem + 0x160DC, 0 + setbyte sFIELD_1B, 0 playstatchangeanimation USER, 6, 13 playstatchangeanimation USER, 2, 9 - setbyte gSharedMem + 0x1601E, 145 - statbuffchange 193, BattleScript_1D9427 - jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D9427 - printfromtable BattleTextList_40157C + setstatchanger ATTACK, 1, TRUE + statbuffchange AFFECTS_USER | CERTAIN | 0x1, BattleScript_1D9427 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_1D9427 + printfromtable gStatDownStringIds waitmessage 64 BattleScript_1D9427: @ 81D9427 playstatchangeanimation USER, 4, 9 - setbyte gSharedMem + 0x1601E, 146 - statbuffchange 193, BattleScript_1D944A - jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D944A - printfromtable BattleTextList_40157C + setstatchanger DEFENSE, 1, TRUE + statbuffchange AFFECTS_USER | CERTAIN | 0x1, BattleScript_1D944A + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_1D944A + printfromtable gStatDownStringIds waitmessage 64 BattleScript_1D944A: @ 81D944A return BattleScript_KnockedOff:: @ 81D944B - playanimation TARGET, B_ANIM_ITEM_KNOCKOFF, 0x0 + playanimation TARGET, B_ANIM_ITEM_KNOCKOFF, NULL printstring BATTLE_TEXT_KnockedOffItem waitmessage 64 return @@ -3691,13 +3687,13 @@ BattleScript_KnockedOff:: @ 81D944B BattleScript_MoveUsedIsImprisoned:: @ 81D9459 printstring BATTLE_TEXT_SealedNoUse waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd BattleScript_MoveSelectionImprisoned:: @ 81D9464 printselectionstring BATTLE_TEXT_SealedNoUse endselectionscript -gUnknown_081D9468:: @ 81D9468 +BattleScript_SelectingImprisionedMoveInPalace:: @ 81D9468 printstring BATTLE_TEXT_GrudgeLosePP waitmessage 64 return @@ -3708,7 +3704,7 @@ BattleScript_MagicCoatBounce:: @ 81D946F pause 32 printstring BATTLE_TEXT_MagicCoatBounce waitmessage 64 - orword gHitMarker, 0x800c00 + orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000 setmagiccoattarget USER return @@ -3716,10 +3712,10 @@ BattleScript_SnatchedMove:: @ 81D9487 attackstring ppreduce snatchsetbanks - playanimation TARGET, B_ANIM_SNATCH_MOVE, 0x0 + playanimation TARGET, B_ANIM_SNATCH_MOVE, NULL printstring BATTLE_TEXT_SnatchedMove waitmessage 64 - orword gHitMarker, 0x800c00 + orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000 atk5f return @@ -3734,12 +3730,12 @@ BattleScript_OneHitKOMsg:: @ 81D94A9 return BattleScript_SAtkDown2:: @ 81D94B0 - setbyte gSharedMem + 0x160DC, 0 + setbyte sFIELD_1B, 0 playstatchangeanimation USER, 16, 11 - setbyte gSharedMem + 0x1601E, 164 - statbuffchange 193, BattleScript_1D94D9 - jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D94D9 - printfromtable BattleTextList_40157C + setstatchanger SP_ATTACK, 2, TRUE + statbuffchange AFFECTS_USER | CERTAIN | 0x1, BattleScript_1D94D9 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_1D94D9 + printfromtable gStatDownStringIds waitmessage 64 BattleScript_1D94D9: @ 81D94D9 @@ -3748,7 +3744,7 @@ BattleScript_1D94D9: @ 81D94D9 BattleScript_FocusPunchSetUp:: @ 81D94DA printstring BATTLE_TEXT_Terminator2 waitmessage 1 - playanimation USER, B_ANIM_FOCUS_PUNCH_SET_UP, 0x0 + playanimation USER, B_ANIM_FOCUS_PUNCH_SET_UP, NULL printstring BATTLE_TEXT_TightenFocus waitmessage 64 end2 @@ -3757,79 +3753,79 @@ BattleScript_MoveUsedIsAsleep:: @ 81D94EE printstring BATTLE_TEXT_FastAsleep waitmessage 64 statusanimation USER - goto BattleScript_EndTurn + goto BattleScript_MoveEnd BattleScript_MoveUsedWokeUp:: @ 81D94FB - bicword gHitMarker, 0x10 - printfromtable BattleTextList_401562 + bicword gHitMarker, HITMARKER_x10 + printfromtable gWokeUpStringIds waitmessage 64 - updatestatusicon 1 + updatestatusicon USER return -gUnknown_081D950F:: @ 81D950F +BattleScript_MonWokeUpInUproar:: @ 81D950F printstring BATTLE_TEXT_UproarWoke waitmessage 64 - updatestatusicon 1 + updatestatusicon USER end2 BattleScript_PoisonTurnDmg:: @ 81D9518 printstring BATTLE_TEXT_PoisonHurt waitmessage 64 -BattleScript_1D951E: @ 81D951E +BattleScript_DoStatusTurnDmg: @ 81D951E statusanimation USER -BattleScript_1D9520: @ 81D9520 - orword gHitMarker, 0x100100 +BattleScript_DoTurnDmg: @ 81D9520 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate USER datahpupdate USER - tryfaintmon USER, 0, 0x0 - atk24 BattleScript_1D9539 + tryfaintmon USER, FALSE, NULL + atk24 BattleScript_DoTurnDmgEnd -BattleScript_1D9539: @ 81D9539 +BattleScript_DoTurnDmgEnd: @ 81D9539 end2 BattleScript_BurnTurnDmg:: @ 81D953A printstring BATTLE_TEXT_BurnHurt waitmessage 64 - goto BattleScript_1D951E + goto BattleScript_DoStatusTurnDmg BattleScript_MoveUsedIsFrozen:: @ 81D9545 printstring BATTLE_TEXT_FrozenSolid waitmessage 64 statusanimation USER - goto BattleScript_EndTurn + goto BattleScript_MoveEnd BattleScript_MoveUsedUnfroze:: @ 81D9552 - printfromtable BattleTextList_4015C4 + printfromtable gGotDefrostedStringIds waitmessage 64 - updatestatusicon 1 + updatestatusicon USER return -gUnknown_081D955D:: @ 81D955D +BattleScript_DefrostedViaFireMove:: @ 81D955D printstring BATTLE_TEXT_DefendingDefrosted waitmessage 64 - updatestatusicon 0 + updatestatusicon TARGET return BattleScript_MoveUsedIsParalyzed:: @ 81D9566 printstring BATTLE_TEXT_Paralyzed3 waitmessage 64 statusanimation USER - goto BattleScript_EndTurn + goto BattleScript_MoveEnd BattleScript_MoveUsedFlinched:: @ 81D9573 printstring BATTLE_TEXT_Flinched waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -gUnknown_081D957E:: @ 81D957E - printfromtable BattleTextList_40155A +BattleScript_PrintUproarOverTurns:: @ 81D957E + printfromtable gUproarOverTurnStringIds waitmessage 64 end2 BattleScript_ThrashConfuses:: @ 81D9587 - chosenstatusanimation 1, 1, S_CONFUSED + chosenstatus2animation USER, STATUS2_CONFUSION printstring BATTLE_TEXT_FatigueConfuse waitmessage 64 end2 @@ -3837,10 +3833,10 @@ BattleScript_ThrashConfuses:: @ 81D9587 BattleScript_MoveUsedIsConfused:: @ 81D9595 printstring BATTLE_TEXT_Confused waitmessage 64 - status2animation 1, 0x7 - jumpifbyte 0, gUnknown_02024D1F + 0x4, 0, BattleScript_1D95D3 + status2animation USER, STATUS2_CONFUSION + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0, BattleScript_MoveUsedIsConfusedRet -BattleScript_1D95AC: @ 81D95AC +BattleScript_DoSelfConfusionDmg: @ 81D95AC cancelmultiturnmoves USER adjustnormaldamage2 printstring BATTLE_TEXT_HurtItself @@ -3848,13 +3844,13 @@ BattleScript_1D95AC: @ 81D95AC effectivenesssound hitanimation USER waitstate - orword gHitMarker, 0x100100 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate USER datahpupdate USER - tryfaintmon USER, 0, 0x0 - goto BattleScript_EndTurn + tryfaintmon USER, FALSE, NULL + goto BattleScript_MoveEnd -BattleScript_1D95D3: @ 81D95D3 +BattleScript_MoveUsedIsConfusedRet: @ 81D95D3 return BattleScript_MoveUsedIsConfusedNoMore:: @ 81D95D4 @@ -3862,16 +3858,16 @@ BattleScript_MoveUsedIsConfusedNoMore:: @ 81D95D4 waitmessage 64 return -gUnknown_081D95DB:: @ 81D95DB +BattleScript_PrintPayDayMoneyString:: @ 81D95DB printstring BATTLE_TEXT_PickedUpYen waitmessage 64 return BattleScript_WrapTurnDmg:: @ 81D95E2 - playanimation USER, B_ANIM_TURN_TRAP, gSharedMem + 0x160A4 + playanimation USER, B_ANIM_TURN_TRAP, sANIM_ARG1 printstring BATTLE_TEXT_HurtBy waitmessage 64 - goto BattleScript_1D9520 + goto BattleScript_DoTurnDmg BattleScript_WrapEnds:: @ 81D95F4 printstring BATTLE_TEXT_FreedFrom @@ -3881,119 +3877,119 @@ BattleScript_WrapEnds:: @ 81D95F4 BattleScript_MoveUsedIsInLove:: @ 81D95FB printstring BATTLE_TEXT_InLoveWith waitmessage 64 - status2animation 1, 0xf0000 + status2animation USER, STATUS2_INFATUATION return BattleScript_MoveUsedIsParalyzedCantAttack:: @ 81D9608 printstring BATTLE_TEXT_ImmobilizedBy waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd BattleScript_NightmareTurnDmg:: @ 81D9613 printstring BATTLE_TEXT_NightmareLock waitmessage 64 - status2animation 1, Start - goto BattleScript_1D9520 + status2animation USER, STATUS2_NIGHTMARE + goto BattleScript_DoTurnDmg BattleScript_CurseTurnDmg:: @ 81D9624 printstring BATTLE_TEXT_CurseAfflict waitmessage 64 - status2animation 1, 0x10000000 - goto BattleScript_1D9520 + status2animation USER, STATUS2_CURSED + goto BattleScript_DoTurnDmg BattleScript_TargetPRLZHeal:: @ 81D9635 printstring BATTLE_TEXT_ParalysisHealed waitmessage 64 - updatestatusicon 0 + updatestatusicon TARGET return -BattleScript_1D963E:: @ 81D963E - statusanimation 2 - printfromtable BattleTextList_4015B8 +BattleScript_MoveEffectSleep:: @ 81D963E + statusanimation EFFECT_BANK + printfromtable gFellAsleepStringIds waitmessage 64 -BattleScript_1D9648: @ 81D9648 - updatestatusicon 2 +BattleScript_UpdateEffectStatusIconRet: @ 81D9648 + updatestatusicon EFFECT_BANK waitstate return BattleScript_YawnMakesAsleep:: @ 81D964C - statusanimation 2 + statusanimation EFFECT_BANK printstring BATTLE_TEXT_FellAsleep waitmessage 64 - updatestatusicon 2 + updatestatusicon EFFECT_BANK waitstate makevisible 2 end2 -BattleScript_1D965A:: @ 81D965A - statusanimation 2 - printfromtable BattleTextList_4015B0 +BattleScript_MoveEffectPoison:: @ 81D965A + statusanimation EFFECT_BANK + printfromtable gGotPoisonedStringIds waitmessage 64 - goto BattleScript_1D9648 + goto BattleScript_UpdateEffectStatusIconRet -BattleScript_1D9669:: @ 81D9669 - statusanimation 2 - printfromtable BattleTextList_4015BC +BattleScript_MoveEffectBurn:: @ 81D9669 + statusanimation EFFECT_BANK + printfromtable gGotBurnedStringIds waitmessage 64 - goto BattleScript_1D9648 + goto BattleScript_UpdateEffectStatusIconRet -BattleScript_1D9678:: @ 81D9678 - statusanimation 2 - printfromtable BattleTextList_4015C0 +BattleScript_MoveEffectFreeze:: @ 81D9678 + statusanimation EFFECT_BANK + printfromtable gGotFrozenStringIds waitmessage 64 - goto BattleScript_1D9648 + goto BattleScript_UpdateEffectStatusIconRet -BattleScript_1D9687:: @ 81D9687 - statusanimation 2 - printfromtable BattleTextList_4015B4 +BattleScript_MoveEffectParalysis:: @ 81D9687 + statusanimation EFFECT_BANK + printfromtable gGotParalyzedStringIds waitmessage 64 - goto BattleScript_1D9648 + goto BattleScript_UpdateEffectStatusIconRet -BattleScript_1D9696:: @ 81D9696 +BattleScript_MoveEffectUproar:: @ 81D9696 printstring BATTLE_TEXT_UproarCaused waitmessage 64 return -BattleScript_1D969D:: @ 81D969D - statusanimation 2 +BattleScript_MoveEffectToxic:: @ 81D969D + statusanimation EFFECT_BANK printstring BATTLE_TEXT_BadlyPoisoned waitmessage 64 - goto BattleScript_1D9648 + goto BattleScript_UpdateEffectStatusIconRet -BattleScript_1D96AA:: @ 81D96AA +BattleScript_MoveEffectPayDay:: @ 81D96AA printstring BATTLE_TEXT_CoinScatter waitmessage 64 return -BattleScript_1D96B1:: @ 81D96B1 - printfromtable BattleTextList_401594 +BattleScript_MoveEffectWrap:: @ 81D96B1 + printfromtable gWrappedStringIds waitmessage 64 return -BattleScript_1D96BA:: @ 81D96BA - chosenstatusanimation 2, 1, S_CONFUSED +BattleScript_MoveEffectConfusion:: @ 81D96BA + chosenstatus2animation EFFECT_BANK, STATUS2_CONFUSION printstring BATTLE_TEXT_BecameConfused waitmessage 64 return -BattleScript_1D96C8:: @ 81D96C8 - jumpifhalfword 0, gCurrentMove, 165, BattleScript_1D96DB - jumpifability USER, ABILITY_ROCK_HEAD, BattleScript_1D96F5 +BattleScript_MoveEffectRecoil33:: @ 81D96C8 + jumpifmove MOVE_STRUGGLE, BattleScript_DoRecoil33 + jumpifability USER, ABILITY_ROCK_HEAD, BattleScript_Recoil33End -BattleScript_1D96DB: @ 81D96DB - orword gHitMarker, 0x100100 +BattleScript_DoRecoil33: @ 81D96DB + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate USER datahpupdate USER printstring BATTLE_TEXT_HitRecoil waitmessage 64 - tryfaintmon USER, 0, 0x0 + tryfaintmon USER, FALSE, NULL -BattleScript_1D96F5: @ 81D96F5 +BattleScript_Recoil33End: @ 81D96F5 return BattleScript_ItemSteal:: @ 81D96F6 - playanimation TARGET, B_ANIM_ITEM_STEAL, 0x0 + playanimation TARGET, B_ANIM_ITEM_STEAL, NULL printstring BATTLE_TEXT_StoleSomething waitmessage 64 return @@ -4002,12 +3998,12 @@ BattleScript_DrizzleActivates:: @ 81D9704 pause 32 printstring BATTLE_TEXT_RainMade waitstate - playanimation 7, B_ANIM_RAIN_CONTINUES, 0x0 - call BattleScript_1D9761 + playanimation 7, B_ANIM_RAIN_CONTINUES, NULL + call BattleScript_WeatherFormChanges end3 BattleScript_SpeedBoostActivates:: @ 81D9718 - playanimation USER, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4 + playanimation USER, B_ANIM_STATS_CHANGE, sANIM_ARG1 printstring BATTLE_TEXT_SpeedRisen waitmessage 64 end3 @@ -4021,7 +4017,7 @@ BattleScript_TraceActivates:: @ 81D9726 BattleScript_RainDishActivates:: @ 81D9730 printstring BATTLE_TEXT_RestoredHPByItem waitmessage 64 - orword gHitMarker, 0x100 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate USER datahpupdate USER end3 @@ -4030,23 +4026,23 @@ BattleScript_SandstreamActivates:: @ 81D9744 pause 32 printstring BATTLE_TEXT_WhipSandstorm waitstate - playanimation 7, B_ANIM_SANDSTORM_CONTINUES, 0x0 - call BattleScript_1D9761 + playanimation 7, B_ANIM_SANDSTORM_CONTINUES, NULL + call BattleScript_WeatherFormChanges end3 BattleScript_ShedSkinActivates:: @ 81D9758 printstring BATTLE_TEXT_CuredProblem waitmessage 64 - updatestatusicon 1 + updatestatusicon USER end3 -BattleScript_1D9761: @ 81D9761 - setbyte gSharedMem + 0x16003, 0 +BattleScript_WeatherFormChanges: @ 81D9761 + setbyte sBANK, 0 -BattleScript_1D9767: @ 81D9767 +BattleScript_WeatherFormChangesLoop: @ 81D9767 trycastformdatachange - addbyte gSharedMem + 0x16003, 1 - jumpifarraynotequal gSharedMem + 0x16003, gNoOfAllBanks, 1, BattleScript_1D9767 + addbyte sBANK, 1 + jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_WeatherFormChangesLoop return BattleScript_CastformChange:: @ 81D977D @@ -4069,18 +4065,18 @@ BattleScript_1D9792: @ 81D9792 gUnknown_081D9795:: @ 81D9795 setbyte gBankTarget, 0 - setbyte gSharedMem + 0x1601E, 145 + setstatchanger ATTACK, 1, TRUE BattleScript_1D97A1: @ 81D97A1 trygetintimidatetarget BattleScript_1D97EF - jumpifstatus2 TARGET, S_SUBSTITUTE, BattleScript_1D97E4 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_1D97E4 jumpifability TARGET, ABILITY_CLEAR_BODY, BattleScript_1D97F0 jumpifability TARGET, ABILITY_HYPER_CUTTER, BattleScript_1D97F0 jumpifability TARGET, ABILITY_WHITE_SMOKE, BattleScript_1D97F0 statbuffchange 33, BattleScript_1D97E4 - jumpifbyte 2, gUnknown_02024D1F + 0x4, 1, BattleScript_1D97E4 + jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 1, BattleScript_1D97E4 setgraphicalstatchangevalues - playanimation TARGET, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4 + playanimation TARGET, B_ANIM_STATS_CHANGE, sANIM_ARG1 printstring BATTLE_TEXT_CutsAttack waitmessage 64 @@ -4101,8 +4097,8 @@ BattleScript_DroughtActivates:: @ 81D97FE pause 32 printstring BATTLE_TEXT_SunIntensified waitstate - playanimation 7, B_ANIM_SUN_CONTINUES, 0x0 - call BattleScript_1D9761 + playanimation 7, B_ANIM_SUN_CONTINUES, NULL + call BattleScript_WeatherFormChanges end3 BattleScript_TookAttack:: @ 81D9812 @@ -4110,20 +4106,20 @@ BattleScript_TookAttack:: @ 81D9812 pause 32 printstring BATTLE_TEXT_TookAttack2 waitmessage 64 - orword gHitMarker, 0x400 + orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED return -gUnknown_081D9826:: @ 81D9826 +BattleScript_SturdyPreventsOHKO:: @ 81D9826 pause 32 printstring BATTLE_TEXT_ProtectedBy pause 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -gUnknown_081D9834:: @ 81D9834 +BattleScript_DampStopsExplosion:: @ 81D9834 pause 32 printstring BATTLE_TEXT_PreventedBy pause 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd BattleScript_MoveHPDrain_PPLoss:: @ 81D9842 ppreduce @@ -4131,13 +4127,13 @@ BattleScript_MoveHPDrain_PPLoss:: @ 81D9842 BattleScript_MoveHPDrain:: @ 81D9843 attackstring pause 32 - orword gHitMarker, 0x100 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate TARGET datahpupdate TARGET printstring BATTLE_TEXT_HPRestoredUsing waitmessage 64 - orbyte gBattleMoveFlags, 8 - goto BattleScript_EndTurn + orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED + goto BattleScript_MoveEnd BattleScript_MoveHPDrain_FullHP_PPLoss:: @ 81D9865 ppreduce @@ -4147,8 +4143,8 @@ BattleScript_MoveHPDrain_FullHP:: @ 81D9866 pause 32 printstring BATTLE_TEXT_MadeUseless waitmessage 64 - orbyte gBattleMoveFlags, 8 - goto BattleScript_EndTurn + orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED + goto BattleScript_MoveEnd BattleScript_FlashFireBoost_PPLoss:: @ 81D987B ppreduce @@ -4156,15 +4152,15 @@ BattleScript_FlashFireBoost_PPLoss:: @ 81D987B BattleScript_FlashFireBoost:: @ 81D987C attackstring pause 32 - printfromtable BattleTextList_401648 + printfromtable gFlashFireStringIds waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -BattleScript_1D988D: @ 81D988D +BattleScript_AbilityPreventsPhasingOut: @ 81D988D pause 32 printstring BATTLE_TEXT_AnchorsItself waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd BattleScript_AbilityNoStatLoss:: @ 81D989B pause 32 @@ -4174,19 +4170,19 @@ BattleScript_AbilityNoStatLoss:: @ 81D989B BattleScript_BRNPrevention:: @ 81D98A5 pause 32 - printfromtable BattleTextList_401630 + printfromtable gBRNPreventionStringIds waitmessage 64 return BattleScript_PRLZPrevention:: @ 81D98B1 pause 32 - printfromtable BattleTextList_401636 + printfromtable gPRLZPreventionStringIds waitmessage 64 return BattleScript_PSNPrevention:: @ 81D98BD pause 32 - printfromtable BattleTextList_40163C + printfromtable gPSNPreventionStringIds waitmessage 64 return @@ -4194,19 +4190,19 @@ BattleScript_ObliviousPreventsAttraction:: @ 81D98C9 pause 32 printstring BATTLE_TEXT_PreventedRomance waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd BattleScript_FlinchPrevention:: @ 81D98D7 pause 32 printstring BATTLE_TEXT_PreventedFlinching waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd -BattleScript_1D98E5: @ 81D98E5 +BattleScript_OwnTempoPrevents: @ 81D98E5 pause 32 printstring BATTLE_TEXT_PreventedConfusion waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd BattleScript_SoundproofProtected:: @ 81D98F3 attackstring @@ -4214,20 +4210,20 @@ BattleScript_SoundproofProtected:: @ 81D98F3 pause 32 printstring BATTLE_TEXT_BlocksOther waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd BattleScript_AbilityNoSpecificStatLoss:: @ 81D9903 pause 32 printstring BATTLE_TEXT_PreventedLoss waitmessage 64 - setbyte gUnknown_02024D1F + 0x4, 3 + setbyte cMULTISTRING_CHOOSER, 3 return BattleScript_NoItemSteal:: @ 81D9913 pause 32 printstring BATTLE_TEXT_MadeIneffective waitmessage 64 - goto BattleScript_EndTurn + goto BattleScript_MoveEnd BattleScript_ColorChangeActivates:: @ 81D9921 printstring BATTLE_TEXT_MadeType @@ -4235,16 +4231,16 @@ BattleScript_ColorChangeActivates:: @ 81D9921 return BattleScript_RoughSkinActivates:: @ 81D9928 - orword gHitMarker, 0x100100 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate USER datahpupdate USER printstring BATTLE_TEXT_HurtOther waitmessage 64 - tryfaintmon USER, 0, 0x0 + tryfaintmon USER, FALSE, NULL return BattleScript_CuteCharmActivates:: @ 81D9943 - status2animation 1, 0xf0000 + status2animation USER, STATUS2_INFATUATION printstring BATTLE_TEXT_InfatuatedPoke waitmessage 64 return @@ -4259,47 +4255,47 @@ BattleScript_SynchronizeActivates:: @ 81D9953 seteffectprimary return -gUnknown_081D9956:: @ 81D9956 +BattleScript_AbilityCuredStatus:: @ 81D9956 printstring BATTLE_TEXT_CuredOfProblem waitmessage 64 - updatestatusicon 10 + updatestatusicon SCRIPTING_BANK return gUnknown_081D995F:: @ 81D995F printstring BATTLE_TEXT_IgnoredOrdersSLP waitmessage 64 - setbyte gSharedMem + 0x1600C, 0 + setbyte sMOVEEND_STATE, 0 moveend 2, 16 end -gUnknown_081D996F:: @ 81D996F +BattleScript_IgnoresAndUsesRandomMove:: @ 81D996F printstring BATTLE_TEXT_IgnoredOrders waitmessage 64 jumptorandomattack TARGET BattleScript_MoveUsedLoafingAround:: @ 81D9977 - printfromtable BattleTextList_40160E + printfromtable gInobedientStringIds waitmessage 64 - setbyte gSharedMem + 0x1600C, 0 + setbyte sMOVEEND_STATE, 0 moveend 2, 16 end -gUnknown_081D9989:: @ 81D9989 +BattleScript_IgnoresAndFallsAsleep:: @ 81D9989 printstring BATTLE_TEXT_BeganNap waitmessage 64 - setbyte gUnknown_02024D1F + 0x2, 65 + setmoveeffect EFFECT_SLEEP | AFFECTS_USER seteffectprimary - setbyte gSharedMem + 0x1600C, 0 + setbyte sMOVEEND_STATE, 0 moveend 2, 16 end gUnknown_081D99A0:: @ 81D99A0 printstring BATTLE_TEXT_WontObey waitmessage 64 - goto BattleScript_1D95AC + goto BattleScript_DoSelfConfusionDmg BattleScript_SubstituteFade:: @ 81D99AB - playanimation TARGET, B_ANIM_SUBSTITUTE_FADE, 0x0 + playanimation TARGET, B_ANIM_SUBSTITUTE_FADE, NULL printstring BATTLE_TEXT_SubFaded return @@ -4308,11 +4304,11 @@ BattleScript_BerryCurePrlzEnd2:: @ 81D99B6 end2 BattleScript_BerryCureParRet:: @ 81D99BC - playanimation 10, B_ANIM_ITEM_EFFECT, 0x0 + playanimation 10, B_ANIM_ITEM_EFFECT, NULL printstring BATTLE_TEXT_CuredParalysis waitmessage 64 - updatestatusicon 10 - removeitem 10 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK return BattleScript_BerryCurePsnEnd2:: @ 81D99CE @@ -4320,11 +4316,11 @@ BattleScript_BerryCurePsnEnd2:: @ 81D99CE end2 BattleScript_BerryCurePsnRet:: @ 81D99D4 - playanimation 10, B_ANIM_ITEM_EFFECT, 0x0 + playanimation 10, B_ANIM_ITEM_EFFECT, NULL printstring BATTLE_TEXT_CuredPoison waitmessage 64 - updatestatusicon 10 - removeitem 10 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK return BattleScript_BerryCureBrnEnd2:: @ 81D99E6 @@ -4332,11 +4328,11 @@ BattleScript_BerryCureBrnEnd2:: @ 81D99E6 end2 BattleScript_BerryCureBrnRet:: @ 81D99EC - playanimation 10, B_ANIM_ITEM_EFFECT, 0x0 + playanimation 10, B_ANIM_ITEM_EFFECT, NULL printstring BATTLE_TEXT_CuredBurn waitmessage 64 - updatestatusicon 10 - removeitem 10 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK return BattleScript_BerryCureFrzEnd2:: @ 81D99FE @@ -4344,11 +4340,11 @@ BattleScript_BerryCureFrzEnd2:: @ 81D99FE end2 BattleScript_BerryCureFrzRet:: @ 81D9A04 - playanimation 10, B_ANIM_ITEM_EFFECT, 0x0 + playanimation 10, B_ANIM_ITEM_EFFECT, NULL printstring BATTLE_TEXT_CuredFreeze waitmessage 64 - updatestatusicon 10 - removeitem 10 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK return BattleScript_BerryCureSlpEnd2:: @ 81D9A16 @@ -4356,11 +4352,11 @@ BattleScript_BerryCureSlpEnd2:: @ 81D9A16 end2 BattleScript_BerryCureSlpRet:: @ 81D9A1C - playanimation 10, B_ANIM_ITEM_EFFECT, 0x0 + playanimation 10, B_ANIM_ITEM_EFFECT, NULL printstring BATTLE_TEXT_CuredSleep waitmessage 64 - updatestatusicon 10 - removeitem 10 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK return BattleScript_BerryCureConfusionEnd2:: @ 81D9A2E @@ -4368,22 +4364,22 @@ BattleScript_BerryCureConfusionEnd2:: @ 81D9A2E end2 BattleScript_BerryCureConfusionRet:: @ 81D9A34 - playanimation 10, B_ANIM_ITEM_EFFECT, 0x0 + playanimation 10, B_ANIM_ITEM_EFFECT, NULL printstring BATTLE_TEXT_CuredConfusion waitmessage 64 - removeitem 10 + removeitem SCRIPTING_BANK return -gUnknown_081D9A44:: @ 81D9A44 - call gUnknown_081D9A4A +BattleScript_BerryCureChosenStatusEnd2:: @ 81D9A44 + call BattleScript_BerryCureChosenStatusRet end2 -gUnknown_081D9A4A:: @ 81D9A4A - playanimation 10, B_ANIM_ITEM_EFFECT, 0x0 - printfromtable BattleTextList_40162C +BattleScript_BerryCureChosenStatusRet:: @ 81D9A4A + playanimation 10, B_ANIM_ITEM_EFFECT, NULL + printfromtable gBerryEffectStringIds waitmessage 64 - updatestatusicon 10 - removeitem 10 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK return BattleScript_WhiteHerbEnd2:: @ 81D9A5E @@ -4391,24 +4387,24 @@ BattleScript_WhiteHerbEnd2:: @ 81D9A5E end2 BattleScript_WhiteHerbRet:: @ 81D9A64 - playanimation 10, B_ANIM_ITEM_EFFECT, 0x0 + playanimation 10, B_ANIM_ITEM_EFFECT, NULL printstring BATTLE_TEXT_RestoredStatus waitmessage 64 - removeitem 10 + removeitem SCRIPTING_BANK return BattleScript_ItemHealHP_RemoveItem:: @ 81D9A74 - playanimation USER, B_ANIM_ITEM_EFFECT, 0x0 + playanimation USER, B_ANIM_ITEM_EFFECT, NULL printstring BATTLE_TEXT_RestoredHealth waitmessage 64 - orword gHitMarker, 0x100 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate USER datahpupdate USER removeitem USER end2 BattleScript_BerryPPHealEnd2:: @ 81D9A91 - playanimation USER, B_ANIM_ITEM_EFFECT, 0x0 + playanimation USER, B_ANIM_ITEM_EFFECT, NULL printstring BATTLE_TEXT_RestoredPP waitmessage 64 removeitem USER @@ -4419,10 +4415,10 @@ BattleScript_ItemHealHP_End2:: @ 81D9AA1 end2 BattleScript_ItemHealHP_Ret:: @ 81D9AA7 - playanimation USER, B_ANIM_ITEM_EFFECT, 0x0 + playanimation USER, B_ANIM_ITEM_EFFECT, NULL printstring BATTLE_TEXT_RestoredHPLittle waitmessage 64 - orword gHitMarker, 0x100 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate USER datahpupdate USER return @@ -4432,43 +4428,43 @@ BattleScript_MoveSelectionChoiceBanded:: @ 81D9AC2 endselectionscript BattleScript_HangedOnMsg:: @ 81D9AC6 - playanimation TARGET, B_ANIM_HANGED_ON, 0x0 + playanimation TARGET, B_ANIM_HANGED_ON, NULL printstring BATTLE_TEXT_FocusSash waitmessage 64 return BattleScript_BerryConfuseHealEnd2:: @ 81D9AD4 - playanimation USER, B_ANIM_ITEM_EFFECT, 0x0 + playanimation USER, B_ANIM_ITEM_EFFECT, NULL printstring BATTLE_TEXT_RestoredHealth waitmessage 64 - orword gHitMarker, 0x100 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate USER datahpupdate USER printstring BATTLE_TEXT_UnknownString2 waitmessage 64 - setbyte gUnknown_02024D1F + 0x2, 71 + setmoveeffect EFFECT_CONFUSION | AFFECTS_USER seteffectprimary removeitem USER end2 BattleScript_BerryStatRaiseEnd2:: @ 81D9AFE - playanimation USER, B_ANIM_ITEM_EFFECT, 0x0 - statbuffchange 65, BattleScript_1D9B0B + playanimation USER, B_ANIM_ITEM_EFFECT, NULL + statbuffchange AFFECTS_USER | 0x1, BattleScript_1D9B0B BattleScript_1D9B0B: @ 81D9B0B - setbyte gUnknown_02024D1F + 0x4, 4 + setbyte cMULTISTRING_CHOOSER, 0x4 call BattleScript_StatUp removeitem USER end2 BattleScript_BerryFocusEnergyEnd2:: @ 81D9B19 - playanimation USER, B_ANIM_ITEM_EFFECT, 0x0 + playanimation USER, B_ANIM_ITEM_EFFECT, NULL printstring BATTLE_TEXT_HustleUse waitmessage 64 removeitem USER end2 -gUnknown_081D9B29:: @ 81D9B29 +BattleScript_ActionSelectionItemsCantBeUsed:: @ 81D9B29 printselectionstring BATTLE_TEXT_CantUseItems endselectionscript diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index c6112fdd3..26f28726d 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -1,3 +1,6 @@ +#include "constants/battle_constants.h" +#include "constants/items.h" +#include "constants/songs.h" .include "asm/macros.inc" .include "asm/macros/battle_script.inc" .include "constants/constants.inc" @@ -7,91 +10,91 @@ .align 2 gBattlescriptsForBallThrow:: @ 81D9E48 - .4byte BattleScript_1D9EA8 - .4byte BattleScript_1D9EA8 - .4byte BattleScript_1D9EA8 - .4byte BattleScript_1D9EA8 - .4byte BattleScript_1D9EA8 - .4byte BattleScript_1D9EBC - .4byte BattleScript_1D9EA8 - .4byte BattleScript_1D9EA8 - .4byte BattleScript_1D9EA8 - .4byte BattleScript_1D9EA8 - .4byte BattleScript_1D9EA8 - .4byte BattleScript_1D9EA8 - .4byte BattleScript_1D9EA8 - -gUnknown_081D9E7C:: @ 81D9E7C - .4byte BattleScript_1D9F45 - .4byte BattleScript_1D9F4F - .4byte BattleScript_1D9F4F - .4byte BattleScript_1D9F7B - .4byte BattleScript_1D9F9C - .4byte BattleScript_1D9FBB + .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 + +gBattlescriptsForUsingItem:: @ 81D9E7C + .4byte BattleScript_PlayerUsesItem + .4byte BattleScript_OpponentUsesHealItem + .4byte BattleScript_OpponentUsesHealItem + .4byte BattleScript_OpponentUsesStatusCureItem + .4byte BattleScript_OpponentUsesXItem + .4byte BattleScript_OpponentUsesGuardSpecs gBattlescriptsForRunningByItem:: @ 81D9E94 - .4byte BattleScript_1D9FDA + .4byte BattleScript_RunByUsingItem gBattlescriptsForSafariActions:: @ 81D9E98 - .4byte BattleScript_1D9FE4 - .4byte BattleScript_1D9FEB - .4byte BattleScript_1D9FF4 + .4byte BattleScript_ActionWatchesCarefully + .4byte BattleScript_ActionGetNear + .4byte BattleScript_ActionThrowPokeblock .4byte BattleScript_1DA00A -BattleScript_1D9EA8: @ 81D9EA8 - jumpifhalfword 4, gBattleTypeFlags, 512, BattleScript_1D9EB8 +BattleScript_BallThrow: @ 81D9EA8 + jumpifhalfword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_WALLY_TUTORIAL, BattleScript_BallThrowByWally printstring BATTLE_TEXT_Used1 handleballthrow -BattleScript_1D9EB8: @ 81D9EB8 +BattleScript_BallThrowByWally: @ 81D9EB8 printstring BATTLE_TEXT_TutorialUsed handleballthrow -BattleScript_1D9EBC: @ 81D9EBC +BattleScript_SafariBallThrow: @ 81D9EBC printstring BATTLE_TEXT_Used1 - updatestatusicon 1 + updatestatusicon USER handleballthrow BattleScript_SuccessBallThrow:: @ 81D9EC2 - jumpifhalfword 0, gLastUsedItem, 5, BattleScript_1D9ED0 + jumpifhalfword EQUAL, gLastUsedItem, ITEM_SAFARI_BALL, BattleScript_PrintCaughtMonInfo incrementgamestat 11 -BattleScript_1D9ED0: @ 81D9ED0 +BattleScript_PrintCaughtMonInfo: @ 81D9ED0 printstring BATTLE_TEXT_BallCaught1 - trysetcaughtmondexflags BattleScript_1D9EE3 + trysetcaughtmondexflags BattleScript_TryNicknameCaughtMon printstring BATTLE_TEXT_AddedToDex waitstate setbyte gBattleCommunication, 0 displaydexinfo -BattleScript_1D9EE3: @ 81D9EE3 +BattleScript_TryNicknameCaughtMon: @ 81D9EE3 printstring BATTLE_TEXT_GiveNickname waitstate setbyte gBattleCommunication, 0 - trygivecaughtmonnick BattleScript_1D9EF8 + trygivecaughtmonnick BattleScript_GiveCaughtMonEnd printstring BATTLE_TEXT_SentToPC waitmessage 64 -BattleScript_1D9EF8: @ 81D9EF8 +BattleScript_GiveCaughtMonEnd: @ 81D9EF8 givecaughtmon - setbyte gBattleOutcome, 7 + setbyte gBattleOutcome, BATTLE_CAUGHT finishturn BattleScript_WallyBallThrow:: @ 81D9F00 printstring BATTLE_TEXT_BallCaught2 - setbyte gBattleOutcome, 7 + setbyte gBattleOutcome, BATTLE_CAUGHT finishturn BattleScript_ShakeBallThrow:: @ 81D9F0A - printfromtable BattleTextList_4015E6 + printfromtable gBallEscapeStringIds waitmessage 64 - jumpifbyte 5, gBattleTypeFlags, 128, BattleScript_1D9F34 - jumpifbyte 1, gNumSafariBalls, 0, BattleScript_1D9F34 + jumpifbyte NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_SAFARI, BattleScript_ShakeBallThrowEnd + jumpifbyte NOT_EQUAL, gNumSafariBalls, 0, BattleScript_ShakeBallThrowEnd printstring BATTLE_TEXT_SafariOver waitmessage 64 - setbyte gBattleOutcome, 8 + setbyte gBattleOutcome, BATTLE_OUT_OF_BALLS -BattleScript_1D9F34: @ 81D9F34 +BattleScript_ShakeBallThrowEnd: @ 81D9F34 finishaction BattleScript_TrainerBallBlock:: @ 81D9F35 @@ -102,84 +105,84 @@ BattleScript_TrainerBallBlock:: @ 81D9F35 waitmessage 64 finishaction -BattleScript_1D9F45: @ 81D9F45 - setbyte gSharedMem + 0x1600C, 15 +BattleScript_PlayerUsesItem: @ 81D9F45 + setbyte sMOVEEND_STATE, 15 moveend 1, 0 end -BattleScript_1D9F4F: @ 81D9F4F +BattleScript_OpponentUsesHealItem: @ 81D9F4F pause 48 - playse 1 + playse SE_KAIFUKU printstring BATTLE_TEXT_Used2 waitmessage 64 useitemonopponent - orword gHitMarker, 0x100 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate USER datahpupdate USER printstring BATTLE_TEXT_RestoredHealth waitmessage 64 - updatestatusicon 1 - setbyte gSharedMem + 0x1600C, 15 + updatestatusicon USER + setbyte sMOVEEND_STATE, 15 moveend 1, 0 finishaction -BattleScript_1D9F7B: @ 81D9F7B +BattleScript_OpponentUsesStatusCureItem: @ 81D9F7B pause 48 - playse 1 + playse SE_KAIFUKU printstring BATTLE_TEXT_Used2 waitmessage 64 useitemonopponent - printfromtable BattleTextList_401620 + printfromtable gTrainerItemCuredStatusStringIds waitmessage 64 - updatestatusicon 1 - setbyte gSharedMem + 0x1600C, 15 + updatestatusicon USER + setbyte sMOVEEND_STATE, 15 moveend 1, 0 finishaction -BattleScript_1D9F9C: @ 81D9F9C +BattleScript_OpponentUsesXItem: @ 81D9F9C pause 48 - playse 1 + playse SE_KAIFUKU printstring BATTLE_TEXT_Used2 waitmessage 64 useitemonopponent - printfromtable BattleTextList_401570 + printfromtable gStatUpStringIds waitmessage 64 - setbyte gSharedMem + 0x1600C, 15 + setbyte sMOVEEND_STATE, 15 moveend 1, 0 finishaction -BattleScript_1D9FBB: @ 81D9FBB +BattleScript_OpponentUsesGuardSpecs: @ 81D9FBB pause 48 - playse 1 + playse SE_KAIFUKU printstring BATTLE_TEXT_Used2 waitmessage 64 useitemonopponent - printfromtable BattleTextList_4015A0 + printfromtable gMistUsedStringIds waitmessage 64 - setbyte gSharedMem + 0x1600C, 15 + setbyte sMOVEEND_STATE, 15 moveend 1, 0 finishaction -BattleScript_1D9FDA: @ 81D9FDA +BattleScript_RunByUsingItem: @ 81D9FDA playse 17 - setbyte gBattleOutcome, 4 + setbyte gBattleOutcome, BATTLE_RAN finishturn -BattleScript_1D9FE4: @ 81D9FE4 +BattleScript_ActionWatchesCarefully: @ 81D9FE4 printstring BATTLE_TEXT_WatchingCarefully waitmessage 64 end2 -BattleScript_1D9FEB: @ 81D9FEB - printfromtable BattleTextList_401616 +BattleScript_ActionGetNear: @ 81D9FEB + printfromtable gSafariGetNearStringIds waitmessage 64 end2 -BattleScript_1D9FF4: @ 81D9FF4 +BattleScript_ActionThrowPokeblock: @ 81D9FF4 printstring BATTLE_TEXT_ThrewBlock waitmessage 64 playanimation USER, B_ANIM_POKEBLOCK_THROW, 0x0 - printfromtable BattleTextList_40161A + printfromtable gSafariPokeblockResultStringIds waitmessage 64 end2 @@ -188,7 +191,7 @@ BattleScript_1DA00A: @ 81DA00A waitmessage 64 returnatktoball waitstate - trainerslidein 0 + trainerslidein TARGET waitstate printstring BATTLE_TEXT_WallyBall waitmessage 64 diff --git a/include/battle.h b/include/battle.h index dd44e0172..f34260e16 100644 --- a/include/battle.h +++ b/include/battle.h @@ -2,240 +2,7 @@ #define GUARD_BATTLE_H #include "sprite.h" - -#define F_TARGET_SELECTED_POKEMON 0 -#define F_TARGET_SPECIAL (1 << 0) -#define F_TARGET_UNK2 (1 << 1) -#define F_TARGET_RANDOM (1 << 2) -#define F_TARGET_BOTH_ENEMIES (1 << 3) -#define F_TARGET_USER (1 << 4) -#define F_TARGET_ALL_EXCEPT_USER (1 << 5) -#define F_TARGET_ENEMY_SIDE (1 << 6) - -#define F_MAKES_CONTACT (1 << 0) -#define F_AFFECTED_BY_PROTECT (1 << 1) -#define F_AFFECTED_BY_MAGIC_COAT (1 << 2) -#define F_AFFECTED_BY_SNATCH (1 << 3) -#define F_MIRROR_MOVE_COMPATIBLE (1 << 4) -#define F_AFFECTED_BY_KINGS_ROCK (1 << 5) - -#define BATTLE_TYPE_DOUBLE 0x0001 -#define BATTLE_TYPE_LINK 0x0002 -#define BATTLE_TYPE_WILD 0x0004 -#define BATTLE_TYPE_TRAINER 0x0008 -#define BATTLE_TYPE_FIRST_BATTLE 0x0010 -#define BATTLE_TYPE_20 0x0020 -#define BATTLE_TYPE_MULTI 0x0040 -#define BATTLE_TYPE_SAFARI 0x0080 -#define BATTLE_TYPE_BATTLE_TOWER 0x0100 -#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200 -#define BATTLE_TYPE_ROAMER 0x0400 -#define BATTLE_TYPE_EREADER_TRAINER 0x0800 -#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000 -#define BATTLE_TYPE_LEGENDARY 0x2000 -#define BATTLE_TYPE_REGI 0x4000 - -#define BATTLE_TYPE_LINK_DOUBLE (BATTLE_TYPE_MULTI | BATTLE_TYPE_TRAINER | BATTLE_TYPE_LINK | BATTLE_TYPE_DOUBLE) - -#define BATTLE_WON 0x1 -#define BATTLE_LOST 0x2 -#define BATTLE_DREW 0x3 -#define BATTLE_RAN 0x4 -#define BATTLE_PLAYER_TELEPORTED 0x5 -#define BATTLE_POKE_FLED 0x6 -#define BATTLE_CAUGHT 0x7 -#define BATTLE_OPPONENT_TELEPORTED 0xA - -#define AI_ACTION_DONE 0x0001 -#define AI_ACTION_FLEE 0x0002 -#define AI_ACTION_WATCH 0x0004 -#define AI_ACTION_DO_NOT_ATTACK 0x0008 -#define AI_ACTION_UNK5 0x0010 -#define AI_ACTION_UNK6 0x0020 -#define AI_ACTION_UNK7 0x0040 -#define AI_ACTION_UNK8 0x0080 - -#define STATUS_SLEEP 0x7 -#define STATUS_POISON 0x8 -#define STATUS_BURN 0x10 -#define STATUS_FREEZE 0x20 -#define STATUS_PARALYSIS 0x40 -#define STATUS_TOXIC_POISON 0x80 -#define STATUS_TOXIC_COUNTER 0xF00 - -#define STATUS_PSN_ANY ((STATUS_POISON | STATUS_TOXIC_POISON)) -#define STATUS_ANY ((STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON)) - -#define STATUS2_CONFUSION 0x00000007 -#define STATUS2_FLINCHED 0x00000008 -#define STATUS2_UPROAR 0x00000070 -#define STATUS2_BIDE 0x00000300 //two bits 0x100 0x200 -#define STATUS2_LOCK_CONFUSE 0x00000C00 -#define STATUS2_MULTIPLETURNS 0x00001000 -#define STATUS2_WRAPPED 0x0000E000 -#define STATUS2_INFATUATION 0x000F0000 -#define STATUS2_FOCUS_ENERGY 0x00100000 -#define STATUS2_TRANSFORMED 0x00200000 -#define STATUS2_RECHARGE 0x00400000 -#define STATUS2_RAGE 0x00800000 -#define STATUS2_SUBSTITUTE 0x01000000 -#define STATUS2_DESTINY_BOND 0x02000000 -#define STATUS2_ESCAPE_PREVENTION 0x04000000 -#define STATUS2_NIGHTMARE 0x08000000 -#define STATUS2_CURSED 0x10000000 -#define STATUS2_FORESIGHT 0x20000000 -#define STATUS2_DEFENSE_CURL 0x40000000 -#define STATUS2_TORMENT 0x80000000 - -#define STATUS3_LEECHSEED_BANK 0x3 -#define STATUS3_LEECHSEED 0x4 -#define STATUS3_ALWAYS_HITS 0x18 //two bits -#define STATUS3_PERISH_SONG 0x20 -#define STATUS3_ON_AIR 0x40 -#define STATUS3_UNDERGROUND 0x80 -#define STATUS3_MINIMIZED 0x100 -#define STATUS3_ROOTED 0x400 -#define STATUS3_CHARGED_UP 0x200 -#define STATUS3_YAWN 0x1800 //two bits -#define STATUS3_IMPRISIONED 0x2000 -#define STATUS3_GRUDGE 0x4000 -#define STATUS3_CANT_SCORE_A_CRIT 0x8000 -#define STATUS3_MUDSPORT 0x10000 -#define STATUS3_WATERSPORT 0x20000 -#define STATUS3_UNDERWATER 0x40000 -#define STATUS3_INTIMIDATE_POKES 0x80000 -#define STATUS3_TRACE 0x100000 - -#define STATUS3_SEMI_INVULNERABLE ((STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER)) - -#define HITMARKER_x20 0x00000020 -#define HITMARKER_DESTINYBOND 0x00000040 -#define HITMARKER_NO_ANIMATIONS 0x00000080 -#define HITMARKER_IGNORE_SUBSTITUTE 0x00000100 -#define HITMARKER_NO_ATTACKSTRING 0x00000200 -#define HITMARKER_ATTACKSTRING_PRINTED 0x00000400 -#define HITMARKER_NO_PPDEDUCT 0x00000800 -#define HITMARKER_PURSUIT_TRAP 0x00001000 -#define HITMARKER_IGNORE_SAFEGUARD 0x00002000 -#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000 -#define HITMARKER_IGNORE_ON_AIR 0x00010000 -#define HITMARKER_IGNORE_UNDERGROUND 0x00020000 -#define HITMARKER_IGNORE_UNDERWATER 0x00040000 -#define HITMARKER_UNABLE_TO_USE_MOVE 0x00080000 -#define HITMARKER_x100000 0x00100000 -#define HITMARKER_x200000 0x00200000 -#define HITMARKER_x400000 0x00400000 -#define HITMARKER_x800000 0x00800000 -#define HITMARKER_GRUDGE 0x01000000 -#define HITMARKER_OBEYS 0x02000000 -#define HITMARKER_x8000000 0x08000000 -#define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C)) -#define HITMARKER_UNK(bank) ((0x10000000 << bank)) - -#define SIDE_STATUS_REFLECT (1 << 0) -#define SIDE_STATUS_LIGHTSCREEN (1 << 1) -#define SIDE_STATUS_X4 (1 << 2) -#define SIDE_STATUS_SPIKES (1 << 4) -#define SIDE_STATUS_SAFEGUARD (1 << 5) -#define SIDE_STATUS_FUTUREATTACK (1 << 6) -#define SIDE_STATUS_MIST (1 << 8) -#define SIDE_STATUS_SPIKES_DAMAGED (1 << 9) - -#define ABILITYEFFECT_ON_SWITCHIN 0x0 -#define ABILITYEFFECT_ENDTURN 0x1 -#define ABILITYEFFECT_MOVES_BLOCK 0x2 -#define ABILITYEFFECT_ABSORBING 0x3 -#define ABILITYEFFECT_CONTACT 0x4 -#define ABILITYEFFECT_IMMUNITY 0x5 -#define ABILITYEFFECT_FORECAST 0x6 -#define ABILITYEFFECT_SYNCHRONIZE 0x7 -#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8 -#define ABILITYEFFECT_INTIMIDATE1 0x9 -#define ABILITYEFFECT_INTIMIDATE2 0xA -#define ABILITYEFFECT_TRACE 0xB -#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC -#define ABILITYEFFECT_CHECK_BANK_SIDE 0xD -#define ABILITYEFFECT_FIELD_SPORT 0xE -#define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK 0xF -#define ABILITYEFFECT_COUNT_OTHER_SIZE 0x10 -#define ABILITYEFFECT_COUNT_BANK_SIDE 0x11 -#define ABILITYEFFECT_COUNT_ON_FIELD 0x12 -#define ABILITYEFFECT_CHECK_ON_FIELD 0x13 - -#define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0))) - -#define MOVESTATUS_MISSED (1 << 0) -#define MOVESTATUS_SUPEREFFECTIVE (1 << 1) -#define MOVESTATUS_NOTVERYEFFECTIVE (1 << 2) -#define MOVESTATUS_NOTAFFECTED (1 << 3) -#define MOVESTATUS_ONEHITKO (1 << 4) -#define MOVESTATUS_FAILED (1 << 5) -#define MOVESTATUS_ENDURED (1 << 6) -#define MOVESTATUS_HUNGON (1 << 7) - -#define MOVESTATUS_NOEFFECT ((MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED)) - -#define MAX_TRAINER_ITEMS 4 -#define MAX_MON_MOVES 4 -#define MAX_BANKS_BATTLE 4 - -#define WEATHER_RAIN_TEMPORARY (1 << 0) -#define WEATHER_RAIN_DOWNPOUR (1 << 1) -#define WEATHER_RAIN_PERMANENT (1 << 2) -#define WEATHER_RAIN_ANY ((WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT)) -#define WEATHER_SANDSTORM_TEMPORARY (1 << 3) -#define WEATHER_SANDSTORM_PERMANENT (1 << 4) -#define WEATHER_SANDSTORM_ANY ((WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT)) -#define WEATHER_SUN_TEMPORARY (1 << 5) -#define WEATHER_SUN_PERMANENT (1 << 6) -#define WEATHER_SUN_ANY ((WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT)) -#define WEATHER_HAIL (1 << 7) - -// status animation table -#define B_ANIM_STATUS_PSN 0x0 -#define B_ANIM_STATUS_CONFUSION 0x1 -#define B_ANIM_STATUS_BRN 0x2 -#define B_ANIM_STATUS_INFATUATION 0x3 -#define B_ANIM_STATUS_SLP 0x4 -#define B_ANIM_STATUS_PRZ 0x5 -#define B_ANIM_STATUS_FRZ 0x6 -#define B_ANIM_STATUS_CURSED 0x7 -#define B_ANIM_STATUS_NIGHTMARE 0x8 -#define B_ANIM_STATUS_WRAPPED 0x9 - -// general animation table -#define B_ANIM_CASTFORM_CHANGE 0x0 -#define B_ANIM_STATS_CHANGE 0x1 -#define B_ANIM_SUBSTITUTE_FADE 0x2 -#define B_ANIM_SUBSTITUTE_APPEAR 0x3 -#define B_ANIM_POKEBLOCK_THROW 0x4 -#define B_ANIM_ITEM_KNOCKOFF 0x5 -#define B_ANIM_TURN_TRAP 0x6 -#define B_ANIM_ITEM_EFFECT 0x7 -#define B_ANIM_SMOKEBALL_ESCAPE 0x8 -#define B_ANIM_HANGED_ON 0x9 -#define B_ANIM_RAIN_CONTINUES 0xA -#define B_ANIM_SUN_CONTINUES 0xB -#define B_ANIM_SANDSTORM_CONTINUES 0xC -#define B_ANIM_HAIL_CONTINUES 0xD -#define B_ANIM_LEECH_SEED_DRAIN 0xE -#define B_ANIM_MON_HIT 0xF -#define B_ANIM_ITEM_STEAL 0x10 -#define B_ANIM_SNATCH_MOVE 0x11 -#define B_ANIM_FUTURE_SIGHT_HIT 0x12 -#define B_ANIM_DOOM_DESIRE_HIT 0x13 -#define B_ANIM_FOCUS_PUNCH_SET_UP 0x14 -#define B_ANIM_INGRAIN_HEAL 0x15 -#define B_ANIM_WISH_HEAL 0x16 - -// special animation table -#define B_ANIM_LVL_UP 0x0 -#define B_ANIM_SWITCH_OUT_PLAYER_MON 0x1 -#define B_ANIM_SWITCH_OUT_OPPONENT_MON 0x2 -#define B_ANIM_BALL_THROW 0x3 -#define B_ANIM_SAFARI_BALL_THROW 0x4 -#define B_ANIM_SUBSTITUTE_TO_MON 0x5 -#define B_ANIM_MON_TO_SUBSTITUTE 0x6 +#include "constants/battle_constants.h" enum { diff --git a/include/constants/battle_constants.h b/include/constants/battle_constants.h new file mode 100644 index 000000000..c446b916b --- /dev/null +++ b/include/constants/battle_constants.h @@ -0,0 +1,239 @@ +#ifndef GUARD_CONSTANTS_BATTLE_CONSTANTS_H +#define GUARD_CONSTANTS_BATTLE_CONSTANTS_H + +#define STATUS_SLEEP 0x7 +#define STATUS_POISON 0x8 +#define STATUS_BURN 0x10 +#define STATUS_FREEZE 0x20 +#define STATUS_PARALYSIS 0x40 +#define STATUS_TOXIC_POISON 0x80 +#define STATUS_TOXIC_COUNTER 0xF00 + +#define STATUS_PSN_ANY ((STATUS_POISON | STATUS_TOXIC_POISON)) +#define STATUS_ANY ((STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON)) + +#define STATUS2_CONFUSION 0x00000007 +#define STATUS2_FLINCHED 0x00000008 +#define STATUS2_UPROAR 0x00000070 +#define STATUS2_BIDE 0x00000300 //two bits 0x100 0x200 +#define STATUS2_LOCK_CONFUSE 0x00000C00 +#define STATUS2_MULTIPLETURNS 0x00001000 +#define STATUS2_WRAPPED 0x0000E000 +#define STATUS2_INFATUATION 0x000F0000 +#define STATUS2_FOCUS_ENERGY 0x00100000 +#define STATUS2_TRANSFORMED 0x00200000 +#define STATUS2_RECHARGE 0x00400000 +#define STATUS2_RAGE 0x00800000 +#define STATUS2_SUBSTITUTE 0x01000000 +#define STATUS2_DESTINY_BOND 0x02000000 +#define STATUS2_ESCAPE_PREVENTION 0x04000000 +#define STATUS2_NIGHTMARE 0x08000000 +#define STATUS2_CURSED 0x10000000 +#define STATUS2_FORESIGHT 0x20000000 +#define STATUS2_DEFENSE_CURL 0x40000000 +#define STATUS2_TORMENT 0x80000000 + +#define STATUS3_LEECHSEED_BANK 0x3 +#define STATUS3_LEECHSEED 0x4 +#define STATUS3_ALWAYS_HITS 0x18 //two bits +#define STATUS3_PERISH_SONG 0x20 +#define STATUS3_ON_AIR 0x40 +#define STATUS3_UNDERGROUND 0x80 +#define STATUS3_MINIMIZED 0x100 +#define STATUS3_ROOTED 0x400 +#define STATUS3_CHARGED_UP 0x200 +#define STATUS3_YAWN 0x1800 //two bits +#define STATUS3_IMPRISIONED 0x2000 +#define STATUS3_GRUDGE 0x4000 +#define STATUS3_CANT_SCORE_A_CRIT 0x8000 +#define STATUS3_MUDSPORT 0x10000 +#define STATUS3_WATERSPORT 0x20000 +#define STATUS3_UNDERWATER 0x40000 +#define STATUS3_INTIMIDATE_POKES 0x80000 +#define STATUS3_TRACE 0x100000 + +#define STATUS3_SEMI_INVULNERABLE ((STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER)) + +#define HITMARKER_x10 0x00000010 +#define HITMARKER_x20 0x00000020 +#define HITMARKER_DESTINYBOND 0x00000040 +#define HITMARKER_NO_ANIMATIONS 0x00000080 +#define HITMARKER_IGNORE_SUBSTITUTE 0x00000100 +#define HITMARKER_NO_ATTACKSTRING 0x00000200 +#define HITMARKER_ATTACKSTRING_PRINTED 0x00000400 +#define HITMARKER_NO_PPDEDUCT 0x00000800 +#define HITMARKER_PURSUIT_TRAP 0x00001000 +#define HITMARKER_IGNORE_SAFEGUARD 0x00002000 +#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000 +#define HITMARKER_IGNORE_ON_AIR 0x00010000 +#define HITMARKER_IGNORE_UNDERGROUND 0x00020000 +#define HITMARKER_IGNORE_UNDERWATER 0x00040000 +#define HITMARKER_UNABLE_TO_USE_MOVE 0x00080000 +#define HITMARKER_x100000 0x00100000 +#define HITMARKER_x200000 0x00200000 +#define HITMARKER_x400000 0x00400000 +#define HITMARKER_x800000 0x00800000 +#define HITMARKER_GRUDGE 0x01000000 +#define HITMARKER_OBEYS 0x02000000 +#define HITMARKER_x8000000 0x08000000 +#define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C)) +#define HITMARKER_UNK(bank) ((0x10000000 << bank)) + +#define MOVESTATUS_MISSED (1 << 0) +#define MOVESTATUS_SUPEREFFECTIVE (1 << 1) +#define MOVESTATUS_NOTVERYEFFECTIVE (1 << 2) +#define MOVESTATUS_NOTAFFECTED (1 << 3) +#define MOVESTATUS_ONEHITKO (1 << 4) +#define MOVESTATUS_FAILED (1 << 5) +#define MOVESTATUS_ENDURED (1 << 6) +#define MOVESTATUS_HUNGON (1 << 7) + +#define BATTLE_TYPE_DOUBLE 0x0001 +#define BATTLE_TYPE_LINK 0x0002 +#define BATTLE_TYPE_WILD 0x0004 +#define BATTLE_TYPE_TRAINER 0x0008 +#define BATTLE_TYPE_FIRST_BATTLE 0x0010 +#define BATTLE_TYPE_20 0x0020 +#define BATTLE_TYPE_MULTI 0x0040 +#define BATTLE_TYPE_SAFARI 0x0080 +#define BATTLE_TYPE_BATTLE_TOWER 0x0100 +#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200 +#define BATTLE_TYPE_ROAMER 0x0400 +#define BATTLE_TYPE_EREADER_TRAINER 0x0800 +#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000 +#define BATTLE_TYPE_LEGENDARY 0x2000 +#define BATTLE_TYPE_REGI 0x4000 +#define BATTLE_TYPE_LINK_DOUBLE (BATTLE_TYPE_MULTI | BATTLE_TYPE_TRAINER | BATTLE_TYPE_LINK | BATTLE_TYPE_DOUBLE) + +#define BATTLE_WON 0x1 +#define BATTLE_LOST 0x2 +#define BATTLE_DREW 0x3 +#define BATTLE_RAN 0x4 +#define BATTLE_PLAYER_TELEPORTED 0x5 +#define BATTLE_POKE_FLED 0x6 +#define BATTLE_CAUGHT 0x7 +#define BATTLE_OUT_OF_BALLS 0x8 +#define BATTLE_OPPONENT_TELEPORTED 0xA + +#define SIDE_STATUS_REFLECT (1 << 0) +#define SIDE_STATUS_LIGHTSCREEN (1 << 1) +#define SIDE_STATUS_X4 (1 << 2) +#define SIDE_STATUS_SPIKES (1 << 4) +#define SIDE_STATUS_SAFEGUARD (1 << 5) +#define SIDE_STATUS_FUTUREATTACK (1 << 6) +#define SIDE_STATUS_MIST (1 << 8) +#define SIDE_STATUS_SPIKES_DAMAGED (1 << 9) + +#define F_TARGET_SELECTED_POKEMON 0 +#define F_TARGET_SPECIAL (1 << 0) +#define F_TARGET_UNK2 (1 << 1) +#define F_TARGET_RANDOM (1 << 2) +#define F_TARGET_BOTH_ENEMIES (1 << 3) +#define F_TARGET_USER (1 << 4) +#define F_TARGET_ALL_EXCEPT_USER (1 << 5) +#define F_TARGET_ENEMY_SIDE (1 << 6) + +#define F_MAKES_CONTACT (1 << 0) +#define F_AFFECTED_BY_PROTECT (1 << 1) +#define F_AFFECTED_BY_MAGIC_COAT (1 << 2) +#define F_AFFECTED_BY_SNATCH (1 << 3) +#define F_MIRROR_MOVE_COMPATIBLE (1 << 4) +#define F_AFFECTED_BY_KINGS_ROCK (1 << 5) + +#define AI_ACTION_DONE 0x0001 +#define AI_ACTION_FLEE 0x0002 +#define AI_ACTION_WATCH 0x0004 +#define AI_ACTION_DO_NOT_ATTACK 0x0008 +#define AI_ACTION_UNK5 0x0010 +#define AI_ACTION_UNK6 0x0020 +#define AI_ACTION_UNK7 0x0040 +#define AI_ACTION_UNK8 0x0080 + +#define ABILITYEFFECT_ON_SWITCHIN 0x0 +#define ABILITYEFFECT_ENDTURN 0x1 +#define ABILITYEFFECT_MOVES_BLOCK 0x2 +#define ABILITYEFFECT_ABSORBING 0x3 +#define ABILITYEFFECT_CONTACT 0x4 +#define ABILITYEFFECT_IMMUNITY 0x5 +#define ABILITYEFFECT_FORECAST 0x6 +#define ABILITYEFFECT_SYNCHRONIZE 0x7 +#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8 +#define ABILITYEFFECT_INTIMIDATE1 0x9 +#define ABILITYEFFECT_INTIMIDATE2 0xA +#define ABILITYEFFECT_TRACE 0xB +#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC +#define ABILITYEFFECT_CHECK_BANK_SIDE 0xD +#define ABILITYEFFECT_FIELD_SPORT 0xE +#define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK 0xF +#define ABILITYEFFECT_COUNT_OTHER_SIZE 0x10 +#define ABILITYEFFECT_COUNT_BANK_SIDE 0x11 +#define ABILITYEFFECT_COUNT_ON_FIELD 0x12 +#define ABILITYEFFECT_CHECK_ON_FIELD 0x13 + +#define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0))) + +#define MOVESTATUS_NOEFFECT ((MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED)) + +#define MAX_TRAINER_ITEMS 4 +#define MAX_MON_MOVES 4 +#define MAX_BANKS_BATTLE 4 + +#define WEATHER_RAIN_TEMPORARY (1 << 0) +#define WEATHER_RAIN_DOWNPOUR (1 << 1) +#define WEATHER_RAIN_PERMANENT (1 << 2) +#define WEATHER_RAIN_ANY ((WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT)) +#define WEATHER_SANDSTORM_TEMPORARY (1 << 3) +#define WEATHER_SANDSTORM_PERMANENT (1 << 4) +#define WEATHER_SANDSTORM_ANY ((WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT)) +#define WEATHER_SUN_TEMPORARY (1 << 5) +#define WEATHER_SUN_PERMANENT (1 << 6) +#define WEATHER_SUN_ANY ((WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT)) +#define WEATHER_HAIL (1 << 7) + +// status animation table +#define B_ANIM_STATUS_PSN 0x0 +#define B_ANIM_STATUS_CONFUSION 0x1 +#define B_ANIM_STATUS_BRN 0x2 +#define B_ANIM_STATUS_INFATUATION 0x3 +#define B_ANIM_STATUS_SLP 0x4 +#define B_ANIM_STATUS_PRZ 0x5 +#define B_ANIM_STATUS_FRZ 0x6 +#define B_ANIM_STATUS_CURSED 0x7 +#define B_ANIM_STATUS_NIGHTMARE 0x8 +#define B_ANIM_STATUS_WRAPPED 0x9 + +// general animation table +#define B_ANIM_CASTFORM_CHANGE 0x0 +#define B_ANIM_STATS_CHANGE 0x1 +#define B_ANIM_SUBSTITUTE_FADE 0x2 +#define B_ANIM_SUBSTITUTE_APPEAR 0x3 +#define B_ANIM_POKEBLOCK_THROW 0x4 +#define B_ANIM_ITEM_KNOCKOFF 0x5 +#define B_ANIM_TURN_TRAP 0x6 +#define B_ANIM_ITEM_EFFECT 0x7 +#define B_ANIM_SMOKEBALL_ESCAPE 0x8 +#define B_ANIM_HANGED_ON 0x9 +#define B_ANIM_RAIN_CONTINUES 0xA +#define B_ANIM_SUN_CONTINUES 0xB +#define B_ANIM_SANDSTORM_CONTINUES 0xC +#define B_ANIM_HAIL_CONTINUES 0xD +#define B_ANIM_LEECH_SEED_DRAIN 0xE +#define B_ANIM_MON_HIT 0xF +#define B_ANIM_ITEM_STEAL 0x10 +#define B_ANIM_SNATCH_MOVE 0x11 +#define B_ANIM_FUTURE_SIGHT_HIT 0x12 +#define B_ANIM_DOOM_DESIRE_HIT 0x13 +#define B_ANIM_FOCUS_PUNCH_SET_UP 0x14 +#define B_ANIM_INGRAIN_HEAL 0x15 +#define B_ANIM_WISH_HEAL 0x16 + +// special animation table +#define B_ANIM_LVL_UP 0x0 +#define B_ANIM_SWITCH_OUT_PLAYER_MON 0x1 +#define B_ANIM_SWITCH_OUT_OPPONENT_MON 0x2 +#define B_ANIM_BALL_THROW 0x3 +#define B_ANIM_SAFARI_BALL_THROW 0x4 +#define B_ANIM_SUBSTITUTE_TO_MON 0x5 +#define B_ANIM_MON_TO_SUBSTITUTE 0x6 + +#endif // GUARD_CONSTANTS_BATTLE_CONSTANTS_H diff --git a/src/battle/battle_3.c b/src/battle/battle_3.c index b21ec1572..e5a730598 100644 --- a/src/battle/battle_3.c +++ b/src/battle/battle_3.c @@ -110,22 +110,22 @@ extern u8 BattleScript_WrapEnds[]; extern u8 BattleScript_DisabledNoMore[]; extern u8 BattleScript_EncoredNoMore[]; -extern u8 gUnknown_081D9030[]; -extern u8 gUnknown_081D8F62[]; -extern u8 gUnknown_081D8FFF[]; -extern u8 gUnknown_081D8F7D[]; -extern u8 gUnknown_081D9016[]; -extern u8 gUnknown_081D9008[]; -extern u8 gUnknown_081D9041[]; -extern u8 gUnknown_081D950F[]; //uproar wakeup BS -extern u8 gUnknown_081D957E[]; //uproar BS +extern u8 BattleScript_SideStatusWoreOff[]; +extern u8 BattleScript_RainContinuesOrEnds[]; +extern u8 BattleScript_SandStormHailEnds[]; +extern u8 BattleScript_DamagingWeatherContinues[]; +extern u8 BattleScript_SunlightFaded[]; +extern u8 BattleScript_SunlightContinues[]; +extern u8 BattleScript_SafeguardEnds[]; +extern u8 BattleScript_MonWokeUpInUproar[]; //uproar wakeup BS +extern u8 BattleScript_PrintUproarOverTurns[]; //uproar BS extern u8 BattleScript_ThrashConfuses[]; extern u8 BattleScript_YawnMakesAsleep[]; -extern u8 BattleScript_FutureSightHits[]; +extern u8 BattleScript_MonTookFutureAttack[]; extern u8 BattleScript_PerishSongHits[]; extern u8 BattleScript_PerishSongTimerGoesDown[]; -extern u8 gUnknown_081D8C72[]; -extern u8 gUnknown_081D8C7B[]; +extern u8 BattleScript_GiveExp[]; +extern u8 BattleScript_HandleFaintedMon[]; extern u8 BattleScript_MoveUsedIsAsleep[]; extern u8 BattleScript_MoveUsedWokeUp[]; @@ -146,7 +146,7 @@ extern u8 BattleScript_BideStoringEnergy[]; extern u8 BattleScript_BideAttack[]; extern u8 BattleScript_BideNoEnergyToAttack[]; -extern u8 gUnknown_081D901D[]; //load weather from overworld +extern u8 BattleScript_OverworldWeatherStarts[]; //load weather from overworld extern u8 BattleScript_DrizzleActivates[]; extern u8 BattleScript_SandstreamActivates[]; extern u8 BattleScript_DroughtActivates[]; @@ -165,7 +165,7 @@ extern u8 BattleScript_ColorChangeActivates[]; extern u8 BattleScript_RoughSkinActivates[]; extern u8 BattleScript_ApplySecondaryEffect[]; extern u8 BattleScript_CuteCharmActivates[]; -extern u8 gUnknown_081D9956[]; //ability status clear +extern u8 BattleScript_AbilityCuredStatus[]; //ability status clear extern u8 BattleScript_SynchronizeActivates[]; extern u8 gUnknown_081D978C[]; //intimidate1 extern u8 gUnknown_081D9795[]; //intimidate2 @@ -185,20 +185,20 @@ extern u8 BattleScript_BerryCureBrnEnd2[]; extern u8 BattleScript_BerryCureFrzEnd2[]; extern u8 BattleScript_BerryCureSlpEnd2[]; extern u8 BattleScript_BerryCureConfusionEnd2[]; -extern u8 gUnknown_081D9A44[]; //berry cure any status end2 +extern u8 BattleScript_BerryCureChosenStatusEnd2[]; //berry cure any status end2 extern u8 BattleScript_BerryCureParRet[]; extern u8 BattleScript_BerryCurePsnRet[]; extern u8 BattleScript_BerryCureBrnRet[]; extern u8 BattleScript_BerryCureFrzRet[]; extern u8 BattleScript_BerryCureSlpRet[]; extern u8 BattleScript_BerryCureConfusionRet[]; -extern u8 gUnknown_081D9A4A[]; //berry cure any status return +extern u8 BattleScript_BerryCureChosenStatusRet[]; //berry cure any status return extern u8 BattleScript_ItemHealHP_Ret[]; extern u8 gUnknown_081D995F[]; //disobedient while asleep -extern u8 gUnknown_081D996F[]; //disobedient, uses a random move -extern u8 gUnknown_081D9989[]; //disobedient, went to sleep +extern u8 BattleScript_IgnoresAndUsesRandomMove[]; //disobedient, uses a random move +extern u8 BattleScript_IgnoresAndFallsAsleep[]; //disobedient, went to sleep extern u8 gUnknown_081D99A0[]; //disobedient, hits itself //array entries for battle communication @@ -396,7 +396,7 @@ u8 UpdateTurnCounters(void) { gSideAffecting[sideBank] &= ~SIDE_STATUS_REFLECT; - b_call_bc_move_exec(gUnknown_081D9030); + b_call_bc_move_exec(BattleScript_SideStatusWoreOff); gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; gBattleTextBuff1[2] = MOVE_REFLECT; @@ -424,7 +424,7 @@ u8 UpdateTurnCounters(void) if (--gSideTimer[sideBank].lightscreenTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN; - b_call_bc_move_exec(gUnknown_081D9030); + b_call_bc_move_exec(BattleScript_SideStatusWoreOff); gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; @@ -451,7 +451,7 @@ u8 UpdateTurnCounters(void) if (gSideTimer[sideBank].mistTimer && --gSideTimer[sideBank].mistTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_MIST; - b_call_bc_move_exec(gUnknown_081D9030); + b_call_bc_move_exec(BattleScript_SideStatusWoreOff); gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; @@ -479,7 +479,7 @@ u8 UpdateTurnCounters(void) if (--gSideTimer[sideBank].safeguardTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_SAFEGUARD; - b_call_bc_move_exec(gUnknown_081D9041); + b_call_bc_move_exec(BattleScript_SafeguardEnds); effect++; } } @@ -532,7 +532,7 @@ u8 UpdateTurnCounters(void) gBattleCommunication[MULTISTRING_CHOOSER] = 1; else gBattleCommunication[MULTISTRING_CHOOSER] = 0; - b_call_bc_move_exec(gUnknown_081D8F62); + b_call_bc_move_exec(BattleScript_RainContinuesOrEnds); effect++; } BATTLE_STRUCT->turncountersTracker++; @@ -543,10 +543,10 @@ u8 UpdateTurnCounters(void) if (!(gBattleWeather & WEATHER_SANDSTORM_PERMANENT) && --gWishFutureKnock.weatherDuration == 0) { gBattleWeather &= ~WEATHER_SANDSTORM_TEMPORARY; - gBattlescriptCurrInstr = gUnknown_081D8FFF; + gBattlescriptCurrInstr = BattleScript_SandStormHailEnds; } else - gBattlescriptCurrInstr = gUnknown_081D8F7D; + gBattlescriptCurrInstr = BattleScript_DamagingWeatherContinues; BATTLE_STRUCT->animArg1 = B_ANIM_SANDSTORM_CONTINUES; gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -561,10 +561,10 @@ u8 UpdateTurnCounters(void) if (!(gBattleWeather & WEATHER_SUN_PERMANENT) && --gWishFutureKnock.weatherDuration == 0) { gBattleWeather &= ~WEATHER_SUN_TEMPORARY; - gBattlescriptCurrInstr = gUnknown_081D9016; + gBattlescriptCurrInstr = BattleScript_SunlightFaded; } else - gBattlescriptCurrInstr = gUnknown_081D9008; + gBattlescriptCurrInstr = BattleScript_SunlightContinues; b_call_bc_move_exec(gBattlescriptCurrInstr); effect++; @@ -577,10 +577,10 @@ u8 UpdateTurnCounters(void) if (--gWishFutureKnock.weatherDuration == 0) { gBattleWeather &= ~WEATHER_HAIL; - gBattlescriptCurrInstr = gUnknown_081D8FFF; + gBattlescriptCurrInstr = BattleScript_SandStormHailEnds; } else - gBattlescriptCurrInstr = gUnknown_081D8F7D; + gBattlescriptCurrInstr = BattleScript_DamagingWeatherContinues; BATTLE_STRUCT->animArg1 = B_ANIM_HAIL_CONTINUES; gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -760,7 +760,7 @@ u8 TurnBasedEffects(void) gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP); gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); gBattleCommunication[MULTISTRING_CHOOSER] = 1; - b_call_bc_move_exec(gUnknown_081D950F); + b_call_bc_move_exec(BattleScript_MonWokeUpInUproar); gActiveBank = gBankAttacker; EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); MarkBufferBankForExecution(gActiveBank); @@ -791,7 +791,7 @@ u8 TurnBasedEffects(void) gBattleCommunication[MULTISTRING_CHOOSER] = 1; CancelMultiTurnMoves(gActiveBank); } - b_call_bc_move_exec(gUnknown_081D957E); + b_call_bc_move_exec(BattleScript_PrintUproarOverTurns); effect = 1; } } @@ -938,7 +938,7 @@ bool8 sub_80170DC(void) // handle future sight and perish song gBankAttacker = gWishFutureKnock.futureSightAttacker[gActiveBank]; gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBank]; gSpecialStatuses[gBankTarget].moveturnLostHP = 0xFFFF; - b_call_bc_move_exec(BattleScript_FutureSightHits); + b_call_bc_move_exec(BattleScript_MonTookFutureAttack); return 1; } } @@ -1009,7 +1009,7 @@ bool8 sub_80173A4(void) gBank1 = gBankTarget = BATTLE_STRUCT->unk1605A; if (gBattleMons[BATTLE_STRUCT->unk1605A].hp == 0 && !(BATTLE_STRUCT->unk16113 & gBitTable[gBattlePartyID[BATTLE_STRUCT->unk1605A]]) && !(gAbsentBankFlags & gBitTable[BATTLE_STRUCT->unk1605A])) { - b_call_bc_move_exec(gUnknown_081D8C72); + b_call_bc_move_exec(BattleScript_GiveExp); BATTLE_STRUCT->sub80173A4_Tracker = 2; return 1; } @@ -1032,7 +1032,7 @@ bool8 sub_80173A4(void) gBank1 = gBankTarget = BATTLE_STRUCT->unk1605A; //or should banks be switched? if (gBattleMons[BATTLE_STRUCT->unk1605A].hp == 0 && !(gAbsentBankFlags & gBitTable[BATTLE_STRUCT->unk1605A])) { - b_call_bc_move_exec(gUnknown_081D8C7B); + b_call_bc_move_exec(BattleScript_HandleFaintedMon); BATTLE_STRUCT->sub80173A4_Tracker = 5; return 1; } @@ -1534,7 +1534,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (effect) { gBattleCommunication[MULTISTRING_CHOOSER] = weather_get_current(); - b_push_move_exec(gUnknown_081D901D); + b_push_move_exec(BattleScript_OverworldWeatherStarts); } break; case ABILITY_DRIZZLE: @@ -1969,7 +1969,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) break; } b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = gUnknown_081D9956; + gBattlescriptCurrInstr = BattleScript_AbilityCuredStatus; BATTLE_STRUCT->scriptingActive = bank; gActiveBank = bank; EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); @@ -2768,7 +2768,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleMons[bank].status1 = 0; gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); - b_call_bc_move_exec(gUnknown_081D9A44); + b_call_bc_move_exec(BattleScript_BerryCureChosenStatusEnd2); effect = ITEM_STATUS_CHANGE; } break; @@ -2777,7 +2777,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) { gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION); StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); - b_call_bc_move_exec(gUnknown_081D9A44); + b_call_bc_move_exec(BattleScript_BerryCureChosenStatusEnd2); gBattleCommunication[MULTISTRING_CHOOSER] = 0; effect = ITEM_EFFECT_OTHER; } @@ -2882,7 +2882,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); b_movescr_stack_push_cursor(); gBattleCommunication[MULTISTRING_CHOOSER] = 0; - gBattlescriptCurrInstr = gUnknown_081D9A4A; + gBattlescriptCurrInstr = BattleScript_BerryCureChosenStatusRet; effect = ITEM_EFFECT_OTHER; } break; @@ -2918,7 +2918,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); b_movescr_stack_push_cursor(); gBattleCommunication[MULTISTRING_CHOOSER] = 0; - gBattlescriptCurrInstr = gUnknown_081D9A4A; + gBattlescriptCurrInstr = BattleScript_BerryCureChosenStatusRet; effect = ITEM_STATUS_CHANGE; } break; @@ -3186,7 +3186,7 @@ u8 IsPokeDisobedient(void) gBattleCommunication[3] = 0; gDynamicBasePower = 0; BATTLE_STRUCT->dynamicMoveType = 0; - gBattlescriptCurrInstr = gUnknown_081D996F; + gBattlescriptCurrInstr = BattleScript_IgnoresAndUsesRandomMove; gBankTarget = GetMoveTarget(gRandomMove, 0); gHitMarker |= HITMARKER_x200000; return 2; @@ -3208,7 +3208,7 @@ u8 IsPokeDisobedient(void) } if (i == gNoOfAllBanks) { - gBattlescriptCurrInstr = gUnknown_081D9989; + gBattlescriptCurrInstr = BattleScript_IgnoresAndFallsAsleep; return 1; } } diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c index f37ba8682..7f67abe81 100644 --- a/src/battle/battle_4.c +++ b/src/battle/battle_4.c @@ -87,8 +87,8 @@ extern u8 gPlayerPartyCount; extern u16 gMoveToLearn; //move to learn extern const u8 gTrainerMoney[]; extern u16 gRandomMove; -extern u8* gBattleScriptsEffectsTable[]; -extern u16 gUnknown_02024BE8; //last used move in battle +extern u8* gBattleScriptsForMoveEffects[]; +extern u16 gChosenMove; //last used move in battle extern u8 gBankInMenu; extern u8 gActionForBanks[4]; extern u16 gUnknown_02024C2C[4]; //last used moves 2, used by sketch @@ -167,7 +167,7 @@ bool8 IsLinkDoubleBattle(void); void sub_8094B6C(u8 bank, u8 partyID, u8 r2); //extern BattleScripts -extern u8 BattleScript_EndTurn[]; +extern u8 BattleScript_MoveEnd[]; extern u8 BattleScript_NoPPForMove[]; extern u8 BattleScript_MagicCoatBounce[]; extern u8 BattleScript_TookAttack[]; @@ -205,21 +205,21 @@ extern u8 BattleScript_AllStatsUp[]; extern u8 BattleScript_AtkDefDown[]; extern u8 BattleScript_SAtkDown2[]; -extern u8 gUnknown_081D919F[]; //spikes1 -extern u8 gUnknown_081D9171[]; //spikes2 -extern u8 gUnknown_081D91CD[]; //spikes3 -extern u8 BattleScript_1D6F44[]; //present dmg -extern u8 BattleScript_1D83B5[]; //present full hp -extern u8 BattleScript_1D839B[]; //present hp heal -extern u8 BattleScript_1D6F74[]; +extern u8 BattleScript_SpikesOnTarget[]; //spikes1 +extern u8 BattleScript_SpikesOnAttacker[]; //spikes2 +extern u8 BattleScript_SpikesOngBank1[]; //spikes3 +extern u8 BattleScript_HitFromCritCalc[]; //present dmg +extern u8 BattleScript_AlreadyAtFullHp[]; //present full hp +extern u8 BattleScript_PresentHealTarget[]; //present hp heal +extern u8 BattleScript_MoveMissedPause[]; extern u8 BattleScript_CastformChange[]; -extern u8 gUnknown_081D9834[]; -extern u8 gUnknown_081D90FC[]; //bs random switchout -extern u8 gUnknown_081D95DB[]; //bs payday money give -extern u8 gUnknown_081D8C58[]; -extern u8 gUnknown_081D8C65[]; -extern u8 gUnknown_081D9156[]; -extern u8 gUnknown_081D9468[]; +extern u8 BattleScript_DampStopsExplosion[]; +extern u8 BattleScript_SuccessForceOut[]; //bs random switchout +extern u8 BattleScript_PrintPayDayMoneyString[]; //bs payday money give +extern u8 BattleScript_FaintAttacker[]; +extern u8 BattleScript_FaintTarget[]; +extern u8 BattleScript_DestinyBondTakesLife[]; +extern u8 BattleScript_SelectingImprisionedMoveInPalace[]; // read via orr #define BSScriptRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24) @@ -869,59 +869,59 @@ static const u32 gStatusFlagsForMoveEffects[] = 0x00000000 }; -extern u8 BattleScript_1D963E[]; -extern u8 BattleScript_1D965A[]; -extern u8 BattleScript_1D9669[]; -extern u8 BattleScript_1D9678[]; -extern u8 BattleScript_1D9687[]; -extern u8 BattleScript_1D969D[]; -extern u8 BattleScript_1D96BA[]; -extern u8 BattleScript_1D9696[]; -extern u8 BattleScript_1D96B1[]; -extern u8 BattleScript_1D96AA[]; -extern u8 BattleScript_1D96C8[]; +extern u8 BattleScript_MoveEffectSleep[]; +extern u8 BattleScript_MoveEffectPoison[]; +extern u8 BattleScript_MoveEffectBurn[]; +extern u8 BattleScript_MoveEffectFreeze[]; +extern u8 BattleScript_MoveEffectParalysis[]; +extern u8 BattleScript_MoveEffectToxic[]; +extern u8 BattleScript_MoveEffectConfusion[]; +extern u8 BattleScript_MoveEffectUproar[]; +extern u8 BattleScript_MoveEffectWrap[]; +extern u8 BattleScript_MoveEffectPayDay[]; +extern u8 BattleScript_MoveEffectRecoil33[]; u8* const gMoveEffectBS_Ptrs[] = { - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D965A, - BattleScript_1D9669, - BattleScript_1D9678, - BattleScript_1D9687, - BattleScript_1D969D, - BattleScript_1D96BA, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D9696, - BattleScript_1D96AA, - BattleScript_1D963E, - BattleScript_1D96B1, - BattleScript_1D96C8, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D963E, - BattleScript_1D96C8 + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectPoison, + BattleScript_MoveEffectBurn, + BattleScript_MoveEffectFreeze, + BattleScript_MoveEffectParalysis, + BattleScript_MoveEffectToxic, + BattleScript_MoveEffectConfusion, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectUproar, + BattleScript_MoveEffectPayDay, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectWrap, + BattleScript_MoveEffectRecoil33, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectSleep, + BattleScript_MoveEffectRecoil33 }; const u8 sUnreferencedBitMask1[] = {0, 1, 3, 7, 0xF, 0x1F, 0x3F}; @@ -1034,7 +1034,7 @@ static void atk00_attackcanceler(void) if (gBattleMons[gBankAttacker].hp == 0 && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) { gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; - gBattlescriptCurrInstr = BattleScript_EndTurn; + gBattlescriptCurrInstr = BattleScript_MoveEnd; return; } if (AtkCanceller_UnableToUseMove()) @@ -4995,13 +4995,13 @@ static void atk19_tryfaintmon(void) { gActiveBank = gBankAttacker; bank = gBankTarget; - r4 = gUnknown_081D8C58; + r4 = BattleScript_FaintAttacker; } else { gActiveBank = gBankTarget; bank = gBankAttacker; - r4 = gUnknown_081D8C65; + r4 = BattleScript_FaintTarget; } if (!(gAbsentBankFlags & gBitTable[gActiveBank]) && gBattleMons[gActiveBank].hp == 0) @@ -5039,7 +5039,7 @@ static void atk19_tryfaintmon(void) { b_movescr_stack_push(gBattlescriptCurrInstr); gBattleMoveDamage = gBattleMons[bank].hp; - gBattlescriptCurrInstr = gUnknown_081D9156; + gBattlescriptCurrInstr = BattleScript_DestinyBondTakesLife; } if ((gStatuses3[gBankTarget] & STATUS3_GRUDGE) && !(gHitMarker & HITMARKER_GRUDGE) @@ -5051,7 +5051,7 @@ static void atk19_tryfaintmon(void) gBattleMons[gBankAttacker].pp[moveIndex] = 0; b_movescr_stack_push(gBattlescriptCurrInstr); - gBattlescriptCurrInstr = gUnknown_081D9468; + gBattlescriptCurrInstr = BattleScript_SelectingImprisionedMoveInPalace; gActiveBank = gBankAttacker; EmitSetAttributes(0, moveIndex + 9, 0, 1, &gBattleMons[gActiveBank].pp[moveIndex]); MarkBufferBankForExecution(gActiveBank); @@ -7831,7 +7831,7 @@ static void atk49_moveend(void) { gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK]++; b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = gUnknown_081D9132; + gBattlescriptCurrInstr = BattleScript_RageIsBuilding; effect = 1; } BATTLE_STRUCT->cmd49StateTracker++; @@ -7847,7 +7847,7 @@ static void atk49_moveend(void) EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1); MarkBufferBankForExecution(gActiveBank); b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = gUnknown_081D955D; + gBattlescriptCurrInstr = BattleScript_DefrostedViaFireMove; effect = 1; } BATTLE_STRUCT->cmd49StateTracker++; @@ -8008,7 +8008,7 @@ _08021874:\n\ adds r0, r3\n\ strb r4, [r0]\n\ bl MoveValuesCleanUp\n\ - ldr r2, _080218B4 @ =gBattleScriptsEffectsTable\n\ + ldr r2, _080218B4 @ =gBattleScriptsForMoveEffects\n\ mov r4, r8\n\ ldrh r1, [r4]\n\ lsls r0, r1, 1\n\ @@ -8026,7 +8026,7 @@ _08021874:\n\ .align 2, 0\n\ _080218AC: .4byte gSharedMem\n\ _080218B0: .4byte 0x0001600c\n\ -_080218B4: .4byte gBattleScriptsEffectsTable\n\ +_080218B4: .4byte gBattleScriptsForMoveEffects\n\ _080218B8: .4byte gBattlescriptCurrInstr\n\ _080218BC: .4byte gUnknown_081D9B2D\n\ _080218C0:\n\ @@ -8166,7 +8166,7 @@ _080219C8:\n\ strb r0, [r1, 0x19]\n\ bl b_movescr_stack_push_cursor\n\ ldr r1, _08021A24 @ =gBattlescriptCurrInstr\n\ - ldr r0, _08021A28 @ =gUnknown_081D9132\n\ + ldr r0, _08021A28 @ =BattleScript_RageIsBuilding\n\ str r0, [r1]\n\ movs r5, 0x1\n\ mov r10, r5\n\ @@ -8184,7 +8184,7 @@ _08021A18: .4byte gProtectStructs\n\ _08021A1C: .4byte gBattleMoves\n\ _08021A20: .4byte gCurrentMove\n\ _08021A24: .4byte gBattlescriptCurrInstr\n\ -_08021A28: .4byte gUnknown_081D9132\n\ +_08021A28: .4byte BattleScript_RageIsBuilding\n\ _08021A2C: .4byte gSharedMem\n\ _08021A30: .4byte 0x0001600c\n\ _08021A34:\n\ @@ -8264,7 +8264,7 @@ _08021A92:\n\ bl MarkBufferBankForExecution\n\ bl b_movescr_stack_push_cursor\n\ ldr r1, _08021AE8 @ =gBattlescriptCurrInstr\n\ - ldr r0, _08021AEC @ =gUnknown_081D955D\n\ + ldr r0, _08021AEC @ =BattleScript_DefrostedViaFireMove\n\ str r0, [r1]\n\ movs r2, 0x1\n\ mov r10, r2\n\ @@ -8277,7 +8277,7 @@ _08021ADC: .4byte gSpecialStatuses\n\ _08021AE0: .4byte gBattleMoveFlags\n\ _08021AE4: .4byte gActiveBank\n\ _08021AE8: .4byte gBattlescriptCurrInstr\n\ -_08021AEC: .4byte gUnknown_081D955D\n\ +_08021AEC: .4byte BattleScript_DefrostedViaFireMove\n\ _08021AF0:\n\ ldr r0, _08021B14 @ =gBankTarget\n\ ldrb r1, [r0]\n\ @@ -8376,7 +8376,7 @@ _08021B9C:\n\ ldr r4, [sp, 0x8]\n\ cmp r4, 0x1D\n\ bne _08021BE0\n\ - ldr r0, _08021C2C @ =gUnknown_02024BE8\n\ + ldr r0, _08021C2C @ =gChosenMove\n\ ldrh r2, [r0]\n\ adds r7, r0, 0\n\ cmp r2, 0xA5\n\ @@ -8444,7 +8444,7 @@ _08021C22:\n\ b _08022244\n\ .align 2, 0\n\ _08021C28: .4byte gHitMarker\n\ -_08021C2C: .4byte gUnknown_02024BE8\n\ +_08021C2C: .4byte gChosenMove\n\ _08021C30: .4byte 0x0000ffff\n\ _08021C34: .4byte gBattleMoveFlags\n\ _08021C38: .4byte gBattleMons\n\ @@ -8733,7 +8733,7 @@ _08021E70:\n\ str r3, [r5]\n\ _08021E9A:\n\ ldr r1, _08021F40 @ =gBattleMoves\n\ - ldr r2, _08021F44 @ =gUnknown_02024BE8\n\ + ldr r2, _08021F44 @ =gChosenMove\n\ ldrh r3, [r2]\n\ lsls r0, r3, 1\n\ adds r0, r3\n\ @@ -8816,7 +8816,7 @@ _08021F34: .4byte gActiveBank\n\ _08021F38: .4byte gBankTarget\n\ _08021F3C: .4byte 0xffffefff\n\ _08021F40: .4byte gBattleMoves\n\ -_08021F44: .4byte gUnknown_02024BE8\n\ +_08021F44: .4byte gChosenMove\n\ _08021F48: .4byte gBattleMoveFlags\n\ _08021F4C: .4byte gUnknown_02024C2C\n\ _08021F50: .4byte gAbsentBankFlags\n\ @@ -8967,7 +8967,7 @@ _08022082:\n\ b _08022244\n\ _08022090:\n\ ldr r1, _0802213C @ =gBattleMoves\n\ - ldr r4, _08022140 @ =gUnknown_02024BE8\n\ + ldr r4, _08022140 @ =gChosenMove\n\ ldrh r3, [r4]\n\ lsls r0, r3, 1\n\ adds r0, r3\n\ @@ -9051,7 +9051,7 @@ _08022130: .4byte gBitTable\n\ _08022134: .4byte gBankAttacker\n\ _08022138: .4byte 0x000160a6\n\ _0802213C: .4byte gBattleMoves\n\ -_08022140: .4byte gUnknown_02024BE8\n\ +_08022140: .4byte gChosenMove\n\ _08022144: .4byte gHitMarker\n\ _08022148: .4byte gBankTarget\n\ _0802214C: .4byte gBattleMoveFlags\n\ @@ -10641,11 +10641,11 @@ static void atk52_switchineffects(void) b_movescr_stack_push_cursor(); if (T2_READ_8(gBattlescriptCurrInstr + 1) == 0) - gBattlescriptCurrInstr = gUnknown_081D919F; + gBattlescriptCurrInstr = BattleScript_SpikesOnTarget; else if (T2_READ_8(gBattlescriptCurrInstr + 1) == 1) - gBattlescriptCurrInstr = gUnknown_081D9171; + gBattlescriptCurrInstr = BattleScript_SpikesOnAttacker; else - gBattlescriptCurrInstr = gUnknown_081D91CD; + gBattlescriptCurrInstr = BattleScript_SpikesOngBank1; } else { @@ -11307,8 +11307,8 @@ static void atk63_jumptorandomattack(void) if (T2_READ_8(gBattlescriptCurrInstr + 1)) gCurrentMove = gRandomMove; else - gUnknown_02024BE8 = gCurrentMove = gRandomMove; - gBattlescriptCurrInstr = gBattleScriptsEffectsTable[gBattleMoves[gCurrentMove].effect]; + gChosenMove = gCurrentMove = gRandomMove; + gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } static void atk64_statusanimation(void) @@ -12138,7 +12138,7 @@ static void atk78_faintifabilitynotdamp(void) { gLastUsedAbility = ABILITY_DAMP; RecordAbilityBattle(gBankTarget, gBattleMons[gBankTarget].ability); - gBattlescriptCurrInstr = gUnknown_081D9834; + gBattlescriptCurrInstr = BattleScript_DampStopsExplosion; } } @@ -12207,7 +12207,7 @@ static void atk7C_trymirrormove(void) gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gCurrentMove = r7; gBankTarget = GetMoveTarget(gCurrentMove, 0); - gBattlescriptCurrInstr = gBattleScriptsEffectsTable[gBattleMoves[gCurrentMove].effect]; + gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } else if (r6 != 0 && r5 != 0 && r6 != 0xFFFF && r5 != 0xFFFF) { @@ -12217,21 +12217,21 @@ static void atk7C_trymirrormove(void) else gCurrentMove = r5; gBankTarget = GetMoveTarget(gCurrentMove, 0); - gBattlescriptCurrInstr = gBattleScriptsEffectsTable[gBattleMoves[gCurrentMove].effect]; + gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } else if (r6 != 0 && r6 != 0xFFFF) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gCurrentMove = r6; gBankTarget = GetMoveTarget(gCurrentMove, 0); - gBattlescriptCurrInstr = gBattleScriptsEffectsTable[gBattleMoves[gCurrentMove].effect]; + gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } else if (r5 != 0 && r5 != 0xFFFF) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gCurrentMove = r5; gBankTarget = GetMoveTarget(gCurrentMove, 0); - gBattlescriptCurrInstr = gBattleScriptsEffectsTable[gBattleMoves[gCurrentMove].effect]; + gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } else { @@ -13306,7 +13306,7 @@ static bool8 sub_80264C0(void) } ewram16064arr(gBankTarget) = gBattlePartyID[gBankTarget]; } - gBattlescriptCurrInstr = gUnknown_081D90FC; + gBattlescriptCurrInstr = BattleScript_SuccessForceOut; return 1; } @@ -13472,7 +13472,7 @@ static void atk91_givepaydaymoney(void) gBattleTextBuff1[5] = uBYTE1_16(gPaydayMoney); gBattleTextBuff1[6] = 0xFF; b_movescr_stack_push(gBattlescriptCurrInstr + 1); - gBattlescriptCurrInstr = gUnknown_081D95DB; + gBattlescriptCurrInstr = BattleScript_PrintPayDayMoneyString; } else gBattlescriptCurrInstr++; @@ -13647,7 +13647,7 @@ _08026C0C:\n\ ldr r0, _08026C60 @ =gLastUsedAbility\n\ strb r3, [r0]\n\ ldr r1, _08026C64 @ =gBattlescriptCurrInstr\n\ - ldr r0, _08026C68 @ =gUnknown_081D9826\n\ + ldr r0, _08026C68 @ =BattleScript_SturdyPreventsOHKO\n\ str r0, [r1]\n\ ldr r1, _08026C50 @ =gBankTarget\n\ ldrb r0, [r1]\n\ @@ -13662,7 +13662,7 @@ _08026C58: .4byte gBattleMons\n\ _08026C5C: .4byte gBattleMoveFlags\n\ _08026C60: .4byte gLastUsedAbility\n\ _08026C64: .4byte gBattlescriptCurrInstr\n\ -_08026C68: .4byte gUnknown_081D9826\n\ +_08026C68: .4byte BattleScript_SturdyPreventsOHKO\n\ _08026C6C:\n\ ldr r1, _08026CE0 @ =gStatuses3\n\ lsls r0, r2, 2\n\ @@ -14078,7 +14078,7 @@ static void atk9A_setfocusenergy(void) static void atk9B_transformdataexecution(void) { - gUnknown_02024BE8 = 0xFFFF; + gChosenMove = 0xFFFF; gBattlescriptCurrInstr++; if (gBattleMons[gBankTarget].status2 & STATUS2_TRANSFORMED || gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE) { @@ -14155,7 +14155,7 @@ static bool8 IsMoveUncopyable(u16 move) static void atk9D_mimicattackcopy(void) { - gUnknown_02024BE8 = 0xFFFF; + gChosenMove = 0xFFFF; if (IsMoveUncopyable(gLastUsedMove[gBankTarget]) || gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED || gLastUsedMove[gBankTarget] == 0 || gLastUsedMove[gBankTarget] == 0xFFFF) { @@ -14203,7 +14203,7 @@ static void atk9E_metronome(void) } while (sUnknown_081FACFE[i] != 0xFFFF); gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); - gBattlescriptCurrInstr = gBattleScriptsEffectsTable[gBattleMoves[gCurrentMove].effect]; + gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; gBankTarget = GetMoveTarget(gCurrentMove, 0); } @@ -14255,7 +14255,7 @@ _080278F8:\n\ ldr r1, _08027950 @ =0xfffffbff\n\ ands r0, r1\n\ str r0, [r2]\n\ - ldr r3, _08027954 @ =gBattleScriptsEffectsTable\n\ + ldr r3, _08027954 @ =gBattleScriptsForMoveEffects\n\ ldr r2, _08027958 @ =gBattleMoves\n\ ldrh r1, [r4]\n\ lsls r0, r1, 1\n\ @@ -14286,7 +14286,7 @@ _08027944: .4byte 0x000001ff\n\ _08027948: .4byte 0x0000ffff\n\ _0802794C: .4byte gHitMarker\n\ _08027950: .4byte 0xfffffbff\n\ -_08027954: .4byte gBattleScriptsEffectsTable\n\ +_08027954: .4byte gBattleScriptsForMoveEffects\n\ _08027958: .4byte gBattleMoves\n\ _0802795C: .4byte gBankTarget\n\ .syntax divided"); @@ -14742,7 +14742,7 @@ struct move_pp static void atkA8_copymovepermanently(void) { - gUnknown_02024BE8 = 0xFFFF; + gChosenMove = 0xFFFF; if (!(gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED) && gUnknown_02024C2C[gBankTarget] != MOVE_STRUGGLE && gUnknown_02024C2C[gBankTarget] != 0 && gUnknown_02024C2C[gBankTarget] != 0xFFFF && gUnknown_02024C2C[gBankTarget] != MOVE_SKETCH) { int i; @@ -15065,7 +15065,7 @@ static void atkB3_rolloutdamagecalculation(void) if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) { CancelMultiTurnMoves(gBankAttacker); - gBattlescriptCurrInstr = BattleScript_1D6F74; + gBattlescriptCurrInstr = BattleScript_MoveMissedPause; } else { @@ -15104,7 +15104,7 @@ static void atkB5_furycuttercalc(void) if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) { gDisableStructs[gBankAttacker].furyCutterCounter = 0; - gBattlescriptCurrInstr = BattleScript_1D6F74; + gBattlescriptCurrInstr = BattleScript_MoveMissedPause; } else { @@ -15147,13 +15147,13 @@ static void atkB7_presentdamagecalculation(void) gBattleMoveDamage *= -1; } if (rand < 204) - gBattlescriptCurrInstr = BattleScript_1D6F44; + gBattlescriptCurrInstr = BattleScript_HitFromCritCalc; else if (gBattleMons[gBankTarget].maxHP == gBattleMons[gBankTarget].hp) - gBattlescriptCurrInstr = BattleScript_1D83B5; + gBattlescriptCurrInstr = BattleScript_AlreadyAtFullHp; else { //gBattleMoveFlags &= ~(MOVESTATUS_NOTAFFECTED); only in Emerald - gBattlescriptCurrInstr = BattleScript_1D839B; + gBattlescriptCurrInstr = BattleScript_PresentHealTarget; } } @@ -15953,7 +15953,7 @@ static void atkCC_callterrainattack(void) //nature power gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gCurrentMove = sNaturePowerMoves[gBattleTerrain]; gBankTarget = GetMoveTarget(gCurrentMove, 0); - b_movescr_stack_push(gBattleScriptsEffectsTable[gBattleMoves[gCurrentMove].effect]); + b_movescr_stack_push(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]); gBattlescriptCurrInstr++; } diff --git a/src/data/battle_strings_de.h b/src/data/battle_strings_de.h index f78d0bf14..a3d51f2a5 100755 --- a/src/data/battle_strings_de.h +++ b/src/data/battle_strings_de.h @@ -1227,7 +1227,7 @@ const u16 gMissStrings[] = BATTLE_TEXT_GroundMoveNegate, }; -const u16 BattleTextList_401512[] = +const u16 gNoEscapeStringIds[] = { BATTLE_TEXT_CantEscape2, BATTLE_TEXT_BirchDontLeaveMe, @@ -1236,7 +1236,7 @@ const u16 BattleTextList_401512[] = BATTLE_TEXT_AttackingCantEscape, }; -const u16 BattleTextList_40151C[] = +const u16 gMoveWeatherChangeStringIds[] = { BATTLE_TEXT_RainStart, BATTLE_TEXT_PourStart, @@ -1246,39 +1246,39 @@ const u16 BattleTextList_40151C[] = BATTLE_TEXT_HailStart, }; -const u16 BattleTextList_401528[] = +const u16 gSandStormHailContinuesStringIds[] = { BATTLE_TEXT_SandRages, BATTLE_TEXT_HailCont, }; -const u16 BattleTextList_40152C[] = +const u16 gSandStormHailDmgStringIds[] = { BATTLE_TEXT_SandBuffeted, BATTLE_TEXT_HailStricken, }; -const u16 BattleTextList_401530[] = +const u16 gSandStormHailEndStringIds[] = { BATTLE_TEXT_SandSubsided, BATTLE_TEXT_HailStop, }; -const u16 BattleTextList_401534[] = +const u16 gRainContinuesStringIds[] = { BATTLE_TEXT_RainCont1, BATTLE_TEXT_PourCont, BATTLE_TEXT_RainStop, }; -const u16 BattleTextList_40153A[] = +const u16 gProtectLikeUsedStringIds[] = { BATTLE_TEXT_ProtectedItself2, BATTLE_TEXT_BracedItself, BATTLE_TEXT_Failed, }; -const u16 BattleTextList_401540[] = +const u16 gReflectLightScreenSafeguardStringIds[] = { BATTLE_TEXT_Failed, BATTLE_TEXT_RaisedDefense, @@ -1288,7 +1288,7 @@ const u16 BattleTextList_401540[] = BATTLE_TEXT_CoveredVeil, }; -const u16 BattleTextList_40154C[] = +const u16 gLeechSeedStringIds[] = { BATTLE_TEXT_WasSeeded, BATTLE_TEXT_EvadedAttack, @@ -1297,44 +1297,44 @@ const u16 BattleTextList_40154C[] = BATTLE_TEXT_OozeSuckup, }; -const u16 BattleTextList_401556[] = +const u16 gRestUsedStringIds[] = { BATTLE_TEXT_WentToSleep, BATTLE_TEXT_SpeltHealthy, }; -const u16 BattleTextList_40155A[] = +const u16 gUproarOverTurnStringIds[] = { BATTLE_TEXT_UproarMaking, BATTLE_TEXT_CalmedDown, }; -const u16 BattleTextList_40155E[] = +const u16 gStockpileUsedStringIds[] = { BATTLE_TEXT_Stockpiled, BATTLE_TEXT_StockpiledCant, }; -const u16 BattleTextList_401562[] = +const u16 gWokeUpStringIds[] = { BATTLE_TEXT_WokeUp, BATTLE_TEXT_UproarWoke, }; -const u16 BattleTextList_401566[] = +const u16 gSwallowFailStringIds[] = { BATTLE_TEXT_SwallowFail, BATTLE_TEXT_HPFull, }; -const u16 BattleTextList_40156A[] = +const u16 gUproarAwakeStringIds[] = { BATTLE_TEXT_UproarCantSleep2, BATTLE_TEXT_UproarKeptAwake, BATTLE_TEXT_StayedAwake, }; -const u16 BattleTextList_401570[] = +const u16 gStatUpStringIds[] = { BATTLE_TEXT_UnknownString7, BATTLE_TEXT_UnknownString3, @@ -1344,7 +1344,7 @@ const u16 BattleTextList_401570[] = BATTLE_TEXT_HustleUse, }; -const u16 BattleTextList_40157C[] = +const u16 gStatDownStringIds[] = { BATTLE_TEXT_UnknownString5, BATTLE_TEXT_UnknownString6, @@ -1352,7 +1352,7 @@ const u16 BattleTextList_40157C[] = BATTLE_TEXT_Terminator2, }; -const u16 BattleTextList_401584[] = +const u16 gFirstTurnOfTwoStringIds[] = { BATTLE_TEXT_WhipWhirlwind, BATTLE_TEXT_TookSunlight, @@ -1364,7 +1364,7 @@ const u16 BattleTextList_401584[] = BATTLE_TEXT_SprangUp, }; -const u16 BattleTextList_401594[] = +const u16 gWrappedStringIds[] = { BATTLE_TEXT_SqueezedBind, BATTLE_TEXT_Wrapped, @@ -1374,67 +1374,67 @@ const u16 BattleTextList_401594[] = BATTLE_TEXT_SandTombTrapped, }; -const u16 BattleTextList_4015A0[] = +const u16 gMistUsedStringIds[] = { BATTLE_TEXT_MistShroud, BATTLE_TEXT_Failed, }; -const u16 BattleTextList_4015A4[] = +const u16 gFocusEnergyUsedStringIds[] = { BATTLE_TEXT_GetPumped, BATTLE_TEXT_Failed, }; -const u16 BattleTextList_4015A8[] = +const u16 gTransformUsedStringIds[] = { BATTLE_TEXT_Transformed, BATTLE_TEXT_Failed, }; -const u16 BattleTextList_4015AC[] = +const u16 gSubsituteUsedStringIds[] = { BATTLE_TEXT_SubMade, BATTLE_TEXT_SubWeak, }; -const u16 BattleTextList_4015B0[] = +const u16 gGotPoisonedStringIds[] = { BATTLE_TEXT_Poisoned, BATTLE_TEXT_Poisoned2, }; -const u16 BattleTextList_4015B4[] = +const u16 gGotParalyzedStringIds[] = { BATTLE_TEXT_Paralyzed, BATTLE_TEXT_Paralyzed2, }; -const u16 BattleTextList_4015B8[] = +const u16 gFellAsleepStringIds[] = { BATTLE_TEXT_FellAsleep, BATTLE_TEXT_MadeAsleep, }; -const u16 BattleTextList_4015BC[] = +const u16 gGotBurnedStringIds[] = { BATTLE_TEXT_Burned, BATTLE_TEXT_Burned2, }; -const u16 BattleTextList_4015C0[] = +const u16 gGotFrozenStringIds[] = { BATTLE_TEXT_Frozen, BATTLE_TEXT_Frozen2, }; -const u16 BattleTextList_4015C4[] = +const u16 gGotDefrostedStringIds[] = { BATTLE_TEXT_AttackingDefrosted, BATTLE_TEXT_Defrosted, }; -const u16 BattleTextList_4015C8[] = +const u16 gKOFailedStringIds[] = { BATTLE_TEXT_AttackMissed, BATTLE_TEXT_Unaffected, @@ -1442,19 +1442,19 @@ const u16 BattleTextList_4015C8[] = BATTLE_TEXT_InfatuatedPoke, }; -const u16 BattleTextList_4015D0[] = +const u16 gLeechSeedDrainStringIds[] = { BATTLE_TEXT_EnergyDrained, BATTLE_TEXT_OozeSuckup, }; -const u16 BattleTextList_4015D4[] = +const u16 gSportsUsedStringIds[] = { BATTLE_TEXT_ElecWeakened, BATTLE_TEXT_FireWeakened, }; -const u16 BattleTextList_4015D8[] = +const u16 gPartyStatusHealStringIds[] = { BATTLE_TEXT_BellChime, BATTLE_TEXT_BellChime, @@ -1463,13 +1463,13 @@ const u16 BattleTextList_4015D8[] = BATTLE_TEXT_SoothingAroma, }; -const u16 BattleTextList_4015E2[] = +const u16 gFutureMoveUsedStringIds[] = { BATTLE_TEXT_ForesawAttack, BATTLE_TEXT_ChoseDestiny, }; -const u16 BattleTextList_4015E6[] = +const u16 gBallEscapeStringIds[] = { BATTLE_TEXT_BallBrokeOhNo, BATTLE_TEXT_BallBrokeAppeared, @@ -1477,7 +1477,7 @@ const u16 BattleTextList_4015E6[] = BATTLE_TEXT_BallBrokeSoClose, }; -const u16 BattleTextList_4015EE[] = +const u16 gWeatherContinuesStringIds[] = { BATTLE_TEXT_Raining, BATTLE_TEXT_Raining, @@ -1497,7 +1497,7 @@ const u16 BattleTextList_4015EE[] = BATTLE_TEXT_Raining, }; -const u16 BattleTextList_40160E[] = +const u16 gInobedientStringIds[] = { BATTLE_TEXT_LoafingAround, BATTLE_TEXT_WontObey, @@ -1505,20 +1505,20 @@ const u16 BattleTextList_40160E[] = BATTLE_TEXT_NotNotice, }; -const u16 BattleTextList_401616[] = +const u16 gSafariGetNearStringIds[] = { BATTLE_TEXT_CreptCloser, BATTLE_TEXT_CantGetCloser, }; -const u16 BattleTextList_40161A[] = +const u16 gSafariPokeblockResultStringIds[] = { BATTLE_TEXT_CuriousAbout, BATTLE_TEXT_EnthralledBy, BATTLE_TEXT_IgnoredThing, }; -const u16 BattleTextList_401620[] = +const u16 gTrainerItemCuredStatusStringIds[] = { BATTLE_TEXT_CuredConfusion, BATTLE_TEXT_CuredParalysis, @@ -1528,41 +1528,41 @@ const u16 BattleTextList_401620[] = BATTLE_TEXT_CuredSleep, }; -const u16 BattleTextList_40162C[] = +const u16 gBerryEffectStringIds[] = { BATTLE_TEXT_CuredStatus, BATTLE_TEXT_NormalizedStatus, }; -const u16 BattleTextList_401630[] = +const u16 gBRNPreventionStringIds[] = { BATTLE_TEXT_PreventedBurn, BATTLE_TEXT_PreventedOther2, BATTLE_TEXT_NoEffectOn, }; -const u16 BattleTextList_401636[] = +const u16 gPRLZPreventionStringIds[] = { BATTLE_TEXT_PreventedPara, BATTLE_TEXT_PreventedOther2, BATTLE_TEXT_NoEffectOn, }; -const u16 BattleTextList_40163C[] = +const u16 gPSNPreventionStringIds[] = { BATTLE_TEXT_PreventedPoison, BATTLE_TEXT_PreventedOther2, BATTLE_TEXT_NoEffectOn, }; -const u16 BattleTextList_401642[] = +const u16 gItemSwapStringIds[] = { BATTLE_TEXT_Obtained1, BATTLE_TEXT_Obtained2, BATTLE_TEXT_Obtained3, }; -const u16 BattleTextList_401648[] = +const u16 gFlashFireStringIds[] = { BATTLE_TEXT_RaisedFirePower, BATTLE_TEXT_MadeIneffective, diff --git a/src/data/battle_strings_en.h b/src/data/battle_strings_en.h index 26523d2e0..f29e48410 100755 --- a/src/data/battle_strings_en.h +++ b/src/data/battle_strings_en.h @@ -1227,7 +1227,7 @@ const u16 gMissStrings[] = BATTLE_TEXT_GroundMoveNegate, }; -const u16 BattleTextList_401512[] = +const u16 gNoEscapeStringIds[] = { BATTLE_TEXT_CantEscape2, BATTLE_TEXT_BirchDontLeaveMe, @@ -1236,7 +1236,7 @@ const u16 BattleTextList_401512[] = BATTLE_TEXT_AttackingCantEscape, }; -const u16 BattleTextList_40151C[] = +const u16 gMoveWeatherChangeStringIds[] = { BATTLE_TEXT_RainStart, BATTLE_TEXT_PourStart, @@ -1246,39 +1246,39 @@ const u16 BattleTextList_40151C[] = BATTLE_TEXT_HailStart, }; -const u16 BattleTextList_401528[] = +const u16 gSandStormHailContinuesStringIds[] = { BATTLE_TEXT_SandRages, BATTLE_TEXT_HailCont, }; -const u16 BattleTextList_40152C[] = +const u16 gSandStormHailDmgStringIds[] = { BATTLE_TEXT_SandBuffeted, BATTLE_TEXT_HailStricken, }; -const u16 BattleTextList_401530[] = +const u16 gSandStormHailEndStringIds[] = { BATTLE_TEXT_SandSubsided, BATTLE_TEXT_HailStop, }; -const u16 BattleTextList_401534[] = +const u16 gRainContinuesStringIds[] = { BATTLE_TEXT_RainCont1, BATTLE_TEXT_PourCont, BATTLE_TEXT_RainStop, }; -const u16 BattleTextList_40153A[] = +const u16 gProtectLikeUsedStringIds[] = { BATTLE_TEXT_ProtectedItself2, BATTLE_TEXT_BracedItself, BATTLE_TEXT_Failed, }; -const u16 BattleTextList_401540[] = +const u16 gReflectLightScreenSafeguardStringIds[] = { BATTLE_TEXT_Failed, BATTLE_TEXT_RaisedDefense, @@ -1288,7 +1288,7 @@ const u16 BattleTextList_401540[] = BATTLE_TEXT_CoveredVeil, }; -const u16 BattleTextList_40154C[] = +const u16 gLeechSeedStringIds[] = { BATTLE_TEXT_WasSeeded, BATTLE_TEXT_EvadedAttack, @@ -1297,44 +1297,44 @@ const u16 BattleTextList_40154C[] = BATTLE_TEXT_OozeSuckup, }; -const u16 BattleTextList_401556[] = +const u16 gRestUsedStringIds[] = { BATTLE_TEXT_WentToSleep, BATTLE_TEXT_SpeltHealthy, }; -const u16 BattleTextList_40155A[] = +const u16 gUproarOverTurnStringIds[] = { BATTLE_TEXT_UproarMaking, BATTLE_TEXT_CalmedDown, }; -const u16 BattleTextList_40155E[] = +const u16 gStockpileUsedStringIds[] = { BATTLE_TEXT_Stockpiled, BATTLE_TEXT_StockpiledCant, }; -const u16 BattleTextList_401562[] = +const u16 gWokeUpStringIds[] = { BATTLE_TEXT_WokeUp, BATTLE_TEXT_UproarWoke, }; -const u16 BattleTextList_401566[] = +const u16 gSwallowFailStringIds[] = { BATTLE_TEXT_SwallowFail, BATTLE_TEXT_HPFull, }; -const u16 BattleTextList_40156A[] = +const u16 gUproarAwakeStringIds[] = { BATTLE_TEXT_UproarCantSleep2, BATTLE_TEXT_UproarKeptAwake, BATTLE_TEXT_StayedAwake, }; -const u16 BattleTextList_401570[] = +const u16 gStatUpStringIds[] = { BATTLE_TEXT_UnknownString7, BATTLE_TEXT_UnknownString3, @@ -1344,7 +1344,7 @@ const u16 BattleTextList_401570[] = BATTLE_TEXT_HustleUse, }; -const u16 BattleTextList_40157C[] = +const u16 gStatDownStringIds[] = { BATTLE_TEXT_UnknownString5, BATTLE_TEXT_UnknownString6, @@ -1352,7 +1352,7 @@ const u16 BattleTextList_40157C[] = BATTLE_TEXT_Terminator2, }; -const u16 BattleTextList_401584[] = +const u16 gFirstTurnOfTwoStringIds[] = { BATTLE_TEXT_WhipWhirlwind, BATTLE_TEXT_TookSunlight, @@ -1364,7 +1364,7 @@ const u16 BattleTextList_401584[] = BATTLE_TEXT_SprangUp, }; -const u16 BattleTextList_401594[] = +const u16 gWrappedStringIds[] = { BATTLE_TEXT_SqueezedBind, BATTLE_TEXT_Wrapped, @@ -1374,67 +1374,67 @@ const u16 BattleTextList_401594[] = BATTLE_TEXT_SandTombTrapped, }; -const u16 BattleTextList_4015A0[] = +const u16 gMistUsedStringIds[] = { BATTLE_TEXT_MistShroud, BATTLE_TEXT_Failed, }; -const u16 BattleTextList_4015A4[] = +const u16 gFocusEnergyUsedStringIds[] = { BATTLE_TEXT_GetPumped, BATTLE_TEXT_Failed, }; -const u16 BattleTextList_4015A8[] = +const u16 gTransformUsedStringIds[] = { BATTLE_TEXT_Transformed, BATTLE_TEXT_Failed, }; -const u16 BattleTextList_4015AC[] = +const u16 gSubsituteUsedStringIds[] = { BATTLE_TEXT_SubMade, BATTLE_TEXT_SubWeak, }; -const u16 BattleTextList_4015B0[] = +const u16 gGotPoisonedStringIds[] = { BATTLE_TEXT_Poisoned, BATTLE_TEXT_Poisoned2, }; -const u16 BattleTextList_4015B4[] = +const u16 gGotParalyzedStringIds[] = { BATTLE_TEXT_Paralyzed, BATTLE_TEXT_Paralyzed2, }; -const u16 BattleTextList_4015B8[] = +const u16 gFellAsleepStringIds[] = { BATTLE_TEXT_FellAsleep, BATTLE_TEXT_MadeAsleep, }; -const u16 BattleTextList_4015BC[] = +const u16 gGotBurnedStringIds[] = { BATTLE_TEXT_Burned, BATTLE_TEXT_Burned2, }; -const u16 BattleTextList_4015C0[] = +const u16 gGotFrozenStringIds[] = { BATTLE_TEXT_Frozen, BATTLE_TEXT_Frozen2, }; -const u16 BattleTextList_4015C4[] = +const u16 gGotDefrostedStringIds[] = { BATTLE_TEXT_AttackingDefrosted, BATTLE_TEXT_Defrosted, }; -const u16 BattleTextList_4015C8[] = +const u16 gKOFailedStringIds[] = { BATTLE_TEXT_AttackMissed, BATTLE_TEXT_Unaffected, @@ -1442,19 +1442,19 @@ const u16 BattleTextList_4015C8[] = BATTLE_TEXT_InfatuatedPoke, }; -const u16 BattleTextList_4015D0[] = +const u16 gLeechSeedDrainStringIds[] = { BATTLE_TEXT_EnergyDrained, BATTLE_TEXT_OozeSuckup, }; -const u16 BattleTextList_4015D4[] = +const u16 gSportsUsedStringIds[] = { BATTLE_TEXT_ElecWeakened, BATTLE_TEXT_FireWeakened, }; -const u16 BattleTextList_4015D8[] = +const u16 gPartyStatusHealStringIds[] = { BATTLE_TEXT_BellChime, BATTLE_TEXT_BellChime, @@ -1463,13 +1463,13 @@ const u16 BattleTextList_4015D8[] = BATTLE_TEXT_SoothingAroma, }; -const u16 BattleTextList_4015E2[] = +const u16 gFutureMoveUsedStringIds[] = { BATTLE_TEXT_ForesawAttack, BATTLE_TEXT_ChoseDestiny, }; -const u16 BattleTextList_4015E6[] = +const u16 gBallEscapeStringIds[] = { BATTLE_TEXT_BallBrokeOhNo, BATTLE_TEXT_BallBrokeAppeared, @@ -1477,7 +1477,7 @@ const u16 BattleTextList_4015E6[] = BATTLE_TEXT_BallBrokeSoClose, }; -const u16 BattleTextList_4015EE[] = +const u16 gWeatherContinuesStringIds[] = { BATTLE_TEXT_Raining, BATTLE_TEXT_Raining, @@ -1497,7 +1497,7 @@ const u16 BattleTextList_4015EE[] = BATTLE_TEXT_Raining, }; -const u16 BattleTextList_40160E[] = +const u16 gInobedientStringIds[] = { BATTLE_TEXT_LoafingAround, BATTLE_TEXT_WontObey, @@ -1505,20 +1505,20 @@ const u16 BattleTextList_40160E[] = BATTLE_TEXT_NotNotice, }; -const u16 BattleTextList_401616[] = +const u16 gSafariGetNearStringIds[] = { BATTLE_TEXT_CreptCloser, BATTLE_TEXT_CantGetCloser, }; -const u16 BattleTextList_40161A[] = +const u16 gSafariPokeblockResultStringIds[] = { BATTLE_TEXT_CuriousAbout, BATTLE_TEXT_EnthralledBy, BATTLE_TEXT_IgnoredThing, }; -const u16 BattleTextList_401620[] = +const u16 gTrainerItemCuredStatusStringIds[] = { BATTLE_TEXT_CuredConfusion, BATTLE_TEXT_CuredParalysis, @@ -1528,41 +1528,41 @@ const u16 BattleTextList_401620[] = BATTLE_TEXT_CuredSleep, }; -const u16 BattleTextList_40162C[] = +const u16 gBerryEffectStringIds[] = { BATTLE_TEXT_CuredStatus, BATTLE_TEXT_NormalizedStatus, }; -const u16 BattleTextList_401630[] = +const u16 gBRNPreventionStringIds[] = { BATTLE_TEXT_PreventedBurn, BATTLE_TEXT_PreventedOther2, BATTLE_TEXT_NoEffectOn, }; -const u16 BattleTextList_401636[] = +const u16 gPRLZPreventionStringIds[] = { BATTLE_TEXT_PreventedPara, BATTLE_TEXT_PreventedOther2, BATTLE_TEXT_NoEffectOn, }; -const u16 BattleTextList_40163C[] = +const u16 gPSNPreventionStringIds[] = { BATTLE_TEXT_PreventedPoison, BATTLE_TEXT_PreventedOther2, BATTLE_TEXT_NoEffectOn, }; -const u16 BattleTextList_401642[] = +const u16 gItemSwapStringIds[] = { BATTLE_TEXT_Obtained1, BATTLE_TEXT_Obtained2, BATTLE_TEXT_Obtained3, }; -const u16 BattleTextList_401648[] = +const u16 gFlashFireStringIds[] = { BATTLE_TEXT_RaisedFirePower, BATTLE_TEXT_MadeIneffective, diff --git a/src/rom3.c b/src/rom3.c index b29bc7428..cdc66989c 100644 --- a/src/rom3.c +++ b/src/rom3.c @@ -35,7 +35,7 @@ extern u8 gNoOfAllBanks; extern u16 gBattlePartyID[]; extern u8 gBanksBySide[]; extern u16 gCurrentMove; -extern u16 gUnknown_02024BE8; +extern u16 gChosenMove; extern u16 gLastUsedItem; extern u8 gLastUsedAbility; extern u8 gBankAttacker; @@ -745,7 +745,7 @@ void EmitPrintString(u8 a, u16 stringID) stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]); stringInfo->currentMove = gCurrentMove; - stringInfo->lastMove = gUnknown_02024BE8; + stringInfo->lastMove = gChosenMove; stringInfo->lastItem = gLastUsedItem; stringInfo->lastAbility = gLastUsedAbility; stringInfo->scrActive = BATTLE_STRUCT->scriptingActive; @@ -777,7 +777,7 @@ void EmitPrintStringPlayerOnly(u8 a, u16 stringID) stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]); stringInfo->currentMove = gCurrentMove; - stringInfo->lastMove = gUnknown_02024BE8; + stringInfo->lastMove = gChosenMove; stringInfo->lastItem = gLastUsedItem; stringInfo->lastAbility = gLastUsedAbility; stringInfo->scrActive = BATTLE_STRUCT->scriptingActive; diff --git a/sym_ewram.txt b/sym_ewram.txt index 3f2ba7660..8a216b012 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -110,7 +110,7 @@ gUnknown_02024BE5: @ 2024BE5 gCurrentMove: @ 2024BE6 .space 0x2 -gUnknown_02024BE8: @ 2024BE8 +gChosenMove: @ 2024BE8 .space 0x2 gRandomMove: @ 2024BEA |