@@ -70,6 +70,7 @@ def __init__(self, *args, **kwargs):
7070 # '使用内建解密': '使用ok内建解密功能',
7171 })
7272
73+ self .skill_tick = self .create_skill_ticker ()
7374 self .action_timeout = 10
7475 self .quick_move_task = QuickMoveTask (self )
7576
@@ -99,58 +100,60 @@ def run(self):
99100 raise
100101
101102 def do_run (self ):
102- self .init_param ()
103+ self .init_all ()
103104 self .load_char ()
104- _wave = - 1
105- _wave_start = 0
106- _delay_task_start = 0
107105 if self .in_team ():
108106 self .open_in_mission_menu ()
109107 self .sleep (0.5 )
110108 while True :
111109 if self .in_team ():
112110 self .get_wave_info ()
113111 if self .current_wave != - 1 :
114- if self .current_wave != _wave :
115- _wave = self .current_wave
116- self .skill_time = self . use_skill ( self . skill_time )
117- if time .time () - _wave_start >= self .config .get ('超时时间' , 180 ):
112+ if self .current_wave != self . runtime_state [ "wave" ] :
113+ self . runtime_state [ "wave" ] = self .current_wave
114+ self .skill_tick ( )
115+ if time .time () - self . runtime_state [ "wave_start_time" ] >= self .config .get ('超时时间' , 180 ):
118116 self .log_info ('任务超时' )
119117 self .open_in_mission_menu ()
120118 self .sleep (0.5 )
121- if self .delay_index is not None and time .time () > _delay_task_start :
122- _delay_task_start += 1
119+ if self .delay_index is not None and time .time () > self . runtime_state [ "delay_task_start" ] :
120+ self . runtime_state [ "delay_task_start" ] += 1
123121 if self .match_map (self .delay_index ):
124122 self .walk_to_aim (self .delay_index )
125123 _status = self .handle_mission_interface (stop_func = self .stop_func )
126124 if _status == Mission .START or _status == Mission .STOP :
127125 if _status == Mission .STOP :
128126 self .quit_mission ()
129127 self .log_info ('任务中止' )
130- self .init_param ()
128+ self .init_all ()
131129 continue
132- else :
133- self .log_info ('任务完成' )
134130 self .wait_until (self .in_team , time_out = 30 )
135- self .init_param ()
131+ self .log_info ('任务开始' )
132+ self .init_all ()
136133 self .sleep (2 )
137134 self .walk_to_aim ()
138- _wave_start = time .time ()
139- _delay_task_start = _wave_start + 1
140- self .reset_wave_info ()
135+ now = time .time ()
136+ self .runtime_state .update ({"wave_start_time" : now , "delay_task_start" : now + 1 })
141137 elif _status == Mission .CONTINUE :
142138 self .log_info ('任务继续' )
143139 self .wait_until (self .in_team , time_out = 30 )
144- self .reset_wave_info ()
145- _wave_start = time .time ()
140+ self .init_for_next_round ()
141+ now = time .time ()
142+ self .runtime_state .update ({"wave_start_time" : now , "delay_task_start" : now + 1 })
146143 self .sleep (0.2 )
147144
148- def init_param (self ):
145+ def init_all (self ):
146+ self .init_for_next_round ()
149147 self .delay_index = None
150- self .stop_mission = False
148+ self .skill_tick . reset ()
151149 self .current_round = 0
150+
151+ def init_for_next_round (self ):
152+ self .init_runtime_state ()
153+
154+ def init_runtime_state (self ):
155+ self .runtime_state = {"wave_start_time" : 0 , "wave" : - 1 , "delay_task_start" : 0 }
152156 self .reset_wave_info ()
153- self .skill_time = 0
154157
155158 def stop_func (self ):
156159 self .get_round_info ()
0 commit comments