1
0
mirror of https://gitee.com/sui-feng-cb/AzurLaneAutoScript1 synced 2026-03-12 14:27:00 +08:00
This commit is contained in:
sui-feng-cb
2026-02-28 05:33:05 +08:00
16 changed files with 85 additions and 89 deletions

View File

@@ -20,7 +20,7 @@ from module.os.assets import FLEET_EMP_DEBUFF, MAP_EXIT, MAP_GOTO_GLOBE, STRONGH
from module.os.camera import OSCamera
from module.os.map_base import OSCampaignMap
from module.os_ash.ash import OSAsh
from module.os_combat.combat import Combat
from module.os_combat.combat import Combat, BATTLE_PREPARATION, SIREN_PREPARATION
from module.os_handler.assets import AUTO_SEARCH_REWARD, CLICK_SAFE_AREA, IN_MAP, PORT_ENTER
from module.os_shop.assets import PORT_SUPPLY_CHECK
from module.ui.assets import BACK_ARROW
@@ -319,6 +319,13 @@ class OSFleet(OSCamera, Combat, Fleet, OSAsh):
clicked_story_count = 0
stuck_timer = Timer(20, count=5).start()
confirm_timer.reset()
def abyssal_expected_end():
# add handle_map_event() because OSCombat.combat_status() removes get_items
if self.handle_map_event(drop=drop):
return False
return self.is_in_map()
for _ in self.loop(skip_first=skip_first_screenshot):
# Map event
event = self.handle_map_event(drop=drop)
@@ -395,7 +402,7 @@ class OSFleet(OSCamera, Combat, Fleet, OSAsh):
if self.combat_appear():
# Use ui_back() for testing, because there are too few abyssal loggers every month.
# 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)
self.combat(expected_end=abyssal_expected_end, fleet_index=self.fleet_show_index, save_get_items=drop)
confirm_timer.reset()
stuck_timer.reset()
result.add('event')
@@ -760,6 +767,7 @@ class OSFleet(OSCamera, Combat, Fleet, OSAsh):
logger.hr('BOSS leave')
# Update local view
self.update_os()
self.predict()
click_timer = Timer(3)
pause_interval = Timer(0.5, count=1)
@@ -773,8 +781,13 @@ class OSFleet(OSCamera, Combat, Fleet, OSAsh):
# Re-enter boss accidentally
if pause_interval.reached():
if self.combat_appear():
logger.info(f'combat_appear -> {BACK_ARROW}')
if self.appear(BATTLE_PREPARATION):
logger.info(f'{BATTLE_PREPARATION} -> {BACK_ARROW}')
self.device.click(BACK_ARROW)
pause_interval.reset()
continue
if self.appear(SIREN_PREPARATION, offset=(20, 20)):
logger.info(f'{SIREN_PREPARATION} -> {BACK_ARROW}')
self.device.click(BACK_ARROW)
pause_interval.reset()
continue