public void UpdateForMarker(TrinityMarker marker) { if (marker == null) { return; } MarkerHash = marker.NameHash; MarkerType = marker.MarkerType; var actor = Core.Actors.Where(a => !a.IsMe && !a.IsExcludedId && a.Position.Distance(marker.Position) <= 3f).OrderBy(a => a.IsGizmo).ThenBy(a => a.Distance).FirstOrDefault(); UpdateForActor(actor); }
private void ScanForObjective() { if (_previouslyFoundLocation != Vector3.Zero && PluginTime.ReadyToUse(_returnTimeForPreviousLocation, 60000)) { _objectiveLocation = _previouslyFoundLocation; _previouslyFoundLocation = Vector3.Zero; _returnTimeForPreviousLocation = PluginTime.CurrentMillisecond; Core.Logger.Debug("Returning previous objective location."); return; } if (PluginTime.ReadyToUse(_lastScanTime, 1000)) { _lastScanTime = PluginTime.CurrentMillisecond; TrinityMarker marker = null; if (_markerHash != 0) { if (_markerHash == -1) { marker = BountyHelpers.ScanForMarker(0, _objectiveScanRange); } else { marker = BountyHelpers.ScanForMarker(_markerHash, _markerType, _objectiveScanRange); } } else if (!string.IsNullOrEmpty(_markerName)) { marker = BountyHelpers.ScanForMarker(_markerName, _objectiveScanRange); } else if (_markerType != default(WorldMarkerType)) { marker = BountyHelpers.ScanForMarker(_markerType, _objectiveScanRange); } if (marker != null && marker.Position != Vector3.Zero) { _objectiveLocation = marker.Position; Core.Logger.Log($"[MoveToMapMarker] Found the objective {marker}"); ExplorationHelpers.SetExplorationPriority(_objectiveLocation); } _objectiveLocation = marker?.Position ?? Vector3.Zero; } }