#ifndef FIGHT_ENEMY_STATES_H
#define FIGHT_ENEMY_STATES_H

#include "state.h"

typedef struct Enemy Enemy;

extern void EnemyState_Exit(Enemy* self);

extern void EnemyIdle_Enter(Enemy* self);
extern const State* EnemyIdle_Update(Enemy* self, float deltaTime);

DefineState(EnemyIdle, Enemy,
    EnemyIdle_Enter,
    EnemyIdle_Update,
    EnemyState_Exit
)

extern void EnemyWalk_Enter(Enemy* self);
extern const State* EnemyWalk_Update(Enemy* self, float deltaTime);

DefineState(EnemyWalk, Enemy,
    EnemyWalk_Enter,
    EnemyWalk_Update,
    EnemyState_Exit
)

extern void EnemyHurt_Enter(Enemy* self);
extern const State* EnemyHurt_Update(Enemy* self, float deltaTime);

DefineState(EnemyHurt, Enemy,
    EnemyHurt_Enter,
    EnemyHurt_Update,
    EnemyState_Exit
)

#endif // !FIGHT_ENEMY_STATES_H
