diff options
Diffstat (limited to 'src/dungeon_capabilities_1.c')
-rw-r--r-- | src/dungeon_capabilities_1.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/dungeon_capabilities_1.c b/src/dungeon_capabilities_1.c index 956c6e1..869e2f3 100644 --- a/src/dungeon_capabilities_1.c +++ b/src/dungeon_capabilities_1.c @@ -54,3 +54,26 @@ bool8 CannotAct(struct DungeonEntity *pokemon) } return FALSE; } + +bool8 CannotAttack(struct DungeonEntity *pokemon, u8 param_2) +{ + struct DungeonEntityData *iVar3; + + iVar3 = pokemon->entityData; + if ((((((param_2 != '\0') || + (iVar3->sleepStatus == SLEEP_STATUS_SLEEPLESS)) || + (iVar3->sleepStatus == SLEEP_STATUS_YAWNING)) || + (iVar3->sleepStatus == SLEEP_STATUS_NONE)) && + ((((iVar3->immobilizeStatus != IMMOBILIZE_STATUS_FROZEN && + (iVar3->immobilizeStatus != IMMOBILIZE_STATUS_WRAPPED_AROUND_FOE)) && + ((iVar3->immobilizeStatus != IMMOBILIZE_STATUS_WRAPPED_BY_FOE && + ((iVar3->immobilizeStatus != IMMOBILIZE_STATUS_PETRIFIED && + (iVar3->volatileStatus != VOLATILE_STATUS_CRINGING)))))) && + (iVar3->volatileStatus != VOLATILE_STATUS_PAUSED)))) && + (((iVar3->volatileStatus != VOLATILE_STATUS_INFATUATED && + iVar3->nonVolatileStatus != NON_VOLATILE_STATUS_PARALYZED)) && + !ShouldAvoidEnemies(pokemon))) { + return FALSE; + } + return TRUE; +} |