Fixes CanUseLastResort and resolves 3 KNOWN_FAILING Last Resort tests (#8032)

Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
This commit is contained in:
grintoul 2025-10-25 13:42:28 +01:00 committed by GitHub
parent be23dfdf2a
commit 271ca56bdb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 9 deletions

View File

@ -9118,17 +9118,15 @@ static void Cmd_useitemonopponent(void)
bool32 CanUseLastResort(u8 battler)
{
u32 i;
u32 knownMovesCount = 0, usedMovesCount = 0;
for (i = 0; i < 4; i++)
for (u32 i = 0; i < MAX_MON_MOVES; i++)
{
if (gBattleMons[battler].moves[i] != MOVE_NONE)
knownMovesCount++;
if (i != gCurrMovePos && gDisableStructs[battler].usedMoves & (1u << i)) // Increment used move count for all moves except current Last Resort.
if (GetMoveEffect(gBattleMons[battler].moves[i]) != EFFECT_LAST_RESORT && gDisableStructs[battler].usedMoves & (1u << i)) // Increment used move count for all moves except current Last Resort.
usedMovesCount++;
}
return (knownMovesCount >= 2 && usedMovesCount >= knownMovesCount - 1);
}

View File

@ -117,7 +117,7 @@ SINGLE_BATTLE_TEST("Last Resort works with Sleep Talk")
AI_SINGLE_BATTLE_TEST("AI uses Last Resort - 2 moves")
{
KNOWN_FAILING;
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT);
GIVEN {
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_LAST_RESORT, MOVE_SCRATCH); }
@ -129,10 +129,10 @@ AI_SINGLE_BATTLE_TEST("AI uses Last Resort - 2 moves")
AI_SINGLE_BATTLE_TEST("AI uses Last Resort - 3 moves")
{
KNOWN_FAILING;
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT);
GIVEN {
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_LAST_RESORT, MOVE_QUICK_ATTACK, MOVE_SCRATCH); }
OPPONENT(SPECIES_WOBBUFFET) { MovesWithPP({MOVE_LAST_RESORT, 5}, {MOVE_QUICK_ATTACK, 1}, {MOVE_SCRATCH, 35}); }
} WHEN {
TURN { NOT_EXPECT_MOVE(opponent, MOVE_LAST_RESORT); }
TURN { NOT_EXPECT_MOVE(opponent, MOVE_LAST_RESORT); }
@ -142,10 +142,10 @@ AI_SINGLE_BATTLE_TEST("AI uses Last Resort - 3 moves")
AI_SINGLE_BATTLE_TEST("AI uses Last Resort - 4 moves")
{
KNOWN_FAILING;
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT);
GIVEN {
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_LAST_RESORT, MOVE_QUICK_ATTACK, MOVE_SCRATCH, MOVE_GUST); }
OPPONENT(SPECIES_WOBBUFFET) { MovesWithPP({MOVE_LAST_RESORT, 5}, {MOVE_QUICK_ATTACK, 1}, {MOVE_SCRATCH, 1}, {MOVE_GUST, 35}); }
} WHEN {
TURN { NOT_EXPECT_MOVE(opponent, MOVE_LAST_RESORT); }
TURN { NOT_EXPECT_MOVE(opponent, MOVE_LAST_RESORT); }