mirror of
https://gitee.com/sui-feng-cb/AzurLaneAutoScript1
synced 2026-03-31 06:34:11 +08:00
Fix: Handle unknown research status when receiving the 6th research
This commit is contained in:
@@ -582,7 +582,7 @@ class ResearchSelector(UI):
|
|||||||
|
|
||||||
@Config.when(SERVER=None)
|
@Config.when(SERVER=None)
|
||||||
def research_detect(self):
|
def research_detect(self):
|
||||||
timeout = Timer(3, count=3).start()
|
timeout = Timer(5, count=5).start()
|
||||||
while 1:
|
while 1:
|
||||||
projects = research_detect(self.device.image)
|
projects = research_detect(self.device.image)
|
||||||
|
|
||||||
|
|||||||
@@ -438,26 +438,44 @@ class RewardResearch(ResearchSelector, ResearchQueue):
|
|||||||
bool: If success
|
bool: If success
|
||||||
"""
|
"""
|
||||||
logger.hr('Receive 6th research', level=2)
|
logger.hr('Receive 6th research', level=2)
|
||||||
# Check if it's finished
|
|
||||||
if self.research_has_finished():
|
timeout = Timer(2, count=6).start()
|
||||||
logger.info(f'6th research finished at: {self._research_finished_index}')
|
skip_first_screenshot = True
|
||||||
success = self.research_receive()
|
while 1:
|
||||||
if not success:
|
if skip_first_screenshot:
|
||||||
return False
|
skip_first_screenshot = False
|
||||||
else:
|
|
||||||
logger.info('No research has finished')
|
|
||||||
# Check if it's waiting or running
|
|
||||||
status = self.get_research_status(self.device.image)
|
|
||||||
if 'waiting' in status:
|
|
||||||
if self.get_queue_slot() > 0:
|
|
||||||
self.research_project_start(status.index('waiting'))
|
|
||||||
else:
|
else:
|
||||||
logger.info('Queue full, stop appending waiting research')
|
self.device.screenshot()
|
||||||
if 'running' in status:
|
|
||||||
if self.get_queue_slot() > 0:
|
if timeout.reached():
|
||||||
self.research_project_start(status.index('running'))
|
logger.warning('receive_6th_research timeout')
|
||||||
|
break
|
||||||
|
|
||||||
|
# Check if it's finished
|
||||||
|
if self.research_has_finished():
|
||||||
|
logger.info(f'6th research finished at: {self._research_finished_index}')
|
||||||
|
success = self.research_receive()
|
||||||
|
if not success:
|
||||||
|
return False
|
||||||
else:
|
else:
|
||||||
logger.info('Queue full, stop appending running research')
|
logger.info('No research has finished')
|
||||||
|
|
||||||
|
# Check if it's waiting or running
|
||||||
|
status = self.get_research_status(self.device.image)
|
||||||
|
if 'waiting' in status:
|
||||||
|
if self.get_queue_slot() > 0:
|
||||||
|
self.research_project_start(status.index('waiting'))
|
||||||
|
else:
|
||||||
|
logger.info('Queue full, stop appending waiting research')
|
||||||
|
break
|
||||||
|
if 'running' in status:
|
||||||
|
if self.get_queue_slot() > 0:
|
||||||
|
self.research_project_start(status.index('running'))
|
||||||
|
else:
|
||||||
|
logger.info('Queue full, stop appending running research')
|
||||||
|
break
|
||||||
|
if 'unknown' in status:
|
||||||
|
continue
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user