mirror of
https://gitee.com/sui-feng-cb/AzurLaneAutoScript1
synced 2026-04-11 14:32:30 +08:00
Fix: ensure_campaign_ui should have timeout instead of loop count
This commit is contained in:
@@ -227,19 +227,35 @@ class CampaignUI(MapOperation, CampaignEvent, CampaignOcr):
|
|||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def ensure_campaign_ui(self, name, mode='normal'):
|
def ensure_campaign_ui(self, name, mode='normal', skip_first_screenshot=True):
|
||||||
for n in range(20):
|
"""
|
||||||
|
Args:
|
||||||
|
name (str): Campaign name, such as '7-2', 'd3', 'sp3'.
|
||||||
|
mode (str): 'normal' or 'hard'.
|
||||||
|
skip_first_screenshot:
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
ScriptEnd: If failed to switch after retries
|
||||||
|
"""
|
||||||
|
timeout = Timer(5, count=20).start()
|
||||||
|
while 1:
|
||||||
|
if skip_first_screenshot:
|
||||||
|
skip_first_screenshot = False
|
||||||
|
else:
|
||||||
|
self.device.screenshot()
|
||||||
|
|
||||||
|
if timeout.reached():
|
||||||
|
break
|
||||||
try:
|
try:
|
||||||
self.campaign_set_chapter(name, mode)
|
self.campaign_set_chapter(name, mode)
|
||||||
self.ENTRANCE = self.campaign_get_entrance(name=name)
|
self.ENTRANCE = self.campaign_get_entrance(name=name)
|
||||||
return True
|
return True
|
||||||
except CampaignNameError:
|
except CampaignNameError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if self.handle_campaign_ui_additional():
|
if self.handle_campaign_ui_additional():
|
||||||
continue
|
continue
|
||||||
|
|
||||||
self.device.screenshot()
|
|
||||||
|
|
||||||
logger.warning('Campaign name error')
|
logger.warning('Campaign name error')
|
||||||
raise ScriptEnd('Campaign name error')
|
raise ScriptEnd('Campaign name error')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user