mirror of
https://gitee.com/sui-feng-cb/AzurLaneAutoScript1
synced 2026-04-11 20:21:47 +08:00
@@ -215,6 +215,9 @@ class StorageHandler(StorageUI):
|
|||||||
self.handle_info_bar()
|
self.handle_info_bar()
|
||||||
self.wait_until_stable(MATERIAL_STABLE_CHECK)
|
self.wait_until_stable(MATERIAL_STABLE_CHECK)
|
||||||
items = EQUIPMENT_ITEMS.predict(self.device.image, name=False, amount=True)
|
items = EQUIPMENT_ITEMS.predict(self.device.image, name=False, amount=True)
|
||||||
|
if not len(items):
|
||||||
|
logger.warning('No items in storage to disassemble')
|
||||||
|
return 0
|
||||||
cumsum = np.cumsum([item.amount for item in items])
|
cumsum = np.cumsum([item.amount for item in items])
|
||||||
for item, total in zip(items, cumsum):
|
for item, total in zip(items, cumsum):
|
||||||
if item.amount <= 0:
|
if item.amount <= 0:
|
||||||
@@ -222,11 +225,27 @@ class StorageHandler(StorageUI):
|
|||||||
self.device.click(item)
|
self.device.click(item)
|
||||||
self.device.click_record.pop()
|
self.device.click_record.pop()
|
||||||
if total >= amount:
|
if total >= amount:
|
||||||
|
amount = total
|
||||||
break
|
break
|
||||||
|
amount = min(cumsum[-1], amount)
|
||||||
|
|
||||||
|
# Wait items being selected
|
||||||
|
logger.info(f'Disassemble once, in_storage amount: {amount}')
|
||||||
|
timeout = Timer(1, count=2).start()
|
||||||
|
prev_disassemble = 0
|
||||||
|
while 1:
|
||||||
|
self.device.screenshot()
|
||||||
|
disassembled, _, _ = OCR_DISASSEMBLE_COUNT.ocr(self.device.image)
|
||||||
|
if disassembled >= amount:
|
||||||
|
logger.info('Disassemble amount reached expected amount')
|
||||||
|
break
|
||||||
|
if timeout.reached():
|
||||||
|
logger.warning('Wait disassemble amount timeout')
|
||||||
|
break
|
||||||
|
if disassembled > prev_disassemble:
|
||||||
|
prev_disassemble = disassembled
|
||||||
|
timeout.reset()
|
||||||
|
|
||||||
self.device.sleep((0.1, 0.2))
|
|
||||||
self.device.screenshot()
|
|
||||||
disassembled, _, _ = OCR_DISASSEMBLE_COUNT.ocr(self.device.image)
|
|
||||||
logger.info(f'Disassemble once, actual amount: {disassembled}')
|
logger.info(f'Disassemble once, actual amount: {disassembled}')
|
||||||
if disassembled <= 0:
|
if disassembled <= 0:
|
||||||
logger.warning('No items selected to disassemble')
|
logger.warning('No items selected to disassemble')
|
||||||
|
|||||||
Reference in New Issue
Block a user