mirror of
https://github.com/LmeSzinc/AzurLaneAutoScript.git
synced 2025-04-04 07:51:42 +08:00
76 lines
2.2 KiB
Python
76 lines
2.2 KiB
Python
from module.base.button import Button
|
|
from module.campaign.campaign_base import CampaignBase as CampaignBase_
|
|
from module.exception import CampaignNameError
|
|
from module.logger import logger
|
|
|
|
EVENT_ANIMATION = Button(area=(49, 229, 119, 400), color=(118, 215, 240), button=(49, 229, 119, 400),
|
|
name='EVENT_ANIMATION')
|
|
|
|
|
|
class CampaignBase(CampaignBase_):
|
|
"""
|
|
In event Vacation Lane (event_20201126_cn), DOA collaboration, maps are:
|
|
Chapter 1: SP1, SP2, SP3, SP4.
|
|
Chapter 2: VSP.
|
|
Chapter 3: EX.
|
|
Mode switch is meaningless.
|
|
"""
|
|
|
|
@staticmethod
|
|
def _campaign_separate_name(name):
|
|
"""
|
|
Args:
|
|
name (str): Stage name in lowercase, such as 7-2, d3, sp3.
|
|
|
|
Returns:
|
|
tuple[str]: Campaign_name and stage index in lowercase, Such as ['7', '2'], ['d', '3'], ['sp', '3'].
|
|
"""
|
|
if name == 'vsp' or name == 'sp': # Difference
|
|
return 'ex_sp', '1'
|
|
return CampaignBase_._campaign_separate_name(name)
|
|
|
|
@staticmethod
|
|
def _campaign_get_chapter_index(name):
|
|
"""
|
|
Args:
|
|
name (str, int):
|
|
|
|
Returns:
|
|
int
|
|
"""
|
|
if isinstance(name, int):
|
|
return name
|
|
else:
|
|
if name.isdigit():
|
|
return int(name)
|
|
elif name in ['a', 'c', 'sp']:
|
|
return 1
|
|
elif name in ['b', 'd', 'ex_sp']: # Difference
|
|
return 2
|
|
elif name in ['ex_ex']: # Difference
|
|
return 3
|
|
else:
|
|
raise CampaignNameError
|
|
|
|
def campaign_set_chapter_event(self, chapter, mode='normal'):
|
|
self.ui_goto_event()
|
|
self.campaign_ensure_chapter(chapter)
|
|
return True
|
|
|
|
def campaign_get_entrance(self, name):
|
|
if name == 'sp':
|
|
name = 'vsp'
|
|
return super().campaign_get_entrance(name)
|
|
|
|
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
|