diff --git a/server/src/sys/agent.rs b/server/src/sys/agent.rs index be0444f0de..b61620ca71 100644 --- a/server/src/sys/agent.rs +++ b/server/src/sys/agent.rs @@ -504,10 +504,13 @@ impl<'a> System<'a> for Sys { // specific proportional threshold. const FUZZY_DIST_COMPARISON: f32 = 0.8; // Only switch to new target if it is closer - // than the old target - tgt_pos.0.distance(pos.0) - < old_tgt_pos.0.distance(pos.0) - * FUZZY_DIST_COMPARISON + // than the old target, or if the old target + // had not triggered aggro (the new target + // has because damage always triggers it) + !old_tgt.aggro_on + || tgt_pos.0.distance(pos.0) + < old_tgt_pos.0.distance(pos.0) + * FUZZY_DIST_COMPARISON } else { true }