public override void Update(Dictionary <int, RadarProfile> radarProfiles) { int closestEnemyUID = Omniscience.NULL_UID; float closestEnemyDistance = float.MaxValue; foreach (RadarProfile radarProfile in radarProfiles.Values) { if (radarProfile.Team != Spaceship.Team) { float distance = (Spaceship.Position - radarProfile.Position).magnitude; if (distance < closestEnemyDistance) { closestEnemyUID = radarProfile.UID; closestEnemyDistance = distance; } } } if (closestEnemyDistance < AgroDistance) { Aggroed = true; AggroCountdown = DeagroTime; } else if (Aggroed == true && closestEnemyDistance > DeagroDistance) { AggroCountdown -= Time.deltaTime; if (AggroCountdown <= 0f) { Aggroed = false; } } if (Aggroed & closestEnemyUID != Omniscience.NULL_UID) { Spaceship.SelectTarget(closestEnemyUID); Spaceship.QueueAttack(1); } else { Spaceship.DropTarget(); } if (Spaceship.Velocity.magnitude > 0f) { Autopilot.Halt(); } }