Example #1
0
        public static Vector3 TryFindObjectivePosition(IList <ObjectiveActor> objectives, int searchRadius, out ObjectiveActor foundObjective)
        {
            var objectiveMarkers = new HashSet <int>(objectives.Select(o => o.MarkerNameHash));
            var miniMapMarker    = AdvDia.CurrentWorldMarkers
                                   .FirstOrDefault(m => objectiveMarkers.Contains(m.NameHash) && m.Position.Distance(AdvDia.MyPosition) <= searchRadius && !EntryPortals.IsEntryPortal(AdvDia.CurrentWorldDynamicId, m.NameHash));

            if (miniMapMarker != null)
            {
                foundObjective = objectives.FirstOrDefault(o => o.MarkerNameHash == miniMapMarker.Id);
                return(miniMapMarker.Position);
            }
            foundObjective = null;
            return(Vector3.Zero);
        }
Example #2
0
        public static Vector3 TryFindObjectivePosition(IList<ObjectiveActor> objectives, int searchRadius, out ObjectiveActor foundObjective)
        {
            var objectiveMarkers = new HashSet<int>(objectives.Select(o => o.MarkerNameHash));
            var miniMapMarker = AdvDia.CurrentWorldMarkers
                .FirstOrDefault(m => objectiveMarkers.Contains(m.NameHash) && m.Position.Distance2D(AdvDia.MyPosition) <= searchRadius && !EntryPortals.IsEntryPortal(AdvDia.CurrentWorldDynamicId, m.NameHash));

            if (miniMapMarker != null)
            {
                foundObjective = objectives.FirstOrDefault(o => o.MarkerNameHash == miniMapMarker.Id);
                return miniMapMarker.Position;
            }
            foundObjective = null;
            return Vector3.Zero;
        }