diff --git a/assets/template/TEMPLATE_SIREN_Vauquelin.png b/assets/template/TEMPLATE_SIREN_Vauquelin.png new file mode 100644 index 000000000..454bc978b Binary files /dev/null and b/assets/template/TEMPLATE_SIREN_Vauquelin.png differ diff --git a/campaign/event_20200521_cn/b2.py b/campaign/event_20200521_cn/b2.py new file mode 100644 index 000000000..7dbf318a4 --- /dev/null +++ b/campaign/event_20200521_cn/b2.py @@ -0,0 +1,43 @@ +from module.campaign.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 campaign.event_20200521_cn.b1 import Config as ConfigBase + + +MAP = CampaignMap() +MAP.map_data = """ + -- -- -- -- ++ -- -- -- -- ++ ++ + -- -- -- -- -- -- ++ ++ -- -- -- + ++ -- -- -- -- -- ++ ++ -- -- -- + -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- + ++ ++ -- -- -- -- ++ ++ -- -- -- + ++ -- -- -- -- -- -- -- -- -- -- +""" +MAP.wall_data = """ + · · | · · · · · · · · · , + + , + · · · · · · · · · · | · , + + + + + + , + · · | · · | · | · · · · | · · , + +---+---+ | | + , + · · · | · · | · · · · | · | · , + +---+ +---+ +---+ +-- , + · · · · · · · · · · · , + , + · · · · · · · · · · · , + , + · · · · · · · · · · · , +""" + + +class Config(ConfigBase): + FLEET_BOSS = 2 + + MAP_HAS_WALL = True + MAP_SIREN_TEMPLATE = ['Algerie', 'Vauquelin'] + + +class Campaign(CampaignBase): + MAP = MAP diff --git a/campaign/event_20200521_cn/b3.py b/campaign/event_20200521_cn/b3.py new file mode 100644 index 000000000..8e609eb6b --- /dev/null +++ b/campaign/event_20200521_cn/b3.py @@ -0,0 +1,53 @@ +from module.campaign.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 campaign.event_20200521_cn.b1 import Config as ConfigBase + + +MAP = CampaignMap() +MAP.map_data = """ + -- -- -- -- -- -- -- -- -- -- -- -- -- ++ + -- -- -- -- -- -- -- -- -- -- -- -- -- -- + ++ -- -- -- -- -- -- -- -- -- -- -- -- -- + ++ -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- ++ ++ + -- ++ -- -- ++ ++ -- -- ++ ++ -- -- -- -- + -- ++ -- -- ++ ++ -- -- ++ ++ -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- ++ ++ + ++ -- -- -- -- -- -- -- -- -- -- -- ++ ++ + -- -- -- -- -- -- -- -- -- -- -- -- -- -- +""" +MAP.camera_data = ['G8', 'G6', 'F3', 'I3'] +MAP.wall_data = """ + · · · · · | · · · · | · · · · · , + +-----------+ +-----------+ , + · · | · · · | · · · · | · · · | · · , + | | | | , + · · | · · · | · · · · | · · · | · · , + +---+ +---+ +----+ +---+ , + · · · | · · · · · · · · | · · · , + | | , + · · · | · · · · · · · · | · · · , + | | , + · · · | · · · · · · · · | · · · , + | | , + · · · | · · · · · · · · | · · · , + | | , + · · · | · · · · · · · · | · · · , + | | , + · · · | · · · · · · · · | · · · , + +-----------+ +-----------+ , + · · · · · · | · · | · · · · · · , +""" + + +class Config(ConfigBase): + FLEET_BOSS = 2 + + MAP_HAS_WALL = True + MAP_SIREN_TEMPLATE = ['LaGalissonniere', 'Vauquelin'] + + +class Campaign(CampaignBase): + MAP = MAP diff --git a/campaign/event_20200521_cn/c1.py b/campaign/event_20200521_cn/c1.py index 7bd6acbe1..705f72a33 100644 --- a/campaign/event_20200521_cn/c1.py +++ b/campaign/event_20200521_cn/c1.py @@ -31,13 +31,13 @@ class Config: TRUST_EDGE_LINES = False COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { - 'height': (100, 235), + 'height': (100, 255 - 16), 'width': 1, 'prominence': 10, 'distance': 35, } EDGE_LINES_FIND_PEAKS_PARAMETERS = { - 'height': (255 - 80, 255), + 'height': (255 - 16, 255), 'prominence': 2, 'distance': 50, 'wlen': 1000 diff --git a/campaign/event_20200521_cn/d1.py b/campaign/event_20200521_cn/d1.py index 2b124f393..6a60f69be 100644 --- a/campaign/event_20200521_cn/d1.py +++ b/campaign/event_20200521_cn/d1.py @@ -1,8 +1,5 @@ from module.campaign.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() MAP.map_data = ''' @@ -55,13 +52,13 @@ class Config: TRUST_EDGE_LINES = False COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { - 'height': (100, 235), + 'height': (100, 255 - 16), 'width': 1, 'prominence': 10, 'distance': 35, } EDGE_LINES_FIND_PEAKS_PARAMETERS = { - 'height': (255 - 80, 255), + 'height': (255 - 16, 255), 'prominence': 2, 'distance': 50, 'wlen': 1000 @@ -74,7 +71,9 @@ class Campaign(CampaignBase): def battle_0(self): if self.clear_siren(): return True - if self.clear_enemy(scale=(2, 1)): + if self.clear_enemy(scale=(1,)): + return True + if self.clear_enemy(scale=(2,), genre=['light', 'main', 'carrier']): return True if self.clear_enemy(genre=['light', 'main']): return True diff --git a/campaign/event_20200521_cn/d2.py b/campaign/event_20200521_cn/d2.py index 1a8d2025c..85547dd7b 100644 --- a/campaign/event_20200521_cn/d2.py +++ b/campaign/event_20200521_cn/d2.py @@ -15,6 +15,7 @@ MAP.map_data = """ ++ ++ -- -- -- -- ++ ++ -- -- -- ++ -- -- -- -- -- -- -- -- -- -- """ +MAP.camera_data = ['D3', 'D5', 'F3', 'F5', 'H3', 'H5'] MAP.wall_data = """ · · | · · · · · · · · · , + , @@ -34,7 +35,7 @@ MAP.wall_data = """ class Config(ConfigBase): MAP_HAS_WALL = True - MAP_SIREN_TEMPLATE = ['Algerie', 'LaGalissonniere'] + MAP_SIREN_TEMPLATE = ['Algerie', 'Vauquelin'] class Campaign(CampaignBase): diff --git a/campaign/event_20200521_cn/d3.py b/campaign/event_20200521_cn/d3.py new file mode 100644 index 000000000..1ca07d143 --- /dev/null +++ b/campaign/event_20200521_cn/d3.py @@ -0,0 +1,51 @@ +from module.campaign.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 campaign.event_20200521_cn.d1 import Config as ConfigBase + + +MAP = CampaignMap() +MAP.map_data = """ + -- -- -- -- -- -- -- -- -- -- -- -- -- ++ + -- -- -- -- -- -- -- -- -- -- -- -- -- -- + ++ -- -- -- -- -- -- -- -- -- -- -- -- -- + ++ -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- ++ ++ + -- ++ -- -- ++ ++ -- -- ++ ++ -- -- -- -- + -- ++ -- -- ++ ++ -- -- ++ ++ -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- ++ ++ + ++ -- -- -- -- -- -- -- -- -- -- -- ++ ++ + -- -- -- -- -- -- -- -- -- -- -- -- -- -- +""" +MAP.camera_data = ['G8', 'G6', 'F3', 'I3'] +MAP.wall_data = """ + · · · · · | · · · · | · · · · · , + +-----------+ +-----------+ , + · · | · · · | · · · · | · · · | · · , + | | | | , + · · | · · · | · · · · | · · · | · · , + +---+ +---+ +----+ +---+ , + · · · | · · · · · · · · | · · · , + | | , + · · · | · · · · · · · · | · · · , + | | , + · · · | · · · · · · · · | · · · , + | | , + · · · | · · · · · · · · | · · · , + | | , + · · · | · · · · · · · · | · · · , + | | , + · · · | · · · · · · · · | · · · , + +-----------+ +-----------+ , + · · · · · · | · · | · · · · · · , +""" + + +class Config(ConfigBase): + MAP_HAS_WALL = True + MAP_SIREN_TEMPLATE = ['LaGalissonniere', 'Vauquelin'] + + +class Campaign(CampaignBase): + MAP = MAP diff --git a/module/base/utils.py b/module/base/utils.py index da6fec396..088a7ea80 100644 --- a/module/base/utils.py +++ b/module/base/utils.py @@ -174,7 +174,7 @@ def node2location(node): Returns: tuple: Example: (6, 4) """ - return ord(node[0]) % 32 - 1, int(node[1]) - 1 + return ord(node[0]) % 32 - 1, int(node[1:]) - 1 def location2node(location): diff --git a/module/map/fleet.py b/module/map/fleet.py index 6bcb5b99f..8f9d050c2 100644 --- a/module/map/fleet.py +++ b/module/map/fleet.py @@ -181,6 +181,7 @@ class Fleet(Camera, MapOperation, AmbushHandler): break if walk_timeout.reached(): logger.warning('Walk timeout. Retrying.') + self.ensure_edge_insight() break # End @@ -210,6 +211,8 @@ class Fleet(Camera, MapOperation, AmbushHandler): try: self._goto(node, expected=expected if node == nodes[-1] else '') except MapWalkError: + logger.warning('Map walk error.') + self.ensure_edge_insight() nodes_ = self.map.find_path(node, step=1) for node_ in nodes_: self._goto(node_, expected=expected if node == nodes[-1] else '') @@ -461,7 +464,6 @@ class Fleet(Camera, MapOperation, AmbushHandler): appear = True if self.config.POOR_MAP_DATA: - appear = True self.device.screenshot() grids = Grids(self.device.image, config=self.config) grids.predict() @@ -469,7 +471,7 @@ class Fleet(Camera, MapOperation, AmbushHandler): for grid in grids: if grid.is_boss: logger.info('Catch camera re-positioning after boss appear') - + appear = True for g in self.map: g.wipe_out() break diff --git a/module/template/assets.py b/module/template/assets.py index 4947c58f9..3129610cb 100644 --- a/module/template/assets.py +++ b/module/template/assets.py @@ -25,5 +25,6 @@ TEMPLATE_SIREN_2 = Template(file='./assets/template/TEMPLATE_SIREN_2.png') TEMPLATE_SIREN_3 = Template(file='./assets/template/TEMPLATE_SIREN_3.png') TEMPLATE_SIREN_Algerie = Template(file='./assets/template/TEMPLATE_SIREN_Algerie.png') TEMPLATE_SIREN_LaGalissonniere = Template(file='./assets/template/TEMPLATE_SIREN_LaGalissonniere.png') +TEMPLATE_SIREN_Vauquelin = Template(file='./assets/template/TEMPLATE_SIREN_Vauquelin.png') TEMPLATE_STAGE_CLEAR = Template(file='./assets/template/TEMPLATE_STAGE_CLEAR.png') TEMPLATE_STAGE_PERCENT = Template(file='./assets/template/TEMPLATE_STAGE_PERCENT.png')