@@ -41,7 +41,7 @@ def check_screen():
41
41
)
42
42
43
43
if res is None :
44
- raise Exception (f'Timeout waiting for screen { spaceScreenEnum (spaceScreenEnum ).name } .' )
44
+ raise Exception (f'Timeout waiting for screen { SpaceScreenEnum (spaceScreenEnum ).name } .' )
45
45
46
46
return res
47
47
@@ -132,15 +132,20 @@ def go_to_home(manager):
132
132
133
133
def go_to_fight (manager ):
134
134
current_screen = SpaceScreen .get_current_screen ()
135
- if current_screen != SpaceScreenEnum .FIGHT .value :
135
+ if current_screen == SpaceScreenEnum .FIGHT .value :
136
+ return
137
+ elif current_screen == SpaceScreenEnum .LOSE .value :
138
+ click_when_target_appears ("button_confirm_without_time" )
139
+ else :
136
140
SpaceScreen .go_to_home (manager )
137
141
click_when_target_appears ("btn_fight_boss" )
138
- SpaceScreen .wait_for_screen (SpaceScreenEnum .FIGHT .value )
139
- else :
140
- Login .do_login (manager )
141
- return
142
142
143
- SpaceScreen .wait_for_screen (SpaceScreenEnum .FIGHT .value )
143
+ new_screen = SpaceScreen .wait_for_possible_screen ([
144
+ SpaceScreenEnum .FIGHT ,
145
+ SpaceScreenEnum .LOSE ,
146
+ ])
147
+ if new_screen == SpaceScreenEnum .LOSE .value :
148
+ SpaceScreenEnum .go_to_fight (manager )
144
149
145
150
def do_print_token (manager ):
146
151
logger_translated ("print token" , LoggerEnum .ACTION )
@@ -250,7 +255,7 @@ def click_first(btns_pos, search_img):
250
255
251
256
ship_life = 50 + (life_index * scale_factor )
252
257
253
- logger (f"{ ship_life } %" , end = " " , datetime = False )
258
+ logger (f"↳ { ship_life } %" , end = " " , datetime = False )
254
259
255
260
if ship_life >= ship_work_percent :
256
261
click_randomly_in_position (x ,y ,w ,h )
@@ -259,7 +264,7 @@ def click_first(btns_pos, search_img):
259
264
else :
260
265
logger ("💤;" , datetime = False )
261
266
262
- return False
267
+ return False
263
268
264
269
logger (f"Sending ships to fight:" )
265
270
@@ -272,12 +277,7 @@ def click_first(btns_pos, search_img):
272
277
buttons_position = Image .get_target_positions ("button_fight_on" , not_target = "button_fight_off" , screen_image = screen_img )
273
278
274
279
if not buttons_position :
275
- scroll (
276
- safe_scroll_target = "ship_bar_vertical" ,
277
- distance = Config .get ('screen' ,'scroll' , 'distance' ),
278
- duration = Config .get ('screen' ,'scroll' , 'duration' ),
279
- wait = Config .get ('screen' ,'scroll' , 'wait' ),
280
- )
280
+ Ship .scroll_ships ()
281
281
scroll_times += 1
282
282
continue
283
283
@@ -287,7 +287,7 @@ def click_first(btns_pos, search_img):
287
287
final_x = inital_x + width_search_area
288
288
289
289
search_img = screen_img [:,inital_x :final_x , :]
290
- logger ( "↳" , end = " " , datetime = False )
290
+
291
291
292
292
ship_work_percent = Config .get ('ship_work_percent' )
293
293
@@ -298,6 +298,11 @@ def click_first(btns_pos, search_img):
298
298
if time .time () - start_time > 15 :
299
299
if not Ship .check_number_of_ships (Image .screen (), n_ships ):
300
300
raise Exception (f"Error trying to send { n_ships } ships to fight." )
301
+ else :
302
+ Ship .scroll_ships ()
303
+ scroll_times += 1
304
+ continue
305
+
301
306
302
307
303
308
if n_ships < Config .get ('n_minimum_ships_to_fight' ):
@@ -322,6 +327,14 @@ def click_first(btns_pos, search_img):
322
327
manager .set_refresh_timer ("refresh_ships" )
323
328
return True
324
329
330
+ def scroll_ships ():
331
+ return scroll (
332
+ safe_scroll_target = ["button_fight_on" , "button_fight_off" ],
333
+ distance = Config .get ('screen' ,'scroll' , 'distance' ),
334
+ duration = Config .get ('screen' ,'scroll' , 'duration' ),
335
+ wait = Config .get ('screen' ,'scroll' , 'wait' ),
336
+ )
337
+
325
338
def check_number_of_ships (screen_img , n_ships ):
326
339
# CROP SCREEN FROM TEXT 'BATTLE':
327
340
x , y , w , h = Image .get_one_target_position ("identify_n_space_shipts_in_battle_start_area" , screen_image = screen_img )
0 commit comments