aboutsummaryrefslogtreecommitdiff
path: root/enemy.c
diff options
context:
space:
mode:
authorquou <quou@disroot.org>2024-09-30 22:28:50 +1000
committerquou <quou@disroot.org>2024-09-30 22:28:50 +1000
commitd2837633da48e3cc0530d718de5e0bbfcd4fcc34 (patch)
tree3cac6b4b49b93e199ed5b14e9438a0c026fc8b26 /enemy.c
parentee655819d44307d974fb27e1fa04d079a3810d63 (diff)
enemy invulnerable frames
Diffstat (limited to 'enemy.c')
-rw-r--r--enemy.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/enemy.c b/enemy.c
index bc0bbba..1c82e47 100644
--- a/enemy.c
+++ b/enemy.c
@@ -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;
}
}
}