public void OnTargetFound(HaE_Entity target) { Vector3D targetPos = target.entityInfo.Position; if (mode == CurrentMode.Idle || mode == CurrentMode.Launching) { return; } else if (mode == CurrentMode.TurretGuided) { if (target.trackingType != HaE_Entity.TrackingType.Turret) { return; } } else if (mode == CurrentMode.LidarGuided) { if (target.trackingType != HaE_Entity.TrackingType.Lidar) { return; } if (target.entityInfo.HitPosition.HasValue) { targetPos = target.entityInfo.HitPosition.Value; } } if ((target.entityInfo.Relationship != MyRelationsBetweenPlayerAndBlock.Enemies) && (target.entityInfo.Relationship != MyRelationsBetweenPlayerAndBlock.Neutral) && (target.entityInfo.Relationship != MyRelationsBetweenPlayerAndBlock.NoOwnership)) { return; } double distSq = Vector3D.DistanceSquared(Me.GetPosition(), targetPos); payload.UpdateDist(distSq); Vector3D reqDir = proNav.Navigate(target); double reqMag = reqDir.Normalize(); controlModule.AimMissile(reqDir); controlModule.ApplyThrust(reqDir); }