1
0
mirror of https://gitee.com/sui-feng-cb/AzurLaneAutoScript1 synced 2026-04-02 02:34:08 +08:00
This commit is contained in:
2026-03-31 13:54:36 +08:00
11 changed files with 50 additions and 15 deletions

View File

@@ -4,8 +4,8 @@ from module.base.template import Template
# This file was automatically generated by dev_tools/button_extract.py.
# Don't modify it manually.
AIR_STRIKE_CANCEL = Button(area={'cn': (886, 644, 948, 675), 'en': (886, 644, 948, 675), 'jp': (948, 644, 1009, 676), 'tw': (886, 644, 948, 675)}, color={'cn': (195, 144, 139), 'en': (195, 144, 139), 'jp': (194, 124, 117), 'tw': (195, 144, 139)}, button={'cn': (886, 644, 948, 675), 'en': (886, 644, 948, 675), 'jp': (948, 644, 1009, 676), 'tw': (886, 644, 948, 675)}, file={'cn': './assets/cn/handler/AIR_STRIKE_CANCEL.png', 'en': './assets/cn/handler/AIR_STRIKE_CANCEL.png', 'jp': './assets/jp/handler/AIR_STRIKE_CANCEL.png', 'tw': './assets/cn/handler/AIR_STRIKE_CANCEL.png'})
AIR_STRIKE_CONFIRM = Button(area={'cn': (1100, 644, 1161, 675), 'en': (1100, 644, 1161, 675), 'jp': (1161, 644, 1222, 675), 'tw': (1100, 644, 1161, 675)}, color={'cn': (132, 163, 203), 'en': (132, 163, 203), 'jp': (137, 170, 211), 'tw': (132, 163, 203)}, button={'cn': (1100, 644, 1161, 675), 'en': (1100, 644, 1161, 675), 'jp': (1161, 644, 1222, 675), 'tw': (1100, 644, 1161, 675)}, file={'cn': './assets/cn/handler/AIR_STRIKE_CONFIRM.png', 'en': './assets/cn/handler/AIR_STRIKE_CONFIRM.png', 'jp': './assets/jp/handler/AIR_STRIKE_CONFIRM.png', 'tw': './assets/cn/handler/AIR_STRIKE_CONFIRM.png'})
AIR_STRIKE_CANCEL = Button(area={'cn': (887, 644, 948, 676), 'en': (887, 644, 948, 676), 'jp': (948, 644, 1009, 676), 'tw': (887, 644, 948, 676)}, color={'cn': (193, 141, 135), 'en': (193, 141, 135), 'jp': (194, 124, 117), 'tw': (193, 141, 135)}, button={'cn': (887, 644, 948, 676), 'en': (887, 644, 948, 676), 'jp': (948, 644, 1009, 676), 'tw': (887, 644, 948, 676)}, file={'cn': './assets/cn/handler/AIR_STRIKE_CANCEL.png', 'en': './assets/cn/handler/AIR_STRIKE_CANCEL.png', 'jp': './assets/jp/handler/AIR_STRIKE_CANCEL.png', 'tw': './assets/cn/handler/AIR_STRIKE_CANCEL.png'})
AIR_STRIKE_CONFIRM = Button(area={'cn': (1100, 644, 1161, 675), 'en': (1100, 644, 1161, 675), 'jp': (1161, 644, 1222, 675), 'tw': (1100, 644, 1161, 675)}, color={'cn': (129, 161, 199), 'en': (129, 161, 199), 'jp': (137, 170, 211), 'tw': (129, 161, 199)}, button={'cn': (1100, 644, 1161, 675), 'en': (1100, 644, 1161, 675), 'jp': (1161, 644, 1222, 675), 'tw': (1100, 644, 1161, 675)}, file={'cn': './assets/cn/handler/AIR_STRIKE_CONFIRM.png', 'en': './assets/cn/handler/AIR_STRIKE_CONFIRM.png', 'jp': './assets/jp/handler/AIR_STRIKE_CONFIRM.png', 'tw': './assets/cn/handler/AIR_STRIKE_CONFIRM.png'})
AIR_STRIKE_ENTER = Button(area={'cn': (1194, 456, 1249, 530), 'en': (1194, 456, 1249, 530), 'jp': (1194, 456, 1249, 530), 'tw': (1194, 456, 1249, 530)}, color={'cn': (123, 124, 131), 'en': (123, 124, 131), 'jp': (123, 124, 131), 'tw': (123, 124, 131)}, button={'cn': (1194, 456, 1249, 530), 'en': (1194, 456, 1249, 530), 'jp': (1194, 456, 1249, 530), 'tw': (1194, 456, 1249, 530)}, file={'cn': './assets/cn/handler/AIR_STRIKE_ENTER.png', 'en': './assets/cn/handler/AIR_STRIKE_ENTER.png', 'jp': './assets/cn/handler/AIR_STRIKE_ENTER.png', 'tw': './assets/cn/handler/AIR_STRIKE_ENTER.png'})
ANDROID_NO_RESPOND = Button(area={'cn': (341, 433, 391, 472), 'en': (341, 433, 391, 472), 'jp': (341, 433, 391, 472), 'tw': (341, 433, 391, 472)}, color={'cn': (217, 237, 235), 'en': (217, 237, 235), 'jp': (217, 237, 235), 'tw': (217, 237, 235)}, button={'cn': (341, 433, 391, 472), 'en': (341, 433, 391, 472), 'jp': (341, 433, 391, 472), 'tw': (341, 433, 391, 472)}, file={'cn': './assets/cn/handler/ANDROID_NO_RESPOND.png', 'en': './assets/en/handler/ANDROID_NO_RESPOND.png', 'jp': './assets/jp/handler/ANDROID_NO_RESPOND.png', 'tw': './assets/tw/handler/ANDROID_NO_RESPOND.png'})
AUTO_SEARCH_MAP_OPTION_OFF = Button(area={'cn': (1205, 549, 1275, 566), 'en': (1203, 552, 1277, 564), 'jp': (1204, 547, 1276, 568), 'tw': (1205, 546, 1275, 567)}, color={'cn': (196, 169, 169), 'en': (151, 132, 138), 'jp': (179, 153, 156), 'tw': (153, 132, 137)}, button={'cn': (1205, 549, 1275, 566), 'en': (1203, 552, 1277, 564), 'jp': (1204, 547, 1276, 568), 'tw': (1205, 546, 1275, 567)}, file={'cn': './assets/cn/handler/AUTO_SEARCH_MAP_OPTION_OFF.png', 'en': './assets/en/handler/AUTO_SEARCH_MAP_OPTION_OFF.png', 'jp': './assets/jp/handler/AUTO_SEARCH_MAP_OPTION_OFF.png', 'tw': './assets/tw/handler/AUTO_SEARCH_MAP_OPTION_OFF.png'})

View File

@@ -121,6 +121,8 @@ class EnemySearchingHandler(InfoHandler):
if self.handle_in_stage():
return True
if self.handle_auto_search_exit(drop=drop):
timeout.limit = 10
timeout.reset()
continue
# Popups
@@ -148,6 +150,7 @@ class EnemySearchingHandler(InfoHandler):
if appeared:
self.handle_enemy_flashing()
self.device.sleep(0.3)
self.device.screenshot()
logger.info('Enemy searching appeared.')
break
self.enemy_searching_color_initial()
@@ -155,7 +158,6 @@ class EnemySearchingHandler(InfoHandler):
logger.info('Enemy searching timeout.')
break
self.device.screenshot()
return True
def handle_in_map_no_enemy_searching(self, drop=None):
@@ -173,15 +175,15 @@ class EnemySearchingHandler(InfoHandler):
while 1:
self.device.screenshot()
# End
if timeout.reached():
break
if not self.is_in_map():
timeout.reset()
# Stage might ends,
# although here expects an enemy searching animation.
if self.handle_in_stage():
return True
if self.handle_auto_search_exit(drop=drop):
timeout.reset()
continue
# Popups
@@ -198,4 +200,9 @@ class EnemySearchingHandler(InfoHandler):
timeout.reset()
continue
# End
if timeout.reached():
logger.info('No enemy searching in map.')
break
return True

View File

@@ -377,12 +377,17 @@ class Map(Fleet):
grids = self.map.select(may_boss=True, is_accessible=True).sort('weight', 'cost')
logger.info('May boss: %s' % grids)
battle_count = self.battle_count
is_single_boss = self.map.select(may_boss=True).count == 1
if is_single_boss:
expected = 'boss'
else:
expected = ''
for grid in grids:
logger.hr('Clear potential BOSS')
grids = grids.sort('weight', 'cost')
logger.info('Grid: %s' % str(grid))
self.fleet_boss.clear_chosen_enemy(grid)
self.fleet_boss.clear_chosen_enemy(grid, expected=expected)
if self.battle_count > battle_count:
logger.info('Boss guessing correct.')
return True
@@ -397,7 +402,7 @@ class Map(Fleet):
roadblocks = self.brute_find_roadblocks(grid, fleet=self.fleet_boss_index)
roadblocks = roadblocks.sort('weight', 'cost')
logger.info('Grids: %s' % str(roadblocks))
self.fleet_1.clear_chosen_enemy(roadblocks[0])
self.fleet_1.clear_chosen_enemy(roadblocks[0], expected=expected)
return True
return False