From aa6a42ef41a3d50f78fe7b915aac7639b99f2eec Mon Sep 17 00:00:00 2001 From: cawtds Date: Sun, 26 May 2024 01:23:06 +0200 Subject: [PATCH] fix dire hit --- asm/macros/battle_script.inc | 3 ++- data/battle_scripts_1.s | 2 +- data/battle_scripts_2.s | 2 +- src/battle_script_commands.c | 13 +++++++------ 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index 78ea327fd..4cb2c526b 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -855,8 +855,9 @@ .byte 0x99 .endm - .macro setfocusenergy + .macro setfocusenergy battler:req .byte 0x9a + .byte \battler .endm .macro transformdataexecution diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index b6f5978fc..433a4dbee 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -3652,7 +3652,7 @@ BattleScript_EffectFocusEnergy:: attackstring ppreduce jumpifstatus2 BS_ATTACKER, STATUS2_FOCUS_ENERGY_ANY, BattleScript_ButItFailed - setfocusenergy + setfocusenergy BS_TARGET attackanimation waitanimation printfromtable gFocusEnergyUsedStringIds diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index f794aa99c..1fc6cf9fb 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -190,7 +190,7 @@ BattleScript_ItemSetMist:: BattleScript_ItemSetFocusEnergy:: call BattleScript_UseItemMessage jumpifstatus2 BS_ATTACKER, STATUS2_FOCUS_ENERGY_ANY, BattleScript_ButItFailed - setfocusenergy + setfocusenergy BS_ATTACKER playmoveanimation BS_ATTACKER, MOVE_FOCUS_ENERGY waitanimation copybyte sBATTLER, gBattlerAttacker diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 7e406949d..a8bb0a572 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -12392,22 +12392,23 @@ static void Cmd_setmist(void) static void Cmd_setfocusenergy(void) { - CMD_ARGS(); + CMD_ARGS(u8 battler); + u8 battler = GetBattlerForBattleScript(cmd->battler); - if ((gMovesInfo[gCurrentMove].effect == EFFECT_DRAGON_CHEER && (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE) || (gAbsentBattlerFlags & gBitTable[gBattlerTarget]))) - || gBattleMons[gBattlerTarget].status2 & STATUS2_FOCUS_ENERGY_ANY) + if ((gMovesInfo[gCurrentMove].effect == EFFECT_DRAGON_CHEER && (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE) || (gAbsentBattlerFlags & gBitTable[battler]))) + || gBattleMons[battler].status2 & STATUS2_FOCUS_ENERGY_ANY) { gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_FOCUS_ENERGY_FAILED; } - else if (gMovesInfo[gCurrentMove].effect == EFFECT_DRAGON_CHEER && !IS_BATTLER_OF_TYPE(gBattlerTarget, TYPE_DRAGON)) + else if (gMovesInfo[gCurrentMove].effect == EFFECT_DRAGON_CHEER && !IS_BATTLER_OF_TYPE(battler, TYPE_DRAGON)) { - gBattleMons[gBattlerTarget].status2 |= STATUS2_DRAGON_CHEER; + gBattleMons[battler].status2 |= STATUS2_DRAGON_CHEER; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_GETTING_PUMPED; } else { - gBattleMons[gBattlerTarget].status2 |= STATUS2_FOCUS_ENERGY; + gBattleMons[battler].status2 |= STATUS2_FOCUS_ENERGY; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_GETTING_PUMPED; } gBattlescriptCurrInstr = cmd->nextInstr;