mirror of
https://github.com/LmeSzinc/AzurLaneAutoScript.git
synced 2025-01-07 07:47:07 +08:00
Fix: Slowly appeared WITHDRAW button (#4044)
This commit is contained in:
parent
d79859e6ed
commit
8dd6ec7811
@ -1,9 +1,9 @@
|
||||
from module.campaign.assets import SWITCH_20240725_COMBAT, SWITCH_20240725_STORY
|
||||
from module.campaign.campaign_base import CampaignBase as CampaignBase_
|
||||
from module.campaign.campaign_ui import ModeSwitch
|
||||
from module.logger import logger
|
||||
from module.ui.switch import Switch
|
||||
|
||||
MODE_SWITCH_20240725 = Switch('Mode_switch_20240725', offset=(30, 30))
|
||||
MODE_SWITCH_20240725 = ModeSwitch('Mode_switch_20240725', offset=(30, 30))
|
||||
MODE_SWITCH_20240725.add_status('combat', SWITCH_20240725_COMBAT)
|
||||
MODE_SWITCH_20240725.add_status('story', SWITCH_20240725_STORY)
|
||||
|
||||
|
@ -6,6 +6,7 @@ from module.base.timer import Timer
|
||||
from module.base.utils import *
|
||||
from module.exception import CampaignNameError
|
||||
from module.logger import logger
|
||||
from module.map.assets import WITHDRAW
|
||||
from module.ocr.ocr import Ocr
|
||||
from module.template.assets import *
|
||||
|
||||
@ -335,7 +336,9 @@ class CampaignOcr(ModuleBase):
|
||||
while 1:
|
||||
if timeout.reached():
|
||||
raise CampaignNameError
|
||||
|
||||
if self.appear(WITHDRAW, offset=(30, 30)):
|
||||
logger.warning(f'get_chapter_index: WITHDRAW appears')
|
||||
raise CampaignNameError
|
||||
try:
|
||||
self._get_stage_name(image)
|
||||
break
|
||||
|
@ -2,20 +2,30 @@ from module.base.timer import Timer
|
||||
from module.campaign.assets import *
|
||||
from module.campaign.campaign_event import CampaignEvent
|
||||
from module.campaign.campaign_ocr import CampaignOcr
|
||||
from module.exception import CampaignNameError, ScriptEnd
|
||||
from module.exception import CampaignEnd, CampaignNameError, ScriptEnd
|
||||
from module.logger import logger
|
||||
from module.map.assets import WITHDRAW
|
||||
from module.map.map_operation import MapOperation
|
||||
from module.ui.assets import CAMPAIGN_CHECK
|
||||
from module.ui.switch import Switch
|
||||
|
||||
MODE_SWITCH_1 = Switch('Mode_switch_1', offset=(30, 10))
|
||||
|
||||
class ModeSwitch(Switch):
|
||||
def handle_additional(self, main):
|
||||
if main.appear(WITHDRAW, offset=(30, 30)):
|
||||
logger.warning(f'ModeSwitch: WITHDRAW appears')
|
||||
raise CampaignNameError
|
||||
|
||||
|
||||
MODE_SWITCH_1 = ModeSwitch('Mode_switch_1', offset=(30, 10))
|
||||
MODE_SWITCH_1.add_status('normal', SWITCH_1_NORMAL)
|
||||
MODE_SWITCH_1.add_status('hard', SWITCH_1_HARD)
|
||||
MODE_SWITCH_2 = Switch('Mode_switch_2', offset=(30, 10))
|
||||
MODE_SWITCH_2 = ModeSwitch('Mode_switch_2', offset=(30, 10))
|
||||
MODE_SWITCH_2.add_status('hard', SWITCH_2_HARD)
|
||||
MODE_SWITCH_2.add_status('ex', SWITCH_2_EX)
|
||||
|
||||
|
||||
class CampaignUI(CampaignEvent, CampaignOcr):
|
||||
class CampaignUI(MapOperation, CampaignEvent, CampaignOcr):
|
||||
ENTRANCE = Button(area=(), color=(), button=(), name='default_button')
|
||||
|
||||
def campaign_ensure_chapter(self, index, skip_first_screenshot=True):
|
||||
@ -210,6 +220,14 @@ class CampaignUI(CampaignEvent, CampaignOcr):
|
||||
return True
|
||||
except CampaignNameError:
|
||||
pass
|
||||
if self.appear(WITHDRAW, offset=(30, 30)):
|
||||
# logger.info("WITHDRAW button found, wait until map loaded to prevent bugs in game client")
|
||||
self.ensure_no_info_bar(timeout=2)
|
||||
try:
|
||||
self.withdraw()
|
||||
except CampaignEnd:
|
||||
pass
|
||||
continue
|
||||
|
||||
self.device.screenshot()
|
||||
|
||||
|
@ -207,8 +207,7 @@ class Benchmark(DaemonBase, CampaignUI):
|
||||
def run(self):
|
||||
self.config.override(Emulator_ScreenshotMethod='ADB')
|
||||
self.device.uninstall_minicap()
|
||||
self.ui_goto_campaign()
|
||||
self.campaign_set_chapter('7-2')
|
||||
self.ensure_campaign_ui('7-2', mode='normal')
|
||||
|
||||
logger.attr('DeviceType', self.config.Benchmark_DeviceType)
|
||||
logger.attr('TestScene', self.config.Benchmark_TestScene)
|
||||
|
@ -514,7 +514,8 @@ class UI(InfoHandler):
|
||||
# - Game client freezes at page_campaign W12, clicking anywhere on the screen doesn't get responses
|
||||
# - Restart game client again fix the issue
|
||||
logger.info("WITHDRAW button found, wait until map loaded to prevent bugs in game client")
|
||||
self.device.sleep(3)
|
||||
self.device.sleep(2)
|
||||
self.device.screenshot()
|
||||
if self.appear_then_click(WITHDRAW, offset=(30, 30)):
|
||||
self.interval_reset(WITHDRAW)
|
||||
return True
|
||||
|
Loading…
Reference in New Issue
Block a user