From 2b4ba4fa11c4f269e6838426bf0d2cdf1d2ef4ac Mon Sep 17 00:00:00 2001 From: cawtds Date: Mon, 10 Jun 2024 00:41:40 +0200 Subject: [PATCH] fixed remaining failed tests --- data/battle_scripts_1.s | 2 -- src/battle_interface.c | 1 + src/battle_script_commands.c | 4 ++-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index a31fbc7ef..85516dddd 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -8089,7 +8089,6 @@ BattleScript_MoveStatDrain:: .endif BattleScript_MoveStatDrain_Cont: clearsemiinvulnerablebit - tryfaintmon BS_ATTACKER goto BattleScript_MoveEnd BattleScript_MonMadeMoveUseless_PPLoss:: @@ -8100,7 +8099,6 @@ BattleScript_MonMadeMoveUseless:: call BattleScript_AbilityPopUp printstring STRINGID_PKMNSXMADEYUSELESS waitmessage B_WAIT_TIME_LONG - tryfaintmon BS_ATTACKER orhalfword gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE goto BattleScript_MoveEnd diff --git a/src/battle_interface.c b/src/battle_interface.c index b3408622d..783569ead 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -2253,6 +2253,7 @@ s32 MoveBattleBar(u8 battlerId, u8 healthboxSpriteId, u8 whichBar, u8 unused) if (whichBar == HEALTH_BAR) { + u16 hpFraction = B_FAST_HP_DRAIN == FALSE ? 1 : max(gBattleSpritesDataPtr->battleBars[battlerId].maxValue / B_HEALTHBAR_NUM_PIXELS, 1); currentBarValue = CalcNewBarValue(gBattleSpritesDataPtr->battleBars[battlerId].maxValue, gBattleSpritesDataPtr->battleBars[battlerId].oldValue, gBattleSpritesDataPtr->battleBars[battlerId].receivedValue, diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 89cc7544b..c086bb156 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -1262,7 +1262,7 @@ static void Cmd_attackcanceler(void) gCurrentActionFuncId = B_ACTION_FINISHED; return; } - if (gBattleMons[gBattlerAttacker].hp == 0 && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) + if (gBattleMons[gBattlerAttacker].hp == 0 && gMovesInfo[gCurrentMove].effect != EFFECT_EXPLOSION && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) { gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; gBattlescriptCurrInstr = BattleScript_MoveEnd; @@ -1321,7 +1321,7 @@ static void Cmd_attackcanceler(void) return; if (AbilityBattleEffects(ABILITYEFFECT_MOVES_BLOCK, gBattlerTarget, 0, 0, 0)) return; - if (!gBattleMons[gBattlerAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE + if (!gBattleMons[gBattlerAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & (HITMARKER_ALLOW_NO_PP | HITMARKER_NO_ATTACKSTRING | HITMARKER_NO_PPDEDUCT)) && !(gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)) {