diff options
-rw-r--r-- | config.h | 1 | ||||
-rw-r--r-- | enemy.c | 6 | ||||
-rw-r--r-- | obj.h | 2 |
3 files changed, 8 insertions, 1 deletions
@@ -40,6 +40,7 @@ #define player_lunge_force (f1) #define player_slash_damage 1 +#define enemy_inv_frames 8 #define enemy_demon_move_force 32 #define enemy_demon_attack_dist f1 #define enemy_demon_jump_force (5 << fbits) @@ -44,6 +44,7 @@ void init_enemy(Enemy* e, Enemy_Type t, int x, int y) { e->anim = asset_id_demon_idle_left_anm; e->face = face_left; e->state = enemy_state_patrol; + e->inv = 0; } void update_enemy_anim(Enemy* e) { @@ -82,6 +83,10 @@ void update_enemy_phys(Enemy* e, const Map* map) { void update_enemy_hurt(Enemy* e, const World* w) { Rect a; int i; + if (e->inv) { + e->inv--; + return; + } get_enemy_rect(e->t, &a); a.x += e->x >> fbits; a.y += e->y >> fbits; @@ -91,6 +96,7 @@ void update_enemy_hurt(Enemy* e, const World* w) { e->hp -= dz->hp; e->vx -= dz->vx; e->vy -= dz->vy; + e->inv = enemy_inv_frames; } } } @@ -52,7 +52,7 @@ typedef struct { int x, y, vx, vy; int hp, frame, anim; int grounded, headbutted, on_ramp; - int state; + int state, inv; Face face; Rect rect; } Enemy; |