2017-09-28 16:38:07 +01:00
|
|
|
#ifndef GUARD_BATTLE_AI_SCRIPT_COMMANDS_H
|
|
|
|
#define GUARD_BATTLE_AI_SCRIPT_COMMANDS_H
|
2017-09-05 08:41:48 +01:00
|
|
|
|
2018-06-17 15:48:58 +01:00
|
|
|
// return values for BattleAI_ChooseMoveOrAction
|
|
|
|
// 0 - 3 are move idx
|
|
|
|
#define AI_CHOICE_FLEE 4
|
|
|
|
#define AI_CHOICE_WATCH 5
|
2019-06-11 09:45:12 +01:00
|
|
|
#define AI_CHOICE_SWITCH 7
|
2018-06-17 15:48:58 +01:00
|
|
|
|
2018-07-15 11:39:07 +01:00
|
|
|
s32 AI_CalcDamage(u16 move, u8 battlerAtk, u8 battlerDef);
|
|
|
|
s32 AI_CalcPartyMonDamage(u16 move, u8 battlerAtk, u8 battlerDef, struct Pokemon *mon);
|
|
|
|
u16 AI_GetTypeEffectiveness(u16 move, u8 battlerAtk, u8 battlerDef);
|
2018-12-22 19:57:12 +00:00
|
|
|
void BattleAI_SetupItems(void);
|
|
|
|
void BattleAI_SetupFlags(void);
|
2017-09-05 08:41:48 +01:00
|
|
|
void BattleAI_SetupAIData(u8 defaultScoreMoves);
|
|
|
|
u8 BattleAI_ChooseMoveOrAction(void);
|
2019-09-01 13:23:11 +01:00
|
|
|
bool32 IsTruantMonVulnerable(u32 battlerAI, u32 opposingBattler);
|
2020-04-14 12:40:27 +01:00
|
|
|
bool32 IsBattlerAIControlled(u32 battlerId);
|
2018-06-17 15:48:58 +01:00
|
|
|
void ClearBattlerMoveHistory(u8 battlerId);
|
2020-07-15 20:30:24 +01:00
|
|
|
void RecordLastUsedMoveBy(u32 battlerId, u32 move);
|
|
|
|
void RecordKnownMove(u8 battlerId, u32 move);
|
2020-05-18 22:54:12 +01:00
|
|
|
void RecordAbilityBattle(u8 battlerId, u16 abilityId);
|
2018-06-17 15:48:58 +01:00
|
|
|
void ClearBattlerAbilityHistory(u8 battlerId);
|
|
|
|
void RecordItemEffectBattle(u8 battlerId, u8 itemEffect);
|
|
|
|
void ClearBattlerItemEffectHistory(u8 battlerId);
|
2017-09-05 08:41:48 +01:00
|
|
|
|
2017-09-28 16:38:07 +01:00
|
|
|
#endif // GUARD_BATTLE_AI_SCRIPT_COMMANDS_H
|