Fix: Selection may have lost after setting rarity

This commit is contained in:
LmeSzinc 2024-07-12 21:13:20 +08:00
parent a1bc3c94be
commit 287f51386e
2 changed files with 16 additions and 2 deletions

View File

@ -330,15 +330,17 @@ class InventoryManager:
clicked = True clicked = True
continue continue
def wait_selected(self, skip_first_screenshot=True): def wait_selected(self, select_first=False, skip_first_screenshot=True):
""" """
Args: Args:
select_first: True to click first item if no item was selected
skip_first_screenshot: skip_first_screenshot:
Returns: Returns:
bool: If success bool: If success
""" """
timeout = Timer(2, count=6).start() timeout = Timer(2, count=6).start()
interval = Timer(1, count=3)
while 1: while 1:
if skip_first_screenshot: if skip_first_screenshot:
skip_first_screenshot = False skip_first_screenshot = False
@ -346,6 +348,8 @@ class InventoryManager:
self.main.device.screenshot() self.main.device.screenshot()
self.update() self.update()
# End
if timeout.reached(): if timeout.reached():
logger.warning('Wait inventory selected timeout') logger.warning('Wait inventory selected timeout')
return False return False
@ -353,3 +357,12 @@ class InventoryManager:
continue continue
if self.selected is not None: if self.selected is not None:
return True return True
# Click
if select_first:
first = self.get_first()
if first is None:
logger.warning(f'No items detected, cannot select inventory')
elif interval.reached():
self.main.device.click(first)
interval.reset()

View File

@ -213,7 +213,8 @@ class Synthesize(CombatObtain, ItemUI):
if inv is not None: if inv is not None:
if inv.wait_selected(): if inv.wait_selected():
return True return True
else: # Game bug that selection may have lost after setting rarity
elif inv.wait_selected(select_first=True):
continue continue
else: else:
logger.info('synthesize_rarity_reset ended without wait_selected()') logger.info('synthesize_rarity_reset ended without wait_selected()')