mirror of
https://gitee.com/sui-feng-cb/AzurLaneAutoScript1
synced 2026-03-17 04:05:36 +08:00
Add: Dossier Meta Reward Receive
This commit is contained in:
@@ -4,6 +4,10 @@ from module.base.template import Template
|
||||
# This file was automatically generated by dev_tools/button_extract.py.
|
||||
# Don't modify it manually.
|
||||
|
||||
DOSSIER_REWARD_CHECK = Button(area={'cn': (120, 14, 231, 40), 'en': (120, 14, 316, 39), 'jp': (119, 13, 231, 39), 'tw': (120, 14, 231, 40)}, color={'cn': (176, 159, 160), 'en': (130, 105, 104), 'jp': (183, 169, 170), 'tw': (176, 159, 160)}, button={'cn': (120, 14, 231, 40), 'en': (120, 14, 316, 39), 'jp': (119, 13, 231, 39), 'tw': (120, 14, 231, 40)}, file={'cn': './assets/cn/meta_reward/DOSSIER_REWARD_CHECK.png', 'en': './assets/en/meta_reward/DOSSIER_REWARD_CHECK.png', 'jp': './assets/jp/meta_reward/DOSSIER_REWARD_CHECK.png', 'tw': './assets/cn/meta_reward/DOSSIER_REWARD_CHECK.png'})
|
||||
DOSSIER_REWARD_ENTER = Button(area={'cn': (253, 696, 260, 702), 'en': (253, 696, 260, 702), 'jp': (253, 696, 260, 702), 'tw': (253, 696, 260, 702)}, color={'cn': (30, 112, 187), 'en': (30, 112, 187), 'jp': (30, 112, 187), 'tw': (30, 112, 187)}, button={'cn': (244, 645, 404, 709), 'en': (244, 645, 404, 709), 'jp': (244, 645, 404, 709), 'tw': (244, 645, 404, 709)}, file={'cn': './assets/cn/meta_reward/DOSSIER_REWARD_ENTER.png', 'en': './assets/en/meta_reward/DOSSIER_REWARD_ENTER.png', 'jp': './assets/jp/meta_reward/DOSSIER_REWARD_ENTER.png', 'tw': './assets/cn/meta_reward/DOSSIER_REWARD_ENTER.png'})
|
||||
DOSSIER_REWARD_NOTICE = Button(area={'cn': (399, 640, 406, 652), 'en': (399, 640, 406, 652), 'jp': (399, 640, 406, 652), 'tw': (399, 640, 406, 652)}, color={'cn': (214, 120, 107), 'en': (214, 120, 107), 'jp': (214, 120, 107), 'tw': (214, 120, 107)}, button={'cn': (399, 640, 406, 652), 'en': (399, 640, 406, 652), 'jp': (399, 640, 406, 652), 'tw': (399, 640, 406, 652)}, file={'cn': './assets/cn/meta_reward/DOSSIER_REWARD_NOTICE.png', 'en': './assets/en/meta_reward/DOSSIER_REWARD_NOTICE.png', 'jp': './assets/jp/meta_reward/DOSSIER_REWARD_NOTICE.png', 'tw': './assets/cn/meta_reward/DOSSIER_REWARD_NOTICE.png'})
|
||||
DOSSIER_REWARD_RECEIVE = Button(area={'cn': (426, 617, 432, 628), 'en': (426, 617, 432, 628), 'jp': (426, 617, 432, 628), 'tw': (426, 617, 432, 628)}, color={'cn': (214, 117, 103), 'en': (214, 117, 103), 'jp': (214, 117, 103), 'tw': (214, 117, 103)}, button={'cn': (320, 622, 428, 651), 'en': (320, 622, 428, 651), 'jp': (320, 622, 428, 651), 'tw': (320, 622, 428, 651)}, file={'cn': './assets/cn/meta_reward/DOSSIER_REWARD_RECEIVE.png', 'en': './assets/en/meta_reward/DOSSIER_REWARD_RECEIVE.png', 'jp': './assets/jp/meta_reward/DOSSIER_REWARD_RECEIVE.png', 'tw': './assets/cn/meta_reward/DOSSIER_REWARD_RECEIVE.png'})
|
||||
META_REWARD_NOTICE = Button(area={'cn': (1070, 508, 1075, 523), 'en': (1070, 508, 1075, 523), 'jp': (1070, 508, 1075, 523), 'tw': (1070, 508, 1075, 523)}, color={'cn': (249, 182, 57), 'en': (249, 182, 57), 'jp': (249, 182, 57), 'tw': (249, 182, 57)}, button={'cn': (1070, 508, 1075, 523), 'en': (1070, 508, 1075, 523), 'jp': (1070, 508, 1075, 523), 'tw': (1070, 508, 1075, 523)}, file={'cn': './assets/cn/meta_reward/META_REWARD_NOTICE.png', 'en': './assets/en/meta_reward/META_REWARD_NOTICE.png', 'jp': './assets/jp/meta_reward/META_REWARD_NOTICE.png', 'tw': './assets/cn/meta_reward/META_REWARD_NOTICE.png'})
|
||||
REWARD_CHECK = Button(area={'cn': (31, 486, 64, 543), 'en': (35, 487, 62, 541), 'jp': (31, 486, 64, 543), 'tw': (31, 486, 64, 543)}, color={'cn': (199, 164, 165), 'en': (203, 169, 170), 'jp': (206, 172, 174), 'tw': (199, 164, 165)}, button={'cn': (31, 486, 64, 543), 'en': (35, 487, 62, 541), 'jp': (31, 486, 64, 543), 'tw': (31, 486, 64, 543)}, file={'cn': './assets/cn/meta_reward/REWARD_CHECK.png', 'en': './assets/en/meta_reward/REWARD_CHECK.png', 'jp': './assets/jp/meta_reward/REWARD_CHECK.png', 'tw': './assets/cn/meta_reward/REWARD_CHECK.png'})
|
||||
REWARD_ENTER = Button(area={'cn': (1109, 535, 1187, 554), 'en': (1106, 532, 1199, 544), 'jp': (1108, 535, 1188, 554), 'tw': (1109, 535, 1187, 554)}, color={'cn': (199, 195, 201), 'en': (213, 212, 217), 'jp': (215, 207, 214), 'tw': (199, 195, 201)}, button={'cn': (1109, 535, 1187, 554), 'en': (1106, 532, 1199, 544), 'jp': (1108, 535, 1188, 554), 'tw': (1109, 535, 1187, 554)}, file={'cn': './assets/cn/meta_reward/REWARD_ENTER.png', 'en': './assets/en/meta_reward/REWARD_ENTER.png', 'jp': './assets/jp/meta_reward/REWARD_ENTER.png', 'tw': './assets/cn/meta_reward/REWARD_ENTER.png'})
|
||||
|
||||
@@ -107,8 +107,103 @@ class BeaconReward(Combat, UI):
|
||||
|
||||
|
||||
class DossierReward(Combat, UI):
|
||||
def meta_reward_notice_appear(self):
|
||||
"""
|
||||
Returns:
|
||||
bool: If appear.
|
||||
|
||||
Page:
|
||||
in: dossier meta page
|
||||
"""
|
||||
self.device.screenshot()
|
||||
if self.appear(DOSSIER_REWARD_NOTICE, threshold=30):
|
||||
logger.info('Found dossier reward red dot')
|
||||
return True
|
||||
else:
|
||||
logger.info('No dossier reward red dot')
|
||||
return False
|
||||
|
||||
def meta_reward_enter(self, skip_first_screenshot=True):
|
||||
"""
|
||||
Pages:
|
||||
in: dossier meta page
|
||||
out: DOSSIER_REWARD_CHECK
|
||||
"""
|
||||
logger.info('Dossier reward enter')
|
||||
while 1:
|
||||
if skip_first_screenshot:
|
||||
skip_first_screenshot = False
|
||||
else:
|
||||
self.device.screenshot()
|
||||
|
||||
if self.appear_then_click(DOSSIER_REWARD_ENTER, offset=(20, 20), interval=3):
|
||||
continue
|
||||
|
||||
# End
|
||||
if self.appear(DOSSIER_REWARD_CHECK, offset=(20, 20)):
|
||||
break
|
||||
|
||||
def meta_reward_receive(self, skip_first_screenshot=True):
|
||||
"""
|
||||
Args:
|
||||
skip_first_screenshot:
|
||||
|
||||
Returns:
|
||||
bool: If received.
|
||||
|
||||
Pages:
|
||||
in: DOSSIER_REWARD_CHECK
|
||||
out: DOSSIER_REWARD_CHECK
|
||||
"""
|
||||
logger.hr('Dossier reward receive', level=1)
|
||||
confirm_timer = Timer(1, count=3).start()
|
||||
received = False
|
||||
while 1:
|
||||
if skip_first_screenshot:
|
||||
skip_first_screenshot = False
|
||||
else:
|
||||
self.device.screenshot()
|
||||
|
||||
if self.appear(DOSSIER_REWARD_RECEIVE, offset=(20, 20), interval=3) and DOSSIER_REWARD_RECEIVE.match_appear_on(
|
||||
self.device.image):
|
||||
self.device.click(DOSSIER_REWARD_RECEIVE)
|
||||
confirm_timer.reset()
|
||||
continue
|
||||
if self.handle_popup_confirm('DOSSIER_REWARD'):
|
||||
# Lock new META ships
|
||||
confirm_timer.reset()
|
||||
continue
|
||||
if self.handle_get_items():
|
||||
received = True
|
||||
confirm_timer.reset()
|
||||
continue
|
||||
if self.handle_get_ship():
|
||||
received = True
|
||||
confirm_timer.reset()
|
||||
continue
|
||||
|
||||
# End
|
||||
if not self.appear(DOSSIER_REWARD_RECEIVE, offset=(20, 20)):
|
||||
if confirm_timer.reached():
|
||||
break
|
||||
else:
|
||||
confirm_timer.reset()
|
||||
|
||||
logger.info(f'Dossier reward receive finished, received={received}')
|
||||
return received
|
||||
|
||||
def run(self):
|
||||
pass
|
||||
if self.config.SERVER in ['cn', 'en', 'jp']:
|
||||
pass
|
||||
else:
|
||||
logger.info(f'MetaReward is not supported in {self.config.SERVER}, please contact server maintainers')
|
||||
return
|
||||
|
||||
from module.os_ash.meta import OpsiAshBeacon
|
||||
OpsiAshBeacon(self.config, self.device).ensure_dossier_page()
|
||||
if self.meta_reward_notice_appear():
|
||||
self.meta_reward_enter()
|
||||
self.meta_reward_receive()
|
||||
|
||||
|
||||
class MetaReward(BeaconReward, DossierReward):
|
||||
@@ -116,6 +211,6 @@ class MetaReward(BeaconReward, DossierReward):
|
||||
if category == 1:
|
||||
BeaconReward(self.config, self.device).run()
|
||||
elif category == 2:
|
||||
DossierReward(self.config, self.device).run(category)
|
||||
DossierReward(self.config, self.device).run()
|
||||
else:
|
||||
logger.info('Possible wrong parameter, please contact the developers.')
|
||||
|
||||
Reference in New Issue
Block a user