#ifndef GUARD_BATTLE_AI_SWITCH_ITEMS_H #define GUARD_BATTLE_AI_SWITCH_ITEMS_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, }; enum SwitchType { SWITCH_AFTER_KO, SWITCH_MID_BATTLE_FORCED, SWITCH_MID_BATTLE_OPTIONAL, }; void GetAIPartyIndexes(u32 battlerId, s32 *firstId, s32 *lastId); void AI_TrySwitchOrUseItem(u32 battler); u32 GetMostSuitableMonToSwitchInto(u32 battler, enum SwitchType switchType); bool32 ShouldSwitch(u32 battler); bool32 IsMonGrounded(enum HoldEffect heldItemEffect, enum Ability ability, enum Type type1, enum Type type2); void ModifySwitchAfterMoveScoring(u32 battler); #endif // GUARD_BATTLE_AI_SWITCH_ITEMS_H