1
0
mirror of https://gitee.com/sui-feng-cb/AzurLaneAutoScript1 synced 2026-03-09 18:39:04 +08:00

Fix: [Tmp] poor implemention on handle island level up

This commit is contained in:
sui-feng-cb 2025-10-19 12:08:57 +08:00
parent ff29637fbf
commit 841d5d91ee
2 changed files with 31 additions and 10 deletions

View File

@ -318,12 +318,13 @@ class IslandProjectRun(IslandUI):
Returns: Returns:
bool: if success bool: if success
""" """
logger.hr('Island Project', level=2) logger.hr('Island Project')
self.device.click_record_clear() self.device.click_record_clear()
self.interval_clear([ISLAND_MANAGEMENT_CHECK, PROJECT_COMPLETE, self.interval_clear([ISLAND_MANAGEMENT_CHECK, PROJECT_COMPLETE,
GET_ITEMS_ISLAND, ROLE_SELECT_ENTER]) GET_ITEMS_ISLAND, ROLE_SELECT_ENTER])
success = False success = False
enter = True enter = True
click_timer = Timer(5, count=10).start()
timeout = Timer(3, count=6).start() timeout = Timer(3, count=6).start()
while 1: while 1:
if skip_first_screenshot: if skip_first_screenshot:
@ -333,20 +334,24 @@ class IslandProjectRun(IslandUI):
if self.island_in_management(interval=5): if self.island_in_management(interval=5):
self.device.click(button) self.device.click(button)
click_timer.reset()
timeout.reset() timeout.reset()
continue continue
if self.appear_then_click(ISLAND_MANAGEMENT, offset=(20, 20), interval=2): if self.appear_then_click(ISLAND_MANAGEMENT, offset=(20, 20), interval=2):
click_timer.reset()
timeout.reset() timeout.reset()
continue continue
if self.handle_info_bar(): if self.handle_info_bar():
click_timer.reset()
timeout.reset() timeout.reset()
continue continue
if enter and self.appear_then_click(ROLE_SELECT_ENTER, offset=(5, 5), interval=2): if enter and self.appear_then_click(ROLE_SELECT_ENTER, offset=(5, 5), interval=2):
success = True success = True
self.interval_clear(GET_ITEMS_ISLAND) self.interval_clear(GET_ITEMS_ISLAND)
click_timer.reset()
timeout.reset() timeout.reset()
continue continue
@ -355,12 +360,22 @@ class IslandProjectRun(IslandUI):
enter = False enter = False
self.interval_clear(GET_ITEMS_ISLAND) self.interval_clear(GET_ITEMS_ISLAND)
self.interval_reset(ROLE_SELECT_ENTER) self.interval_reset(ROLE_SELECT_ENTER)
click_timer.reset()
timeout.reset() timeout.reset()
continue continue
if self.handle_get_items(): if self.handle_get_items():
enter = True enter = True
self.interval_clear(ROLE_SELECT_ENTER) self.interval_clear(ROLE_SELECT_ENTER)
click_timer.reset()
timeout.reset()
continue
# handle island level up
if not enter and click_timer.reached():
self.device.click(GET_ITEMS_ISLAND)
self.device.sleep(0.3)
click_timer.reset()
timeout.reset() timeout.reset()
continue continue
@ -631,8 +646,7 @@ class IslandProjectRun(IslandUI):
self.ui_ensure_management_page() self.ui_ensure_management_page()
if ensure: if ensure:
self.ensure_project(proj) self.ensure_project(proj)
return True return True
return False
def island_project_config(self, project: IslandProject): def island_project_config(self, project: IslandProject):
""" """

View File

@ -288,7 +288,7 @@ class IslandTransportRun(IslandUI):
self.device.click_record_clear() self.device.click_record_clear()
self.interval_clear([GET_ITEMS_ISLAND, TRANSPORT_RECEIVE, POPUP_CANCEL_WHITE]) self.interval_clear([GET_ITEMS_ISLAND, TRANSPORT_RECEIVE, POPUP_CANCEL_WHITE])
success = True success = True
click_timer = Timer(5) click_timer = Timer(5, count=10).start()
confirm_timer = Timer(1, count=2).start() confirm_timer = Timer(1, count=2).start()
while 1: while 1:
if skip_first_screenshot: if skip_first_screenshot:
@ -297,35 +297,42 @@ class IslandTransportRun(IslandUI):
self.device.screenshot() self.device.screenshot()
if self.handle_info_bar(): if self.handle_info_bar():
click_timer.reset()
confirm_timer.reset() confirm_timer.reset()
continue continue
if self.appear_then_click(TRANSPORT_RECEIVE, offset=(-20, -20, 20, 400), interval=2): if self.appear_then_click(TRANSPORT_RECEIVE, offset=(-20, -20, 20, 400), interval=2):
success = False success = False
click_timer.reset()
confirm_timer.reset() confirm_timer.reset()
continue continue
if self.handle_get_items(): if self.handle_get_items():
success = True success = True
click_timer.reset()
confirm_timer.reset() confirm_timer.reset()
continue continue
if self.handle_popup_cancel('REFRESH_CANCEL', offset=(30, 30)): if self.handle_popup_cancel('REFRESH_CANCEL', offset=(30, 30)):
click_timer.reset()
confirm_timer.reset() confirm_timer.reset()
continue continue
if self.island_in_transport():
if success and confirm_timer.reached():
break
else:
confirm_timer.reset()
# handle island level up # handle island level up
if click_timer.reached(): if click_timer.reached():
success = True success = True
self.device.click(GET_ITEMS_ISLAND) self.device.click(GET_ITEMS_ISLAND)
self.device.sleep(0.3) self.device.sleep(0.3)
click_timer.reset() click_timer.reset()
confirm_timer.reset()
continue
if self.island_in_transport():
if success and confirm_timer.reached():
break
click_timer.reset()
else:
confirm_timer.reset()
return success return success