1
0
mirror of https://gitee.com/sui-feng-cb/AzurLaneAutoScript1 synced 2026-03-12 08:38:20 +08:00
This commit is contained in:
sui-feng-cb
2025-12-10 14:07:47 +08:00
19 changed files with 396 additions and 403 deletions

View File

@@ -323,7 +323,7 @@ class OSFleet(OSCamera, Combat, Fleet, OSAsh):
# Record story history to clear click record
clicked_story = False
clicked_story_count = 0
stuck_timer = Timer(20, count=5).start()
confirm_timer.reset()
while 1:
if skip_first_screenshot:
@@ -335,6 +335,7 @@ class OSFleet(OSCamera, Combat, Fleet, OSAsh):
event = self.handle_map_event(drop=drop)
if event:
confirm_timer.reset()
stuck_timer.reset()
result.add('event')
if event == 'story_skip':
clicked_story = True
@@ -363,6 +364,7 @@ class OSFleet(OSCamera, Combat, Fleet, OSAsh):
continue
if self.handle_retirement():
confirm_timer.reset()
stuck_timer.reset()
continue
if self.handle_walk_out_of_step():
if walk_out_of_step:
@@ -371,27 +373,33 @@ class OSFleet(OSCamera, Combat, Fleet, OSAsh):
continue
if self.handle_popup_confirm('WALK_UNTIL_STABLE'):
confirm_timer.reset()
stuck_timer.reset()
continue
# Accident click
if self.is_in_globe():
self.os_globe_goto_map()
confirm_timer.reset()
stuck_timer.reset()
continue
if self.is_in_storage():
self.storage_quit()
confirm_timer.reset()
stuck_timer.reset()
continue
if self.is_in_os_mission():
self.os_mission_quit()
confirm_timer.reset()
stuck_timer.reset()
continue
if self.handle_os_game_tips():
confirm_timer.reset()
stuck_timer.reset()
continue
if self.is_in_map_order():
self.order_quit()
confirm_timer.reset()
stuck_timer.reset()
continue
# Combat
@@ -400,6 +408,7 @@ class OSFleet(OSCamera, Combat, Fleet, OSAsh):
# self.ui_back(check_button=self.is_in_map)
self.combat(expected_end=self.is_in_map, fleet_index=self.fleet_show_index, save_get_items=drop)
confirm_timer.reset()
stuck_timer.reset()
result.add('event')
continue
@@ -408,18 +417,21 @@ class OSFleet(OSCamera, Combat, Fleet, OSAsh):
self.interval_clear(PORT_SUPPLY_CHECK)
self.handle_akashi_supply_buy(CLICK_SAFE_AREA)
confirm_timer.reset()
stuck_timer.reset()
result.add('akashi')
continue
# A game bug that AUTO_SEARCH_REWARD from the last cleared zone popups
if self.appear_then_click(AUTO_SEARCH_REWARD, offset=(50, 50), interval=3):
confirm_timer.reset()
stuck_timer.reset()
continue
# Enemy searching
if not enemy_searching_appear and self.enemy_searching_appear():
enemy_searching_appear = True
confirm_timer.reset()
stuck_timer.reset()
continue
else:
if enemy_searching_appear:
@@ -428,6 +440,7 @@ class OSFleet(OSCamera, Combat, Fleet, OSAsh):
logger.info('Enemy searching appeared.')
enemy_searching_appear = False
confirm_timer.reset()
stuck_timer.reset()
result.add('search')
if self.is_in_map():
self.enemy_searching_color_initial()
@@ -444,16 +457,34 @@ class OSFleet(OSCamera, Combat, Fleet, OSAsh):
if confirm_timer.reached():
break
else:
if stuck_timer.reached():
logger.warning(f"homo_loca stuck at current view, try reset.")
if self.fleet_reset_view():
stuck_timer.reset()
confirm_timer.reset()
record = current
else:
confirm_timer.reset()
stuck_timer.reset()
result = '_'.join(result)
logger.info(f'Walk stabled, result: {result}')
self.device.screenshot_interval_set()
return result
def fleet_reset_view(self):
"""
Returns:
bool: If reset
"""
current_fleet = self.fleet_selector.get()
if not current_fleet:
logger.warning('Failed to get OpSi fleet')
return False
self.fleet_selector.open()
self.fleet_selector.click(current_fleet)
return True
def port_goto(self, allow_port_arrive=True):
"""
A simple and poor implement to goto port. Searching port on radar.
@@ -629,6 +660,12 @@ class OSFleet(OSCamera, Combat, Fleet, OSAsh):
self.predict()
self.predict_radar()
fleets = self.view.select(is_current_fleet=True)
if fleets.count == 0:
logger.warning('Current fleet not found on local view, reset camera view to current fleet.')
if self.fleet_reset_view():
self.wait_until_camera_stable()
continue
# Calculate destination
grids = self.radar.select(is_question=True)
if grids: