Add AI for Zero to Hero Palafin (#6791)

This commit is contained in:
Pawkkie 2025-05-08 14:33:27 -04:00 committed by GitHub
parent 5820cc99f6
commit da047dfd22
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 35 additions and 0 deletions

View File

@ -769,6 +769,11 @@ static bool32 ShouldSwitchIfAbilityBenefit(u32 battler)
break;
return FALSE;
case ABILITY_ZERO_TO_HERO:
// Want to activate Palafin-Zero at all costs
if (gBattleMons[battler].species == SPECIES_PALAFIN_ZERO)
break;
default:
return FALSE;

View File

@ -2907,6 +2907,12 @@ enum AIPivot ShouldPivot(u32 battlerAtk, u32 battlerDef, u32 defAbility, u32 mov
battlerToSwitch = gBattleStruct->AI_monToSwitchIntoId[battlerAtk];
// Palafin always wants to activate Zero to Hero
if (gBattleMons[battlerAtk].species == SPECIES_PALAFIN_ZERO
&& gBattleMons[battlerAtk].ability == ABILITY_ZERO_TO_HERO
&& CountUsablePartyMons(battlerAtk) != 0)
return SHOULD_PIVOT;
if (PartyBattlerShouldAvoidHazards(battlerAtk, battlerToSwitch))
return DONT_PIVOT;

View File

@ -1153,3 +1153,27 @@ AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if all moves
TURN { EXPECT_SWITCH(opponent, 1); MOVE(player, MOVE_ROOST); }
}
}
AI_SINGLE_BATTLE_TEST("Switch AI: AI will switch out if Palafin-Zero isn't transformed yet")
{
GIVEN {
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT);
PLAYER(SPECIES_FINIZEN);
OPPONENT(SPECIES_PALAFIN_ZERO);
OPPONENT(SPECIES_FINIZEN);
} WHEN {
TURN { MOVE(player, MOVE_CELEBRATE); EXPECT_SWITCH(opponent, 1); }
}
}
AI_SINGLE_BATTLE_TEST("Switch AI: AI will use pivot move to activate Palafin's Zero to Hero rather than hard switching")
{
GIVEN {
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT);
PLAYER(SPECIES_FINIZEN);
OPPONENT(SPECIES_PALAFIN_ZERO) { Moves(MOVE_FLIP_TURN); }
OPPONENT(SPECIES_FINIZEN);
} WHEN {
TURN { MOVE(player, MOVE_CELEBRATE); EXPECT_MOVE(opponent, MOVE_FLIP_TURN); EXPECT_SEND_OUT(opponent, 1); }
}
}