From af07c451d063b67baf9540bcb81449df1bcdcef9 Mon Sep 17 00:00:00 2001 From: TeamAquasHideout Date: Mon, 23 Jan 2023 05:01:55 -0500 Subject: [PATCH] Fix Psycho Shift printfromtable Error --- src/battle_script_commands.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 7cc2eaed60..42a1fd56e5 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -9309,25 +9309,27 @@ static void Cmd_various(void) gBattlescriptCurrInstr += 4; return; case VARIOUS_PSYCHO_SHIFT: - { - if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_PARALYSIS && !CanBeParalyzed(gBattlerTarget)) - || (gBattleMons[gBattlerAttacker].status1 & STATUS1_PSN_ANY && !CanBePoisoned(gBattlerAttacker, gBattlerTarget)) - || (gBattleMons[gBattlerAttacker].status1 & STATUS1_BURN && !CanBeBurned(gBattlerTarget)) - || (gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP && !CanSleep(gBattlerTarget))) - { - // fails - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); - } - else - { // Psycho shift works + if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_POISON) && CanBePoisoned(gBattlerAttacker, gBattlerTarget)) + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + else if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_TOXIC_POISON) && CanBePoisoned(gBattlerAttacker, gBattlerTarget)) + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + else if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_BURN) && CanBeBurned(gBattlerTarget)) + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + else if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_PARALYSIS) && CanBeParalyzed(gBattlerTarget)) + gBattleCommunication[MULTISTRING_CHOOSER] = 3; + else if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP) && CanSleep(gBattlerTarget)) + gBattleCommunication[MULTISTRING_CHOOSER] = 4; + else + { + gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + return; + } gBattleMons[gBattlerTarget].status1 = gBattleMons[gBattlerAttacker].status1 & STATUS1_ANY; gActiveBattler = gBattlerTarget; BtlController_EmitSetMonData(BUFFER_A, REQUEST_STATUS_BATTLE, 0, sizeof(gBattleMons[gActiveBattler].status1), &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 7; - } - } return; case VARIOUS_CURE_STATUS: gBattleMons[gActiveBattler].status1 = 0;