2
2
from pokemongo_bot .human_behaviour import sleep
3
3
from pokemongo_bot import logger
4
4
from pokemongo_bot .step_walker import StepWalker
5
+ from pokemongo_bot .worker_result import WorkerResult
5
6
6
7
class MoveToFortWorker (object ):
7
8
def __init__ (self , fort , bot ):
@@ -11,6 +12,7 @@ def __init__(self, fort, bot):
11
12
self .config = bot .config
12
13
self .navigator = bot .navigator
13
14
self .position = bot .position
15
+ self ._step_walker = None
14
16
15
17
def work (self ):
16
18
lat = self .fort ['latitude' ]
@@ -29,20 +31,21 @@ def work(self):
29
31
position = (lat , lng , 0.0 )
30
32
31
33
if self .config .walk > 0 :
32
- step_walker = StepWalker (
33
- self .bot ,
34
- self .config .walk ,
35
- self .api ._position_lat ,
36
- self .api ._position_lng ,
37
- position [0 ],
38
- position [1 ]
39
- )
40
-
41
- while distance (i2f (self .api ._position_lat ), i2f (self .api ._position_lng ), lat , lng ) > 10 :
42
- if step_walker .step ():
43
- break
44
- else :
45
- self .bot .process_cells (work_on_forts = False )
34
+ if self ._step_walker == None :
35
+ self ._step_walker = StepWalker (
36
+ self .bot ,
37
+ self .config .walk ,
38
+ self .api ._position_lat ,
39
+ self .api ._position_lng ,
40
+ position [0 ],
41
+ position [1 ]
42
+ )
43
+
44
+
45
+ if self ._step_walker .step ():
46
+ return WorkerResult .SUCCESS
47
+ else :
48
+ return WorkerResult .RUNNING
46
49
47
50
else :
48
51
self .api .set_position (* position )
@@ -51,6 +54,6 @@ def work(self):
51
54
response_dict = self .api .call ()
52
55
logger .log ('Arrived at Pokestop' )
53
56
sleep (2 )
54
- return response_dict
57
+ return WorkerResult . SUCCESS
55
58
56
59
return None
0 commit comments