diff --git a/src/game/systems.cpp b/src/game/systems.cpp index f0677da..260b4db 100644 --- a/src/game/systems.cpp +++ b/src/game/systems.cpp @@ -74,7 +74,16 @@ void System::enemy_ai_initialize() { auto& enemy = world.get(ent); auto& personality = world.get(ent); - enemy.set_state("detect_enemy", map.distance(pos.location) < personality.hearing_distance); + int dist_to_player = map.distance(pos.location); + + if(dist_to_player > 1) { + // not near the player so can't be in combat + enemy.set_state("enemy_found", false); + enemy.set_state("in_combat", false); + } + + enemy.set_state("detect_enemy", dist_to_player < personality.hearing_distance); + enemy.update(); } else { auto ai_start = ai::load_state(config.ai_start_name);