1
0
mirror of https://gitee.com/sui-feng-cb/AzurLaneAutoScript1 synced 2026-04-24 01:47:01 +08:00
Files
AzurLaneAutoScript/campaign/event_20260417_cn/campaign_base.py

50 lines
1.6 KiB
Python

from module.base.button import Button
from module.campaign.assets import EVENT_20260417_PT_ICON
from module.campaign.campaign_base import CampaignBase as CampaignBase_
from module.logger import logger
from module.ui.page import page_campaign_menu, page_event
EVENT_ANIMATION = Button(area=(49, 229, 119, 400), color=(118, 215, 240), button=(49, 229, 119, 400),
name='EVENT_ANIMATION')
class CampaignBase(CampaignBase_):
def ui_goto_event(self):
if self.appear(EVENT_20260417_PT_ICON, offset=(20, 20)) and self.ui_page_appear(page_event):
logger.info('Already at EVENT_20260417')
return True
self.ui_ensure(page_campaign_menu)
if self.is_event_entrance_available():
self.ui_goto(page_event)
return True
@staticmethod
def _campaign_ocr_result_process(result):
result = CampaignBase_._campaign_ocr_result_process(result)
if result in ['ysp', 'usp', 'vsp']:
result = 'sp'
return result
def is_event_animation(self):
"""
Animation in events after cleared an enemy.
Returns:
bool: If animation appearing.
"""
appear = self.appear(EVENT_ANIMATION)
if appear:
logger.info('DOA animation, waiting')
return appear
def event_animation_end(self):
if not self.appear(EVENT_ANIMATION):
return False
# wait until EVENT_ANIMATION closed
for _ in self.loop():
if self.is_event_animation():
continue
break
# now in_map
return True