mirror of
https://gitee.com/sui-feng-cb/AzurLaneAutoScript1
synced 2026-03-09 17:29:04 +08:00
Upd: island ui_additional
This commit is contained in:
parent
f981ec614d
commit
530efc628e
BIN
assets/cn/island/ISLAND_INFO_EXIT.png
Normal file
BIN
assets/cn/island/ISLAND_INFO_EXIT.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.6 KiB |
@ -7,6 +7,7 @@ from module.base.template import Template
|
|||||||
GET_ITEMS_ISLAND = Button(area={'cn': (588, 260, 692, 289), 'en': (588, 260, 692, 289), 'jp': (588, 260, 692, 289), 'tw': (588, 260, 692, 289)}, color={'cn': (178, 180, 180), 'en': (149, 151, 152), 'jp': (178, 180, 180), 'tw': (178, 180, 180)}, button={'cn': (0, 263, 129, 555), 'en': (588, 260, 692, 289), 'jp': (0, 263, 129, 555), 'tw': (0, 263, 129, 555)}, file={'cn': './assets/cn/island/GET_ITEMS_ISLAND.png', 'en': './assets/en/island/GET_ITEMS_ISLAND.png', 'jp': './assets/cn/island/GET_ITEMS_ISLAND.png', 'tw': './assets/cn/island/GET_ITEMS_ISLAND.png'})
|
GET_ITEMS_ISLAND = Button(area={'cn': (588, 260, 692, 289), 'en': (588, 260, 692, 289), 'jp': (588, 260, 692, 289), 'tw': (588, 260, 692, 289)}, color={'cn': (178, 180, 180), 'en': (149, 151, 152), 'jp': (178, 180, 180), 'tw': (178, 180, 180)}, button={'cn': (0, 263, 129, 555), 'en': (588, 260, 692, 289), 'jp': (0, 263, 129, 555), 'tw': (0, 263, 129, 555)}, file={'cn': './assets/cn/island/GET_ITEMS_ISLAND.png', 'en': './assets/en/island/GET_ITEMS_ISLAND.png', 'jp': './assets/cn/island/GET_ITEMS_ISLAND.png', 'tw': './assets/cn/island/GET_ITEMS_ISLAND.png'})
|
||||||
ISLAND_AMOUNT_MAX = Button(area={'cn': (960, 382, 988, 405), 'en': (960, 382, 988, 405), 'jp': (960, 382, 988, 405), 'tw': (960, 382, 988, 405)}, color={'cn': (72, 72, 78), 'en': (78, 78, 84), 'jp': (72, 72, 78), 'tw': (72, 72, 78)}, button={'cn': (960, 382, 988, 405), 'en': (960, 382, 988, 405), 'jp': (960, 382, 988, 405), 'tw': (960, 382, 988, 405)}, file={'cn': './assets/cn/island/ISLAND_AMOUNT_MAX.png', 'en': './assets/en/island/ISLAND_AMOUNT_MAX.png', 'jp': './assets/cn/island/ISLAND_AMOUNT_MAX.png', 'tw': './assets/cn/island/ISLAND_AMOUNT_MAX.png'})
|
ISLAND_AMOUNT_MAX = Button(area={'cn': (960, 382, 988, 405), 'en': (960, 382, 988, 405), 'jp': (960, 382, 988, 405), 'tw': (960, 382, 988, 405)}, color={'cn': (72, 72, 78), 'en': (78, 78, 84), 'jp': (72, 72, 78), 'tw': (72, 72, 78)}, button={'cn': (960, 382, 988, 405), 'en': (960, 382, 988, 405), 'jp': (960, 382, 988, 405), 'tw': (960, 382, 988, 405)}, file={'cn': './assets/cn/island/ISLAND_AMOUNT_MAX.png', 'en': './assets/en/island/ISLAND_AMOUNT_MAX.png', 'jp': './assets/cn/island/ISLAND_AMOUNT_MAX.png', 'tw': './assets/cn/island/ISLAND_AMOUNT_MAX.png'})
|
||||||
ISLAND_CLICK_SAFE_AREA = Button(area={'cn': (0, 263, 129, 555), 'en': (0, 263, 129, 555), 'jp': (0, 263, 129, 555), 'tw': (0, 263, 129, 555)}, color={'cn': (50, 52, 56), 'en': (50, 52, 56), 'jp': (50, 52, 56), 'tw': (50, 52, 56)}, button={'cn': (0, 263, 129, 555), 'en': (0, 263, 129, 555), 'jp': (0, 263, 129, 555), 'tw': (0, 263, 129, 555)}, file={'cn': './assets/cn/island/ISLAND_CLICK_SAFE_AREA.png', 'en': './assets/cn/island/ISLAND_CLICK_SAFE_AREA.png', 'jp': './assets/cn/island/ISLAND_CLICK_SAFE_AREA.png', 'tw': './assets/cn/island/ISLAND_CLICK_SAFE_AREA.png'})
|
ISLAND_CLICK_SAFE_AREA = Button(area={'cn': (0, 263, 129, 555), 'en': (0, 263, 129, 555), 'jp': (0, 263, 129, 555), 'tw': (0, 263, 129, 555)}, color={'cn': (50, 52, 56), 'en': (50, 52, 56), 'jp': (50, 52, 56), 'tw': (50, 52, 56)}, button={'cn': (0, 263, 129, 555), 'en': (0, 263, 129, 555), 'jp': (0, 263, 129, 555), 'tw': (0, 263, 129, 555)}, file={'cn': './assets/cn/island/ISLAND_CLICK_SAFE_AREA.png', 'en': './assets/cn/island/ISLAND_CLICK_SAFE_AREA.png', 'jp': './assets/cn/island/ISLAND_CLICK_SAFE_AREA.png', 'tw': './assets/cn/island/ISLAND_CLICK_SAFE_AREA.png'})
|
||||||
|
ISLAND_INFO_EXIT = Button(area={'cn': (907, 160, 933, 187), 'en': (907, 160, 933, 187), 'jp': (907, 160, 933, 187), 'tw': (907, 160, 933, 187)}, color={'cn': (96, 96, 96), 'en': (96, 96, 96), 'jp': (96, 96, 96), 'tw': (96, 96, 96)}, button={'cn': (907, 160, 933, 187), 'en': (907, 160, 933, 187), 'jp': (907, 160, 933, 187), 'tw': (907, 160, 933, 187)}, file={'cn': './assets/cn/island/ISLAND_INFO_EXIT.png', 'en': './assets/cn/island/ISLAND_INFO_EXIT.png', 'jp': './assets/cn/island/ISLAND_INFO_EXIT.png', 'tw': './assets/cn/island/ISLAND_INFO_EXIT.png'})
|
||||||
ISLAND_MANAGEMENT = Button(area={'cn': (1077, 493, 1119, 533), 'en': (1077, 493, 1119, 533), 'jp': (1077, 493, 1119, 533), 'tw': (1077, 493, 1119, 533)}, color={'cn': (187, 224, 135), 'en': (187, 224, 135), 'jp': (187, 224, 135), 'tw': (187, 224, 135)}, button={'cn': (1077, 493, 1119, 533), 'en': (1077, 493, 1119, 533), 'jp': (1077, 493, 1119, 533), 'tw': (1077, 493, 1119, 533)}, file={'cn': './assets/cn/island/ISLAND_MANAGEMENT.png', 'en': './assets/cn/island/ISLAND_MANAGEMENT.png', 'jp': './assets/cn/island/ISLAND_MANAGEMENT.png', 'tw': './assets/cn/island/ISLAND_MANAGEMENT.png'})
|
ISLAND_MANAGEMENT = Button(area={'cn': (1077, 493, 1119, 533), 'en': (1077, 493, 1119, 533), 'jp': (1077, 493, 1119, 533), 'tw': (1077, 493, 1119, 533)}, color={'cn': (187, 224, 135), 'en': (187, 224, 135), 'jp': (187, 224, 135), 'tw': (187, 224, 135)}, button={'cn': (1077, 493, 1119, 533), 'en': (1077, 493, 1119, 533), 'jp': (1077, 493, 1119, 533), 'tw': (1077, 493, 1119, 533)}, file={'cn': './assets/cn/island/ISLAND_MANAGEMENT.png', 'en': './assets/cn/island/ISLAND_MANAGEMENT.png', 'jp': './assets/cn/island/ISLAND_MANAGEMENT.png', 'tw': './assets/cn/island/ISLAND_MANAGEMENT.png'})
|
||||||
ISLAND_MANAGEMENT_CHECK = Button(area={'cn': (123, 21, 304, 47), 'en': (123, 21, 304, 47), 'jp': (123, 21, 304, 47), 'tw': (123, 21, 304, 47)}, color={'cn': (77, 83, 96), 'en': (90, 96, 108), 'jp': (77, 83, 96), 'tw': (77, 83, 96)}, button={'cn': (123, 21, 304, 47), 'en': (123, 21, 304, 47), 'jp': (123, 21, 304, 47), 'tw': (123, 21, 304, 47)}, file={'cn': './assets/cn/island/ISLAND_MANAGEMENT_CHECK.png', 'en': './assets/en/island/ISLAND_MANAGEMENT_CHECK.png', 'jp': './assets/cn/island/ISLAND_MANAGEMENT_CHECK.png', 'tw': './assets/cn/island/ISLAND_MANAGEMENT_CHECK.png'})
|
ISLAND_MANAGEMENT_CHECK = Button(area={'cn': (123, 21, 304, 47), 'en': (123, 21, 304, 47), 'jp': (123, 21, 304, 47), 'tw': (123, 21, 304, 47)}, color={'cn': (77, 83, 96), 'en': (90, 96, 108), 'jp': (77, 83, 96), 'tw': (77, 83, 96)}, button={'cn': (123, 21, 304, 47), 'en': (123, 21, 304, 47), 'jp': (123, 21, 304, 47), 'tw': (123, 21, 304, 47)}, file={'cn': './assets/cn/island/ISLAND_MANAGEMENT_CHECK.png', 'en': './assets/en/island/ISLAND_MANAGEMENT_CHECK.png', 'jp': './assets/cn/island/ISLAND_MANAGEMENT_CHECK.png', 'tw': './assets/cn/island/ISLAND_MANAGEMENT_CHECK.png'})
|
||||||
ISLAND_MANAGEMENT_LOCKED = Button(area={'cn': (1092, 504, 1105, 520), 'en': (1092, 504, 1105, 520), 'jp': (1092, 504, 1105, 520), 'tw': (1092, 504, 1105, 520)}, color={'cn': (197, 206, 195), 'en': (197, 206, 195), 'jp': (197, 206, 195), 'tw': (197, 206, 195)}, button={'cn': (1092, 504, 1105, 520), 'en': (1092, 504, 1105, 520), 'jp': (1092, 504, 1105, 520), 'tw': (1092, 504, 1105, 520)}, file={'cn': './assets/cn/island/ISLAND_MANAGEMENT_LOCKED.png', 'en': './assets/cn/island/ISLAND_MANAGEMENT_LOCKED.png', 'jp': './assets/cn/island/ISLAND_MANAGEMENT_LOCKED.png', 'tw': './assets/cn/island/ISLAND_MANAGEMENT_LOCKED.png'})
|
ISLAND_MANAGEMENT_LOCKED = Button(area={'cn': (1092, 504, 1105, 520), 'en': (1092, 504, 1105, 520), 'jp': (1092, 504, 1105, 520), 'tw': (1092, 504, 1105, 520)}, color={'cn': (197, 206, 195), 'en': (197, 206, 195), 'jp': (197, 206, 195), 'tw': (197, 206, 195)}, button={'cn': (1092, 504, 1105, 520), 'en': (1092, 504, 1105, 520), 'jp': (1092, 504, 1105, 520), 'tw': (1092, 504, 1105, 520)}, file={'cn': './assets/cn/island/ISLAND_MANAGEMENT_LOCKED.png', 'en': './assets/cn/island/ISLAND_MANAGEMENT_LOCKED.png', 'jp': './assets/cn/island/ISLAND_MANAGEMENT_LOCKED.png', 'tw': './assets/cn/island/ISLAND_MANAGEMENT_LOCKED.png'})
|
||||||
|
|||||||
@ -63,7 +63,6 @@ class Island(IslandProjectRun, IslandTransportRun):
|
|||||||
project = any(project_config)
|
project = any(project_config)
|
||||||
names = self.island_config_to_names(project_config)
|
names = self.island_config_to_names(project_config)
|
||||||
if transport or project:
|
if transport or project:
|
||||||
self.ui_goto_island()
|
|
||||||
self.ui_ensure(page_island_phone)
|
self.ui_ensure(page_island_phone)
|
||||||
self.island_run(transport=transport, project=project, names=names)
|
self.island_run(transport=transport, project=project, names=names)
|
||||||
self.ui_goto(page_main, get_ship=False)
|
self.ui_goto(page_main, get_ship=False)
|
||||||
|
|||||||
@ -367,6 +367,7 @@ class IslandProjectRun(IslandUI):
|
|||||||
# UI additional
|
# UI additional
|
||||||
if self.island_in_management(interval=5):
|
if self.island_in_management(interval=5):
|
||||||
self.device.click(button)
|
self.device.click(button)
|
||||||
|
self.device.sleep(0.1)
|
||||||
click_timer.reset()
|
click_timer.reset()
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@ -387,16 +388,13 @@ class IslandProjectRun(IslandUI):
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
if self.appear_then_click(PROJECT_COMPLETE, offset=(20, 20), interval=1):
|
if self.appear_then_click(PROJECT_COMPLETE, offset=(20, 20), interval=1):
|
||||||
self.device.sleep(0.1)
|
|
||||||
success = True
|
success = True
|
||||||
# enter = False
|
|
||||||
self.interval_clear(GET_ITEMS_ISLAND)
|
self.interval_clear(GET_ITEMS_ISLAND)
|
||||||
self.interval_reset(ROLE_SELECT_ENTER)
|
self.interval_reset(ROLE_SELECT_ENTER)
|
||||||
click_timer.reset()
|
click_timer.reset()
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if self.handle_get_items():
|
if self.handle_get_items():
|
||||||
# enter = True
|
|
||||||
self.interval_clear(ROLE_SELECT_ENTER)
|
self.interval_clear(ROLE_SELECT_ENTER)
|
||||||
click_timer.reset()
|
click_timer.reset()
|
||||||
continue
|
continue
|
||||||
|
|||||||
@ -2,8 +2,8 @@ from module.base.timer import Timer
|
|||||||
from module.handler.assets import MAINTENANCE_ANNOUNCE, USE_DATA_KEY_NOTIFIED
|
from module.handler.assets import MAINTENANCE_ANNOUNCE, USE_DATA_KEY_NOTIFIED
|
||||||
from module.island.assets import *
|
from module.island.assets import *
|
||||||
from module.logger import logger
|
from module.logger import logger
|
||||||
from module.ui.assets import DORMMENU_GOTO_ISLAND, SHOP_BACK_ARROW
|
from module.ui.assets import SHOP_BACK_ARROW
|
||||||
from module.ui.page import page_dormmenu, page_island, page_island_phone
|
from module.ui.page import page_island_phone
|
||||||
from module.ui.ui import UI
|
from module.ui.ui import UI
|
||||||
|
|
||||||
|
|
||||||
@ -88,7 +88,7 @@ class IslandUI(UI):
|
|||||||
skip_first_screenshot=True
|
skip_first_screenshot=True
|
||||||
)
|
)
|
||||||
|
|
||||||
def ui_ensure_management_page(self, skip_first_screenshot=True):
|
def ui_ensure_management_page(self):
|
||||||
"""
|
"""
|
||||||
Pages:
|
Pages:
|
||||||
in: page_island_phone or product page
|
in: page_island_phone or product page
|
||||||
@ -97,12 +97,7 @@ class IslandUI(UI):
|
|||||||
logger.info('UI ensure management page')
|
logger.info('UI ensure management page')
|
||||||
self.interval_clear(ISLAND_MANAGEMENT_CHECK)
|
self.interval_clear(ISLAND_MANAGEMENT_CHECK)
|
||||||
confirm_timer = Timer(1, count=2).start()
|
confirm_timer = Timer(1, count=2).start()
|
||||||
while 1:
|
for _ in self.loop():
|
||||||
if skip_first_screenshot:
|
|
||||||
skip_first_screenshot = False
|
|
||||||
else:
|
|
||||||
self.device.screenshot()
|
|
||||||
|
|
||||||
if self.island_in_management():
|
if self.island_in_management():
|
||||||
if confirm_timer.reached():
|
if confirm_timer.reached():
|
||||||
break
|
break
|
||||||
@ -121,16 +116,10 @@ class IslandUI(UI):
|
|||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def handle_island_ui_additional(self, skip_first_screenshot=True):
|
def ui_additional(self, get_ship=True):
|
||||||
if not self.appear(MAINTENANCE_ANNOUNCE, offset=(100, 50)):
|
# notify in page_dormmenu
|
||||||
return False
|
if self.appear(MAINTENANCE_ANNOUNCE, offset=(100, 50)):
|
||||||
|
for _ in self.loop():
|
||||||
while 1:
|
|
||||||
if skip_first_screenshot:
|
|
||||||
skip_first_screenshot = False
|
|
||||||
else:
|
|
||||||
self.device.screenshot()
|
|
||||||
|
|
||||||
enabled = self.image_color_count(
|
enabled = self.image_color_count(
|
||||||
USE_DATA_KEY_NOTIFIED, color=(140, 207, 66), threshold=180, count=10)
|
USE_DATA_KEY_NOTIFIED, color=(140, 207, 66), threshold=180, count=10)
|
||||||
if enabled:
|
if enabled:
|
||||||
@ -144,15 +133,8 @@ class IslandUI(UI):
|
|||||||
self.appear_then_click(MAINTENANCE_ANNOUNCE, offset=(100, 50), interval=2)
|
self.appear_then_click(MAINTENANCE_ANNOUNCE, offset=(100, 50), interval=2)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def ui_goto_island(self):
|
# info in page_island
|
||||||
if self.ui_get_current_page() in [page_island, page_island_phone]:
|
if self.appear_then_click(ISLAND_INFO_EXIT, offset=(30, 30), interval=3):
|
||||||
logger.info(f'Already at {self.ui_current}')
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
self.ui_ensure(page_dormmenu)
|
return super().ui_additional(get_ship=False)
|
||||||
self.ui_click(click_button=DORMMENU_GOTO_ISLAND,
|
|
||||||
check_button=page_island.check_button,
|
|
||||||
additional=self.handle_island_ui_additional,
|
|
||||||
offset=(30, 30),
|
|
||||||
retry_wait=2,
|
|
||||||
skip_first_screenshot=True)
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user