Skip to content

Commit

Permalink
Showing 3 changed files with 34 additions and 21 deletions.
19 changes: 13 additions & 6 deletions pokemongo_bot/__init__.py
Original file line number Diff line number Diff line change
@@ -20,6 +20,7 @@
from item_list import Item
from metrics import Metrics
from spiral_navigator import SpiralNavigator
from worker_result import WorkerResult


class PokemonGoBot(object):
@@ -42,7 +43,6 @@ def start(self):
random.seed()

def take_step(self):
location = self.navigator.take_step()
self.process_cells(work_on_forts=True)

def process_cells(self, work_on_forts=True):
@@ -161,16 +161,19 @@ def work_on_cell(self, cell, position, work_on_forts=1):

if self.config.initial_transfer:
worker = InitialTransferWorker(self)
worker.work()
if worker.work() == WorkerResult.RUNNING:
return
self.config.initial_transfer = False

if self.config.evolve_all:
worker = EvolveAllWorker(self)
worker.work()
if worker.work() == WorkerResult.RUNNING:
return
self.config.evolve_all = []

worker = CatchVisiblePokemonWorker(self, cell)
worker.work()
if worker.work() == WorkerResult.RUNNING:
return

if ((self.config.mode == "all" or
self.config.mode == "farm") and work_on_forts):
@@ -191,8 +194,12 @@ def work_on_cell(self, cell, position, work_on_forts=1):

if len(forts) > 0:
# Move to and spin the nearest stop.
MoveToFortWorker(forts[0], self).work()
SeenFortWorker(forts[0], self).work()
if MoveToFortWorker(forts[0], self).work() == WorkerResult.RUNNING:
return
if SeenFortWorker(forts[0], self).work() == WorkerResult.RUNNING:
return

self.navigator.take_step()

def _setup_logging(self):
self.log = logging.getLogger(__name__)
33 changes: 18 additions & 15 deletions pokemongo_bot/cell_workers/move_to_fort_worker.py
Original file line number Diff line number Diff line change
@@ -2,6 +2,7 @@
from pokemongo_bot.human_behaviour import sleep
from pokemongo_bot import logger
from pokemongo_bot.step_walker import StepWalker
from pokemongo_bot.worker_result import WorkerResult

class MoveToFortWorker(object):
def __init__(self, fort, bot):
@@ -11,6 +12,7 @@ def __init__(self, fort, bot):
self.config = bot.config
self.navigator = bot.navigator
self.position = bot.position
self._step_walker = None

def work(self):
lat = self.fort['latitude']
@@ -29,20 +31,21 @@ def work(self):
position = (lat, lng, 0.0)

if self.config.walk > 0:
step_walker = StepWalker(
self.bot,
self.config.walk,
self.api._position_lat,
self.api._position_lng,
position[0],
position[1]
)

while distance(i2f(self.api._position_lat), i2f(self.api._position_lng), lat, lng) > 10:
if step_walker.step():
break
else:
self.bot.process_cells(work_on_forts=False)
if self._step_walker == None:
self._step_walker = StepWalker(
self.bot,
self.config.walk,
self.api._position_lat,
self.api._position_lng,
position[0],
position[1]
)


if self._step_walker.step():
return WorkerResult.SUCCESS
else:
return WorkerResult.RUNNING

else:
self.api.set_position(*position)
@@ -51,6 +54,6 @@ def work(self):
response_dict = self.api.call()
logger.log('Arrived at Pokestop')
sleep(2)
return response_dict
return WorkerResult.SUCCESS

return None
3 changes: 3 additions & 0 deletions pokemongo_bot/worker_result.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
class WorkerResult(object):
RUNNING = 'RUNNING'
SUCCESS = 'SUCCESS'

0 comments on commit 9320e5c

Please sign in to comment.