#ifndef DEMON_H
#define DEMON_H

#include "villager.h"

struct villager;

enum demon_category
{
    PARASITE = 1,
    THREAT,
    NIGHTMARE,
    CALAMITY,
    TOM_NOOK
};

struct demon {
    enum demon_category category;
    char name[50];
    int damage;
    enum distance range;
    int cur_HP;
    int HP_max;
};

struct demon *init_demon(enum demon_category category, char name[50], int HP_max, int damage, enum distance range);
void pp_demon(struct demon *demon);
void destroy_demon(struct demon *demon);
void basic_attack(struct demon *demon, struct villager *target);
void draining_attack(struct demon *demon, struct villager *target);
void heavy_attack(struct demon *demon, struct villager *target);
void chase(struct demon *demon, struct villager *villager);
void update_demon_hp(struct demon *demon, int amount);
void demon_action(struct demon *demon, struct villager *villager);


#endif
