pokeemerald/include/battle_ai_switch.h
2025-12-25 02:02:01 +01:00

54 lines
1.6 KiB
C

#ifndef GUARD_BATTLE_AI_SWITCH_H
#define GUARD_BATTLE_AI_SWITCH_H
enum ShouldSwitchScenario
{
SHOULD_SWITCH_WONDER_GUARD,
SHOULD_SWITCH_ABSORBS_MOVE,
SHOULD_SWITCH_TRAPPER,
SHOULD_SWITCH_FREE_TURN,
SHOULD_SWITCH_TRUANT,
SHOULD_SWITCH_ALL_MOVES_BAD,
SHOULD_SWITCH_PERISH_SONG,
SHOULD_SWITCH_YAWN,
SHOULD_SWITCH_BADLY_POISONED,
SHOULD_SWITCH_BADLY_POISONED_STATS_RAISED,
SHOULD_SWITCH_CURSED,
SHOULD_SWITCH_CURSED_STATS_RAISED,
SHOULD_SWITCH_NIGHTMARE,
SHOULD_SWITCH_NIGHTMARE_STATS_RAISED,
SHOULD_SWITCH_SEEDED,
SHOULD_SWITCH_SEEDED_STATS_RAISED,
SHOULD_SWITCH_INFATUATION,
SHOULD_SWITCH_HASBADODDS,
SHOULD_SWITCH_NATURAL_CURE_STRONG,
SHOULD_SWITCH_NATURAL_CURE_STRONG_STATS_RAISED,
SHOULD_SWITCH_NATURAL_CURE_WEAK,
SHOULD_SWITCH_NATURAL_CURE_WEAK_STATS_RAISED,
SHOULD_SWITCH_REGENERATOR,
SHOULD_SWITCH_REGENERATOR_STATS_RAISED,
SHOULD_SWITCH_ENCORE_STATUS,
SHOULD_SWITCH_ENCORE_DAMAGE,
SHOULD_SWITCH_CHOICE_LOCKED,
SHOULD_SWITCH_ATTACKING_STAT_MINUS_TWO,
SHOULD_SWITCH_ATTACKING_STAT_MINUS_THREE_PLUS,
SHOULD_SWITCH_ALL_SCORES_BAD,
SHOULD_SWITCH_DYN_FUNC,
};
enum SwitchType
{
SWITCH_AFTER_KO,
SWITCH_MID_BATTLE_FORCED,
SWITCH_MID_BATTLE_OPTIONAL,
};
u32 GetMostSuitableMonToSwitchInto(u32 battler, enum SwitchType switchType);
bool32 ShouldSwitch(u32 battler);
void ModifySwitchAfterMoveScoring(u32 battler);
u32 AI_SelectRevivalBlessingMon(u32 battler);
bool32 IsSwitchinValid(u32 battler);
bool32 IsAceMon(u32 battler, u32 monPartyId);
#endif // GUARD_BATTLE_AI_SWITCH_H