private static async Task WalkingToPokeStop(ISession session, CancellationToken cancellationToken, FortData pokeStop, FortDetailsResponse fortInfo) { var distance = LocationUtils.CalculateDistanceInMeters(session.Client.CurrentLatitude, session.Client.CurrentLongitude, pokeStop.Latitude, pokeStop.Longitude); // we only move to the PokeStop, and send the associated FortTargetEvent, when not using GPX // also, GPX pathing uses its own EggWalker and calls the CatchPokemon tasks internally. if (!session.LogicSettings.UseGpxPathing) { var eggWalker = new EggWalker(1000, session); cancellationToken.ThrowIfCancellationRequested(); TinyIoC.TinyIoCContainer.Current.Resolve <MultiAccountManager>().ThrowIfSwitchAccountRequested(); // Always set the fort info in base walk strategy. var pokeStopDestination = new FortLocation(pokeStop.Latitude, pokeStop.Longitude, await LocationUtils.GetElevation(session.ElevationService, pokeStop.Latitude, pokeStop.Longitude).ConfigureAwait(false), pokeStop, fortInfo); await session.Navigation.Move(pokeStopDestination, async() => { await OnWalkingToPokeStopOrGym(session, pokeStop, cancellationToken).ConfigureAwait(false); }, session, cancellationToken).ConfigureAwait(false); // we have moved this distance, so apply it immediately to the egg walker. await eggWalker.ApplyDistance(distance, cancellationToken).ConfigureAwait(false); } }
private static async Task WalkingBackGPXPath(ISession session, CancellationToken cancellationToken, FortData originalPokestop, FortDetailsResponse fortInfo) { var destination = new FortLocation(originalPokestop.Latitude, originalPokestop.Longitude, LocationUtils.getElevation(session.ElevationService, originalPokestop.Latitude, originalPokestop.Longitude), originalPokestop, fortInfo); await session.Navigation.Move(destination, async() => { await MSniperServiceTask.Execute(session, cancellationToken); await CatchNearbyPokemonsTask.Execute(session, cancellationToken); await UseNearbyPokestopsTask.SpinPokestopNearBy(session, cancellationToken); }, session, cancellationToken); }
private static async Task WalkingBackGPXPath(ISession session, CancellationToken cancellationToken, FortData originalPokestop) { var destination = new FortLocation(originalPokestop.Latitude, originalPokestop.Longitude, LocationUtils.getElevation(session, originalPokestop.Latitude, originalPokestop.Longitude), originalPokestop, null); await session.Navigation.Move(destination, async() => { if (session.LogicSettings.ActivateMSniper) { await MSniperServiceTask.Execute(session, cancellationToken); } await CatchNearbyPokemonsTask.Execute(session, cancellationToken); await UseNearbyPokestopsTask.SpinPokestopNearBy(session, cancellationToken); }, session, cancellationToken); }