#ifndef FIGHT_PLAYER_STATES_H
#define FIGHT_PLAYER_STATES_H

#include "state.h"

typedef struct Player Player;

void PlayerAnimationExit(Player* self);

void PlayerIdleEnter(Player* self);
const State* PlayerIdleUpdate(Player* self, float deltaTime);

DefineState(PlayerIdle, Player,
    PlayerIdleEnter,
    PlayerIdleUpdate,
    PlayerAnimationExit
)

void PlayerWalk_Enter(Player* self);
const State* PlayerWalk_Update(Player* self, float deltaTime);

DefineState(PlayerWalk, Player,
    PlayerWalk_Enter,
    PlayerWalk_Update,
    PlayerAnimationExit
)

void PlayerAttackEnter(Player* self);

void PlayerJabA_Enter(Player* self);
const State* PlayerJabA_Update(Player* self, float deltaTime);

DefineState(PlayerJabA, Player,
    PlayerJabA_Enter,
    PlayerJabA_Update,
    PlayerAnimationExit
)

void PlayerJabB_Enter(Player* self);
const State* PlayerJabB_Update(Player* self, float deltaTime);

DefineState(PlayerJabB, Player,
    PlayerJabB_Enter,
    PlayerJabB_Update,
    PlayerAnimationExit
)

#endif // !FIGHT_PLAYER_STATES_H
