blob: 6253a646452526345e95d5430ed3a7ed0bbf995a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#include "global.h"
#include "dungeon_ai.h"
#include "constants/ability.h"
#include "constants/tactic.h"
#include "dungeon_pokemon_attributes.h"
#include "dungeon_pokemon_attributes_1.h"
#include "dungeon_util.h"
bool8 ShouldAvoidEnemies(struct DungeonEntity *pokemon)
{
if (!EntityExists(pokemon))
{
return FALSE;
}
else
{
struct DungeonEntityData *pokemonData = pokemon->entityData;
if (pokemonData->terrifiedTurnsLeft != 0)
{
return TRUE;
}
if (pokemonData->isLeader)
{
return FALSE;
}
if (HasAbility(pokemon, ABILITY_RUN_AWAY))
{
bool8 runAwayActive = pokemonData->HP < pokemonData->maxHP / 2;
if (runAwayActive)
{
return TRUE;
}
}
if (HasTactic(pokemon, TACTIC_GET_AWAY)
|| (HasTactic(pokemon, TACTIC_AVOID_TROUBLE) && pokemonData->HP <= pokemonData->maxHP / 2))
{
return TRUE;
}
return FALSE;
}
}
|