mirror of
https://gitee.com/sui-feng-cb/AzurLaneAutoScript1
synced 2026-03-22 05:53:44 +08:00
Upd: Update World-spanning Arclight
- Fix: Varies map mode switches - Fix: Handle stories in map detection - Upd: GAME_TIPS
This commit is contained in:
65
campaign/event_20211125_cn/campaign_base.py
Normal file
65
campaign/event_20211125_cn/campaign_base.py
Normal file
@@ -0,0 +1,65 @@
|
||||
from module.base.mask import Mask
|
||||
from module.map_detection.utils_assets import ASSETS
|
||||
|
||||
# Patch ui_mask, get rid of map mechanism
|
||||
_ = ASSETS.ui_mask
|
||||
ASSETS.ui_mask = Mask(file='./assets/mask/MASK_MAP_UI_20211125.png').image
|
||||
|
||||
from module.campaign.campaign_base import CampaignBase as CampaignBase_
|
||||
|
||||
|
||||
class CampaignBase(CampaignBase_):
|
||||
def campaign_ensure_mode(self, mode='normal'):
|
||||
"""
|
||||
Args:
|
||||
mode (str): 'normal', 'hard', 'ex'
|
||||
|
||||
Returns:
|
||||
bool: If mode changed.
|
||||
"""
|
||||
# No need to switch
|
||||
pass
|
||||
|
||||
def _campaign_get_chapter_index(self, name):
|
||||
"""
|
||||
Args:
|
||||
name (str, int):
|
||||
|
||||
Returns:
|
||||
int
|
||||
"""
|
||||
if name == 't':
|
||||
return 1
|
||||
if name == 'ex_sp':
|
||||
return 2
|
||||
|
||||
return super(CampaignBase, CampaignBase)._campaign_get_chapter_index(name)
|
||||
|
||||
@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 'sss' in name:
|
||||
return ['ex_sp', '1']
|
||||
|
||||
return super(CampaignBase, CampaignBase)._campaign_separate_name(name)
|
||||
|
||||
def campaign_get_entrance(self, name):
|
||||
"""
|
||||
Args:
|
||||
name (str): Campaign name, such as '7-2', 'd3', 'sp3'.
|
||||
|
||||
Returns:
|
||||
Button:
|
||||
"""
|
||||
if name == 'sp':
|
||||
for stage_name, stage_obj in self.stage_entrance.items():
|
||||
if 'sss' in stage_name.lower():
|
||||
name = stage_name
|
||||
|
||||
return super().campaign_get_entrance(name)
|
||||
@@ -1,9 +1,9 @@
|
||||
from module.campaign.campaign_base import CampaignBase
|
||||
from .campaign_base import CampaignBase
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import SelectedGrids, RoadGrids
|
||||
from module.logger import logger
|
||||
|
||||
MAP = CampaignMap('SSSS.SP ')
|
||||
MAP = CampaignMap('SP')
|
||||
MAP.shape = 'H8'
|
||||
MAP.camera_data = ['D2', 'D6', 'E2', 'E6']
|
||||
MAP.camera_data_spawn_point = ['E6']
|
||||
@@ -50,7 +50,7 @@ A8, B8, C8, D8, E8, F8, G8, H8, \
|
||||
|
||||
class Config:
|
||||
# ===== Start of generated config =====
|
||||
MAP_SIREN_TEMPLATE = ['zhongxun_gulite', 'zhanlie_gulite', 'hangmu_gulite']
|
||||
MAP_SIREN_TEMPLATE = ['GridmanCL', 'GridmanCA']
|
||||
MOVABLE_ENEMY_TURN = (2,)
|
||||
MAP_HAS_SIREN = True
|
||||
MAP_HAS_MOVABLE_ENEMY = True
|
||||
@@ -63,6 +63,24 @@ class Config:
|
||||
STAR_REQUIRE_3 = 0
|
||||
# ===== End of generated config =====
|
||||
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (150, 255 - 24),
|
||||
'width': (0.9, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 17, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'wlen': 1000
|
||||
}
|
||||
HOMO_EDGE_COLOR_RANGE = (0, 17)
|
||||
HOMO_EDGE_HOUGHLINES_THRESHOLD = 180
|
||||
|
||||
MAP_SWIPE_MULTIPLY = 1.492
|
||||
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.442
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from module.campaign.campaign_base import CampaignBase
|
||||
from .campaign_base import CampaignBase
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import SelectedGrids, RoadGrids
|
||||
from module.logger import logger
|
||||
@@ -50,8 +50,22 @@ class Config:
|
||||
MAP_HAS_MYSTERY = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (150, 255 - 24),
|
||||
'width': (0.9, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 17, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'wlen': 1000
|
||||
}
|
||||
HOMO_EDGE_COLOR_RANGE = (0, 17)
|
||||
HOMO_EDGE_HOUGHLINES_THRESHOLD = 180
|
||||
|
||||
MAP_ENSURE_EDGE_INSIGHT_CORNER = 'bottom'
|
||||
MAP_SWIPE_MULTIPLY = 1.856
|
||||
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.794
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from module.campaign.campaign_base import CampaignBase
|
||||
from .campaign_base import CampaignBase
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import SelectedGrids, RoadGrids
|
||||
from module.logger import logger
|
||||
@@ -48,7 +48,7 @@ A8, B8, C8, D8, E8, F8, G8, H8, \
|
||||
|
||||
class Config(ConfigBase):
|
||||
# ===== Start of generated config =====
|
||||
MAP_SIREN_TEMPLATE = ['qingxun_gulite']
|
||||
MAP_SIREN_TEMPLATE = ['GridmanCL']
|
||||
MOVABLE_ENEMY_TURN = (2,)
|
||||
MAP_HAS_SIREN = True
|
||||
MAP_HAS_MOVABLE_ENEMY = True
|
||||
@@ -58,6 +58,9 @@ class Config(ConfigBase):
|
||||
MAP_HAS_MYSTERY = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
MAP_SWIPE_MULTIPLY = 1.464
|
||||
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.415
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from module.campaign.campaign_base import CampaignBase
|
||||
from .campaign_base import CampaignBase
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import SelectedGrids, RoadGrids
|
||||
from module.logger import logger
|
||||
@@ -24,9 +24,9 @@ MAP.weight_data = """
|
||||
50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50
|
||||
90 90 90 50 50 50 50 50
|
||||
90 90 90 50 50 50 50 50
|
||||
90 90 90 90 50 50 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3, 'siren': 2},
|
||||
@@ -49,7 +49,7 @@ A8, B8, C8, D8, E8, F8, G8, H8, \
|
||||
|
||||
class Config(ConfigBase):
|
||||
# ===== Start of generated config =====
|
||||
MAP_SIREN_TEMPLATE = ['qingxun_gulite', 'zhongxun_gulite']
|
||||
MAP_SIREN_TEMPLATE = ['GridmanCL', 'GridmanCA']
|
||||
MOVABLE_ENEMY_TURN = (2,)
|
||||
MAP_HAS_SIREN = True
|
||||
MAP_HAS_MOVABLE_ENEMY = True
|
||||
@@ -59,6 +59,9 @@ class Config(ConfigBase):
|
||||
MAP_HAS_MYSTERY = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
MAP_SWIPE_MULTIPLY = 1.626
|
||||
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.572
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
from module.campaign.campaign_base import CampaignBase
|
||||
from .campaign_base import CampaignBase
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import SelectedGrids, RoadGrids
|
||||
from module.logger import logger
|
||||
from .t1 import Config as ConfigBase
|
||||
from module.base.timer import Timer
|
||||
from module.exception import MapDetectionError
|
||||
|
||||
MAP = CampaignMap('T4')
|
||||
MAP.shape = 'K7'
|
||||
@@ -26,6 +28,8 @@ MAP.weight_data = """
|
||||
50 50 50 50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50 50 50 50
|
||||
"""
|
||||
MAP.fortress_data = [('C2', 'C6', 'I2', 'I6'), 'F3']
|
||||
MAP.map_covered = ['F2']
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 4, 'siren': 1},
|
||||
{'battle': 1, 'enemy': 1, 'siren': 1},
|
||||
@@ -46,7 +50,7 @@ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \
|
||||
|
||||
class Config(ConfigBase):
|
||||
# ===== Start of generated config =====
|
||||
MAP_SIREN_TEMPLATE = ['zhongxun_gulite', 'zhanlie_gulite', 'hangmu_gulite']
|
||||
MAP_SIREN_TEMPLATE = ['GridmanCL', 'GridmanCA']
|
||||
MOVABLE_ENEMY_TURN = (2,)
|
||||
MAP_HAS_SIREN = True
|
||||
MAP_HAS_MOVABLE_ENEMY = True
|
||||
@@ -56,6 +60,11 @@ class Config(ConfigBase):
|
||||
MAP_HAS_MYSTERY = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
MAP_ENSURE_EDGE_INSIGHT_CORNER = 'upper'
|
||||
MAP_HAS_FORTRESS = True
|
||||
MAP_SWIPE_MULTIPLY = 1.605
|
||||
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.552
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
@@ -70,4 +79,18 @@ class Campaign(CampaignBase):
|
||||
return self.battle_default()
|
||||
|
||||
def battle_5(self):
|
||||
if not self.map_is_clear_mode:
|
||||
if self.clear_siren():
|
||||
return True
|
||||
|
||||
return self.fleet_boss.clear_boss()
|
||||
|
||||
def catch_camera_repositioning(self, destination):
|
||||
if super().catch_camera_repositioning(destination):
|
||||
return True
|
||||
if destination.is_fortress:
|
||||
logger.info('Catch camera re-positioning after fortress cleared')
|
||||
# Poor implementation to wait camera move
|
||||
self.device.sleep(3)
|
||||
return True
|
||||
return False
|
||||
|
||||
Reference in New Issue
Block a user