diff options
author | zlago | 2025-05-08 22:02:59 +0200 |
---|---|---|
committer | zlago | 2025-05-08 22:02:59 +0200 |
commit | 8c44ff6a0f085850952b104b6f3daeab448cb4f8 (patch) | |
tree | 50e9403c75a41e944de4babd640699b41e6534e7 | |
parent | 6af605d10d4d7e2bdea79b8d69d0d48704ef77f8 (diff) |
flying enemy behaviour tweaks
hopefully less weird, still to fix: edge case where they can fly backwards?
-rw-r--r-- | src/flier.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/flier.c b/src/flier.c index 4adf9ab..1fd3092 100644 --- a/src/flier.c +++ b/src/flier.c @@ -303,6 +303,7 @@ static int flier_update(struct entity *self) { } if (abs(entities.player[0].x - self->x) + abs(entities.player[0].y - self->y) > to_fixed(96)) { self->state = FLIER_IDLE; + ext->reached_x = ext->reached_y = false; // not doing this makes them get lost and confused } self->timer--; if (self->timer == 0) { @@ -321,6 +322,12 @@ static int flier_update(struct entity *self) { self->state = FLIER_ALERT_IDLE; self->timer = ext->attack_delay; } + if (abs(entities.player[0].x - self->x) + abs(entities.player[0].y - self->y) > to_fixed(96)) { + anim(self, FLIER_A_IDLE); + self->state = FLIER_IDLE; + self->timer = ext->idle_time; + ext->reached_x = ext->reached_y = false; // not doing this makes them get lost and confused + } break; case FLIER_ALERT_ATTACK: @@ -340,6 +347,7 @@ static int flier_update(struct entity *self) { anim(self, FLIER_A_IDLE); self->state = FLIER_IDLE; self->timer = ext->idle_time; + ext->reached_x = ext->reached_y = false; // not doing this makes them get lost and confused } break; } |