PokemonGoF / PokemonGo-Bot

The Pokemon Go Bot, baking with community.
MIT License
3.85k stars 1.54k forks source link

Feature request: FollowPath with different vehicles #5620

Open janpascal opened 7 years ago

janpascal commented 7 years ago

Short Description

It would be nice if, for every point in the path for the FollowPath task, you could indicate which vehicle should be simulated.

In the FollowTask walker, use a different speed depending on the vehicle for the current stretch. When 'flying', pause for the flying time.

How it would help others

Helps to get to an interesting location more quickly without teleporting. Combine with loitering to, e.g. fly to California, walk around there from pokestop to pokestop, catching pokemon on the way, for a couple of hours, then drive to another city (no egg incubating during the trip), walk around there for another couple of hours, then fly back home.

alexyaoyang commented 7 years ago

Sounds interesting, could be useful! How should it work with walk_min and walk_max?

janpascal commented 7 years ago

I imagine those would only be used if mode==walking. The speed implied by the Google directions reply (it gives time and distance for each step) can be used for driving and bicycling. For flying a constant can be used.

On 27 September 2016 07:58:29 CEST, Alex Yao notifications@github.com wrote:

Sounds interesting, could be useful! How should it work with walk_min and walk_max?

You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub: https://github.com/PokemonGoF/PokemonGo-Bot/issues/5620#issuecomment-249773483

Sent from my Android device with K-9 Mail. Please excuse my brevity.

janpascal commented 7 years ago

I'm working on this. The path.json would look like this:

[
        {"location": "Lindelaan 33, Leiderdorp", "mode": "walking"},
        {"location": "Eikenlaan 25, Leiderdorp", "mode": "walking"},
        {"location": "Hoofdstraat 2, Leiderdorp", "mode": "walking"},
        {"location": "Aankomstpassage, Schiphol", "mode": "driving"},
        {"location": "Hartmann Road, London", "mode": "flying"},
        {"location": "4 Cannon Street, Londeon", "mode": "driving"}
]

The speed while walking is as before, using walk_min and walk_max. While driving (using directions from the Google directions API with the appropriate mode set) the speed per element of the directions is used, with a uniform random distribution of plus or minus five percent. While flying a sleep() is used for the time needed to fly to the next location at a typical airliner cruise speed, around 290 m/s. Flying speed is configurable using fly_min and fly_max in config.js.

Does that sound ok?

janpascal commented 7 years ago

One question: should we take special measures when simulating driving? Does the app limit api calls? Does the app pop-up "You're going too fast! I'm a passenger" lead to any api calls?

janpascal commented 7 years ago

Maybe mode should be vehicle or transport_mode?