#pragma once

typedef struct Enemy enemy_t;

#include "game.h"
#include "util.h"

typedef enum {
  ENEMY_TEST,
} enemy_e;

struct Enemy {
  pos_t pos;
  enemy_e type;
  bool on_ground;
  float velocity;
  float gravity;
  int dir;
  bool stunned;
  bool frozen;
  int frozen_timer;
  float fall_height;
  fz_timer_t *timer_walking;
  fz_timer_t *timer_sneaking;
};

enemy_t *enemy_create(pos_t pos, enemy_e type);
void enemy_update(enemy_t *enemy, game_t *game);
void enemy_draw(enemy_t *enemy, game_t *game);
void enemy_kill(enemy_t *enemy, game_t *game);
void enemy_free(enemy_t *enemy);
