Fixs Aftermath ability popup message (#6491)

This commit is contained in:
Alex 2025-03-29 09:45:59 +01:00 committed by GitHub
parent b0c7d1a8ee
commit 7ead90aeff
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 31 additions and 1 deletions

View File

@ -7075,7 +7075,7 @@ BattleScript_AnticipationActivates::
BattleScript_AftermathDmg:: BattleScript_AftermathDmg::
pause B_WAIT_TIME_SHORT pause B_WAIT_TIME_SHORT
call BattleScript_AbilityPopUp call BattleScript_AbilityPopUpScripting
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_AftermathDmgRet jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_AftermathDmgRet
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
healthbarupdate BS_ATTACKER healthbarupdate BS_ATTACKER

View File

@ -5867,6 +5867,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
} }
else else
{ {
gBattleScripting.battler = gBattlerTarget;
gBattleStruct->moveDamage[gBattlerAttacker] = GetNonDynamaxMaxHP(gBattlerAttacker) / 4; gBattleStruct->moveDamage[gBattlerAttacker] = GetNonDynamaxMaxHP(gBattlerAttacker) / 4;
if (gBattleStruct->moveDamage[gBattlerAttacker] == 0) if (gBattleStruct->moveDamage[gBattlerAttacker] == 0)
gBattleStruct->moveDamage[gBattlerAttacker] = 1; gBattleStruct->moveDamage[gBattlerAttacker] = 1;
@ -5889,6 +5890,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
break; break;
} }
gBattleScripting.battler = gBattlerTarget;
gBattleStruct->moveDamage[gBattlerAttacker] = gBattleStruct->moveDamage[gBattlerTarget]; gBattleStruct->moveDamage[gBattlerAttacker] = gBattleStruct->moveDamage[gBattlerTarget];
BattleScriptPushCursor(); BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_AftermathDmg; gBattlescriptCurrInstr = BattleScript_AftermathDmg;

View File

@ -20,3 +20,31 @@ SINGLE_BATTLE_TEST("Aftermath damages the attacker by 1/4th of its max HP if fai
EXPECT_EQ(aftermathDamage, opponent->maxHP / 4); EXPECT_EQ(aftermathDamage, opponent->maxHP / 4);
} }
} }
SINGLE_BATTLE_TEST("Aftermath ability pop-up will be displayed correctly: player point of view")
{
GIVEN {
PLAYER(SPECIES_SHROOMISH) { Ability(ABILITY_POISON_HEAL); };
OPPONENT(SPECIES_VOLTORB) { HP(1); Ability(ABILITY_AFTERMATH); };
} WHEN {
TURN {MOVE(player, MOVE_HEADBUTT);}
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_HEADBUTT, player);
MESSAGE("The opposing Voltorb fainted!");
ABILITY_POPUP(opponent, ABILITY_AFTERMATH);
}
}
SINGLE_BATTLE_TEST("Aftermath ability pop-up will be displayed correctly: opponent point of view")
{
GIVEN {
PLAYER(SPECIES_VOLTORB) { HP(1); Ability(ABILITY_AFTERMATH); };
OPPONENT(SPECIES_SHROOMISH) { Ability(ABILITY_POISON_HEAL); };
} WHEN {
TURN {MOVE(opponent, MOVE_HEADBUTT);}
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_HEADBUTT, opponent);
MESSAGE("Voltorb fainted!");
ABILITY_POPUP(player, ABILITY_AFTERMATH);
}
}