Exemple #1
0
        public static async Task Execute(ISession session)
        {
            var inv = await session.Inventory.GetItems();

            if (inv != null)
            {
                foreach (var item in inv)
                {
                    await session.Client.Inventory.RecycleItem(item.ItemId, item.Count);
                }
            }

            var pokes = await session.Inventory.GetPokemons();

            if (pokes != null)
            {
                foreach (var p in pokes)
                {
                    await session.Client.Inventory.TransferPokemon(p.Id);
                }
            }

            var navi = new Navigation(session.Client);

            for (int i = 0; i < 30; i++)
            {
                var lat = session.Client.Rnd.NextInRange(-90, 90);
                var lng = session.Client.Rnd.NextInRange(-180, 180);

                await navi.HumanPathWalking(
                    session,
                    new GeoCoordinate(lat, lng),
                    360000,
                    async() =>
                {
                    await CatchNearbyPokemonsTask.Execute(session, default(CancellationToken));
                    //Catch Incense Pokemon
                    await CatchIncensePokemonsTask.Execute(session, default(CancellationToken));
                    return(true);
                },
                    async() =>
                {
                    await UseNearbyPokestopsTask.Execute(session, default(CancellationToken));
                    await PokeNearbyGym.Execute(session, default(CancellationToken));
                    return(true);
                },
                    default(CancellationToken)
                    );
            }
        }
 private static async Task MoveToPokestop(ISession session, CancellationToken cancellationToken, FortCacheItem pokeStop, List <GeoCoordinate> waypoints, EggWalker eggWalker)
 {
     await session.Navigation.Move(new GeoCoordinate(pokeStop.Latitude, pokeStop.Longitude),
                                   session.LogicSettings.WalkingSpeedMin, session.LogicSettings.WalkingSpeedMax,
                                   async() =>
     {
         if (session.LogicSettings.CatchWildPokemon)
         {
             // Catch normal map Pokemon
             await CatchNearbyPokemonsTask.Execute(session, cancellationToken);
             //Catch Incense Pokemon
             await CatchIncensePokemonsTask.Execute(session, cancellationToken);
         }
         return(true);
     },
                                   async() =>
     {
         await UseNearbyPokestopsTask.Execute(session, cancellationToken);
         await PokeNearbyGym.Execute(session, cancellationToken);
         return(true);
     }, cancellationToken, session, waypointsToVisit : waypoints, eggWalker : eggWalker);
 }
        private static async Task FollowTheYellowbrickroad(ISession session, CancellationToken cancellationToken, CustomRoute route,
                                                           Navigation navi, EggWalker eggWalker, string prevRouteName)
        {
            var initialize = true;
            //Find closest point of route and it's index!
            var closestPoint = await CheckClosestAndMove(session, cancellationToken, route);

            long nextMaintenceStamp = 0;
            var  sameRoute          = true;

            while (sameRoute)
            {
                foreach (var wp in route.RoutePoints)
                {
                    if (session.ForceMoveTo != null)
                    {
                        break;
                    }

                    if (initialize)
                    {
                        if (wp != closestPoint)
                        {
                            continue;
                        }
                        initialize = false;
                    }
                    if (prevRouteName != session.LogicSettings.CustomRouteName)
                    {
                        sameRoute = false;
                        session.EventDispatcher.Send(new NoticeEvent()
                        {
                            Message = $"Route switched from {prevRouteName} to {session.LogicSettings.CustomRouteName}!"
                        });
                        break;
                    }

                    session.State = BotState.Walk;

                    var distance = LocationUtils.CalculateDistanceInMeters(session.Client.CurrentLatitude,
                                                                           session.Client.CurrentLongitude, wp.Latitude, wp.Longitude);

                    await navi.HumanPathWalking(
                        session,
                        wp,
                        NextMoveSpeed(session),
                        async() =>
                    {
                        await CatchNearbyPokemonsTask.Execute(session, cancellationToken);
                        //Catch Incense Pokemon
                        await CatchIncensePokemonsTask.Execute(session, cancellationToken);
                        return(true);
                    },
                        async() =>
                    {
                        await UseNearbyPokestopsTask.Execute(session, cancellationToken, true);
                        await PokeNearbyGym.Execute(session, cancellationToken);
                        return(true);
                    },
                        cancellationToken
                        );

                    session.State = BotState.Idle;
                    await eggWalker.ApplyDistance(distance, cancellationToken);

                    if (nextMaintenceStamp >= DateTime.UtcNow.ToUnixTime() && session.Runtime.StopsHit < 100)
                    {
                        continue;
                    }
                    await MaintenanceTask.Execute(session, cancellationToken);

                    nextMaintenceStamp = DateTime.UtcNow.AddMinutes(3).ToUnixTime();
                }
                if (initialize)
                {
                    initialize = false;
                }

                if (session.ForceMoveTo != null)
                {
                    await ForceMoveTask.Execute(session, cancellationToken);

                    closestPoint = await CheckClosestAndMove(session, cancellationToken, route);

                    initialize = true;
                }
            }
        }