Fix AI resisted move scoring (#7350)

This commit is contained in:
Pawkkie 2025-07-15 13:13:30 -04:00 committed by GitHub
parent d5c1d3322c
commit 64f9d6a24e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 11 additions and 23 deletions

View File

@ -1118,30 +1118,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score)
}
if (effectiveness == UQ_4_12(0.0))
{
RETURN_SCORE_MINUS(20);
}
else if (effectiveness < UQ_4_12(0.5))
{
switch (moveEffect)
{
case EFFECT_FIXED_HP_DAMAGE:
case EFFECT_LEVEL_DAMAGE:
case EFFECT_PSYWAVE:
case EFFECT_OHKO:
case EFFECT_SHEER_COLD:
case EFFECT_BIDE:
case EFFECT_FIXED_PERCENT_DAMAGE:
case EFFECT_ENDEAVOR:
case EFFECT_COUNTER:
case EFFECT_MIRROR_COAT:
case EFFECT_METAL_BURST:
case EFFECT_FINAL_GAMBIT:
break;
default:
RETURN_SCORE_MINUS(10);
}
}
if (DoesBattlerIgnoreAbilityChecks(battlerAtk, abilityAtk, move))
abilityDef = ABILITY_NONE;

View File

@ -912,3 +912,14 @@ AI_SINGLE_BATTLE_TEST("AI will see Magnitude damage")
TURN { MOVE(player, MOVE_MAGNITUDE); EXPECT_SWITCH(opponent, 1); }
}
}
AI_SINGLE_BATTLE_TEST("AI will prefer resisted move over failing move")
{
GIVEN {
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY);
PLAYER(SPECIES_ROSELIA) { Moves(MOVE_ABSORB); };
OPPONENT(SPECIES_GLOOM) { Moves(MOVE_MEGA_DRAIN, MOVE_STUN_SPORE, MOVE_LEECH_SEED, MOVE_SYNTHESIS); }
} WHEN {
TURN { MOVE(player, MOVE_ABSORB); EXPECT_MOVE(opponent, MOVE_MEGA_DRAIN);}
}
}