mirror of
https://gitee.com/sui-feng-cb/AzurLaneAutoScript1
synced 2026-04-16 03:29:53 +08:00
change CRLF to LF
This commit is contained in:
@@ -1,88 +1,88 @@
|
||||
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('10-2')
|
||||
MAP.shape = 'H6'
|
||||
MAP.camera_data = ['D2', 'E3', 'E4']
|
||||
MAP.camera_data_spawn_point = ['E4']
|
||||
MAP.map_data = """
|
||||
Me -- ME ME -- ++ ME MB
|
||||
-- ++ ++ -- ME ++ ME ME
|
||||
-- SP ++ ++ __ ME Me ++
|
||||
-- SP ++ ++ -- ME Me ++
|
||||
-- ++ ++ -- ME ++ ME ME
|
||||
-- Me ME ME -- ++ ME MB
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 4},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, \
|
||||
= MAP.flatten()
|
||||
|
||||
road_main = RoadGrids([B6, C6, D6, E5, F4, G2, [G1, H2], G3, G4, G5, [H5, G6]])
|
||||
|
||||
|
||||
class Config:
|
||||
DETECTION_BACKEND = 'perspective'
|
||||
HOMO_STORAGE = ((7, 6), [(471.806, 82.471), (1249.283, 82.471), (420.72, 615.64), (1435.387, 615.64)])
|
||||
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 30
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 30
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.3
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (150, 255 - 24),
|
||||
'width': (0.9, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 24, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'width': (0, 10),
|
||||
'wlen': 1000,
|
||||
}
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
self.fleet_2_push_forward()
|
||||
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
boss = self.map.select(is_boss=True)
|
||||
if boss:
|
||||
if not self.check_accessibility(boss[0], fleet='boss'):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.fleet_2.clear_boss()
|
||||
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('10-2')
|
||||
MAP.shape = 'H6'
|
||||
MAP.camera_data = ['D2', 'E3', 'E4']
|
||||
MAP.camera_data_spawn_point = ['E4']
|
||||
MAP.map_data = """
|
||||
Me -- ME ME -- ++ ME MB
|
||||
-- ++ ++ -- ME ++ ME ME
|
||||
-- SP ++ ++ __ ME Me ++
|
||||
-- SP ++ ++ -- ME Me ++
|
||||
-- ++ ++ -- ME ++ ME ME
|
||||
-- Me ME ME -- ++ ME MB
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 4},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, \
|
||||
= MAP.flatten()
|
||||
|
||||
road_main = RoadGrids([B6, C6, D6, E5, F4, G2, [G1, H2], G3, G4, G5, [H5, G6]])
|
||||
|
||||
|
||||
class Config:
|
||||
DETECTION_BACKEND = 'perspective'
|
||||
HOMO_STORAGE = ((7, 6), [(471.806, 82.471), (1249.283, 82.471), (420.72, 615.64), (1435.387, 615.64)])
|
||||
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 30
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 30
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.3
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (150, 255 - 24),
|
||||
'width': (0.9, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 24, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'width': (0, 10),
|
||||
'wlen': 1000,
|
||||
}
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
self.fleet_2_push_forward()
|
||||
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
boss = self.map.select(is_boss=True)
|
||||
if boss:
|
||||
if not self.check_accessibility(boss[0], fleet='boss'):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.fleet_2.clear_boss()
|
||||
|
||||
@@ -1,72 +1,72 @@
|
||||
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('11-1')
|
||||
MAP.shape = 'H6'
|
||||
MAP.camera_data = ['D3', 'E4']
|
||||
MAP.camera_data_spawn_point = ['D4']
|
||||
MAP.map_data = """
|
||||
-- -- ME -- ME -- -- MB
|
||||
MB ME __ ME -- ++ ++ --
|
||||
++ Me -- ++ ME MB ++ ME
|
||||
-- -- ++ ++ __ ME ME --
|
||||
SP -- -- -- Me ME -- ++
|
||||
++ SP -- -- ++ -- MB ++
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90
|
||||
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, \
|
||||
= MAP.flatten()
|
||||
|
||||
road_main = RoadGrids([B2, B3, E5, F4, G4, H3])
|
||||
|
||||
|
||||
class Config:
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 30
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 30
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.2
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
boss = self.map.select(is_boss=True)
|
||||
if boss:
|
||||
if not self.check_accessibility(boss[0], fleet='boss'):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.fleet_2.clear_boss()
|
||||
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('11-1')
|
||||
MAP.shape = 'H6'
|
||||
MAP.camera_data = ['D3', 'E4']
|
||||
MAP.camera_data_spawn_point = ['D4']
|
||||
MAP.map_data = """
|
||||
-- -- ME -- ME -- -- MB
|
||||
MB ME __ ME -- ++ ++ --
|
||||
++ Me -- ++ ME MB ++ ME
|
||||
-- -- ++ ++ __ ME ME --
|
||||
SP -- -- -- Me ME -- ++
|
||||
++ SP -- -- ++ -- MB ++
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90
|
||||
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, \
|
||||
= MAP.flatten()
|
||||
|
||||
road_main = RoadGrids([B2, B3, E5, F4, G4, H3])
|
||||
|
||||
|
||||
class Config:
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 30
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 30
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.2
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
boss = self.map.select(is_boss=True)
|
||||
if boss:
|
||||
if not self.check_accessibility(boss[0], fleet='boss'):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.fleet_2.clear_boss()
|
||||
|
||||
@@ -1,90 +1,90 @@
|
||||
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('11-2')
|
||||
MAP.shape = 'K6'
|
||||
MAP.camera_data = ['F4', 'G3', 'H4']
|
||||
MAP.camera_data_spawn_point = ['D4']
|
||||
MAP.map_data = """
|
||||
++ ++ ++ -- -- ++ -- ME -- Me --
|
||||
-- -- -- Me -- __ Me ++ ++ ME --
|
||||
SP -- ++ -- -- ME ME MM ++ -- ME
|
||||
SP -- ++ -- ME -- ++ ME -- MB MB
|
||||
-- ++ ++ ++ __ ME ME -- ++ ++ ++
|
||||
-- -- ME -- -- ++ -- ME -- -- MB
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
90 90 90 90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 10 05 90 90
|
||||
90 90 90 90 90 25 20 15 90 90 90
|
||||
90 90 90 40 35 30 90 90 90 90 90
|
||||
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
|
||||
= MAP.flatten()
|
||||
|
||||
road_main = RoadGrids([C6, F5, G5, H4, H6])
|
||||
|
||||
|
||||
class Config:
|
||||
DETECTION_BACKEND = 'homography'
|
||||
HOMO_STORAGE = ((6, 6), [(579.064, 82.271), (1248.248, 82.271), (562.795, 616.581), (1438.283, 616.581)])
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 30
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 30
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.2
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (150, 255 - 24),
|
||||
'width': (0.9, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 24, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'wlen': 1000,
|
||||
}
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
self.fleet_2_push_forward()
|
||||
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
boss = self.map.select(is_boss=True)
|
||||
if boss:
|
||||
if not self.check_accessibility(boss[0], fleet='boss'):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.fleet_2.clear_boss()
|
||||
|
||||
def handle_boss_appear_refocus(self, preset=(-3, -2)):
|
||||
return super().handle_boss_appear_refocus(preset)
|
||||
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('11-2')
|
||||
MAP.shape = 'K6'
|
||||
MAP.camera_data = ['F4', 'G3', 'H4']
|
||||
MAP.camera_data_spawn_point = ['D4']
|
||||
MAP.map_data = """
|
||||
++ ++ ++ -- -- ++ -- ME -- Me --
|
||||
-- -- -- Me -- __ Me ++ ++ ME --
|
||||
SP -- ++ -- -- ME ME MM ++ -- ME
|
||||
SP -- ++ -- ME -- ++ ME -- MB MB
|
||||
-- ++ ++ ++ __ ME ME -- ++ ++ ++
|
||||
-- -- ME -- -- ++ -- ME -- -- MB
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
90 90 90 90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 10 05 90 90
|
||||
90 90 90 90 90 25 20 15 90 90 90
|
||||
90 90 90 40 35 30 90 90 90 90 90
|
||||
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
|
||||
= MAP.flatten()
|
||||
|
||||
road_main = RoadGrids([C6, F5, G5, H4, H6])
|
||||
|
||||
|
||||
class Config:
|
||||
DETECTION_BACKEND = 'homography'
|
||||
HOMO_STORAGE = ((6, 6), [(579.064, 82.271), (1248.248, 82.271), (562.795, 616.581), (1438.283, 616.581)])
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 30
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 30
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.2
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (150, 255 - 24),
|
||||
'width': (0.9, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 24, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'wlen': 1000,
|
||||
}
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
self.fleet_2_push_forward()
|
||||
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
boss = self.map.select(is_boss=True)
|
||||
if boss:
|
||||
if not self.check_accessibility(boss[0], fleet='boss'):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.fleet_2.clear_boss()
|
||||
|
||||
def handle_boss_appear_refocus(self, preset=(-3, -2)):
|
||||
return super().handle_boss_appear_refocus(preset)
|
||||
|
||||
@@ -1,84 +1,84 @@
|
||||
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('11-3')
|
||||
MAP.shape = 'I7'
|
||||
MAP.camera_data = ['D3', 'F5']
|
||||
MAP.camera_data_spawn_point = ['D5']
|
||||
MAP.map_data = """
|
||||
++ -- -- ME -- Me ++ ++ ++
|
||||
__ ME ME -- Me -- ME -- __
|
||||
-- -- ME -- -- ME -- ME --
|
||||
MB ++ ++ -- ++ ++ ++ -- ME
|
||||
++ ++ ++ MB -- ME __ ME --
|
||||
SP -- -- Me -- ME ++ ME --
|
||||
SP -- -- -- ++ -- ME -- MB
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
90 90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90 90
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, I1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, \
|
||||
A7, B7, C7, D7, E7, F7, G7, H7, I7, \
|
||||
= MAP.flatten()
|
||||
|
||||
road_main = RoadGrids([C2, D6, F6, G7])
|
||||
|
||||
|
||||
class Config:
|
||||
DETECTION_BACKEND = 'homography'
|
||||
HOMO_STORAGE = ((5, 4), [(133.207, 81.356), (696.903, 81.356), (44.566, 406.051), (705.278, 406.051)])
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 30
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 30
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.2
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (150, 255 - 24),
|
||||
'width': (0.9, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 24, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'width': (0, 10),
|
||||
'wlen': 1000,
|
||||
}
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
return self.fleet_boss.clear_boss()
|
||||
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('11-3')
|
||||
MAP.shape = 'I7'
|
||||
MAP.camera_data = ['D3', 'F5']
|
||||
MAP.camera_data_spawn_point = ['D5']
|
||||
MAP.map_data = """
|
||||
++ -- -- ME -- Me ++ ++ ++
|
||||
__ ME ME -- Me -- ME -- __
|
||||
-- -- ME -- -- ME -- ME --
|
||||
MB ++ ++ -- ++ ++ ++ -- ME
|
||||
++ ++ ++ MB -- ME __ ME --
|
||||
SP -- -- Me -- ME ++ ME --
|
||||
SP -- -- -- ++ -- ME -- MB
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
90 90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90 90
|
||||
90 90 90 90 90 90 90 90 90
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, I1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, \
|
||||
A7, B7, C7, D7, E7, F7, G7, H7, I7, \
|
||||
= MAP.flatten()
|
||||
|
||||
road_main = RoadGrids([C2, D6, F6, G7])
|
||||
|
||||
|
||||
class Config:
|
||||
DETECTION_BACKEND = 'homography'
|
||||
HOMO_STORAGE = ((5, 4), [(133.207, 81.356), (696.903, 81.356), (44.566, 406.051), (705.278, 406.051)])
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 30
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 30
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.2
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (150, 255 - 24),
|
||||
'width': (0.9, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 24, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'width': (0, 10),
|
||||
'wlen': 1000,
|
||||
}
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
return self.fleet_boss.clear_boss()
|
||||
|
||||
@@ -1,92 +1,92 @@
|
||||
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('11-4')
|
||||
MAP.shape = 'J8'
|
||||
MAP.camera_data = ['D2', 'D6', 'G2', 'G6']
|
||||
MAP.camera_data_spawn_point = ['D2', 'G2']
|
||||
MAP.map_data = """
|
||||
MB MB ++ -- -- -- ++ MB -- --
|
||||
-- -- ++ ME -- Me ++ -- -- ME
|
||||
ME __ ME -- ++ -- __ -- ME --
|
||||
-- ++ -- -- SP SP -- Me -- --
|
||||
MB -- ME -- -- -- -- ++ ++ ++
|
||||
++ ++ ++ -- Me -- Me __ -- ME
|
||||
-- -- ME __ -- ++ -- ++ ME --
|
||||
MB -- -- ME -- ++ -- ME -- MB
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
10 10 10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10 10 10
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
|
||||
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \
|
||||
A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, \
|
||||
= MAP.flatten()
|
||||
|
||||
step_on = SelectedGrids([C3])
|
||||
road_boss = RoadGrids([C3, H4, [C5, C7], G6, G8])
|
||||
|
||||
|
||||
class Config:
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 35
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 35
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.3
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (150, 255 - 24),
|
||||
'width': (0.9, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 24, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'width': (0, 10),
|
||||
'wlen': 1000,
|
||||
}
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.fleet_2_step_on(step_on, roadblocks=[road_boss]):
|
||||
return True
|
||||
|
||||
if self.clear_roadblocks([road_boss]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_boss]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
boss = self.map.select(is_boss=True)
|
||||
if boss:
|
||||
if not self.check_accessibility(boss[0], fleet='boss'):
|
||||
return self.clear_roadblocks([road_boss])
|
||||
|
||||
return self.fleet_boss.clear_boss()
|
||||
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('11-4')
|
||||
MAP.shape = 'J8'
|
||||
MAP.camera_data = ['D2', 'D6', 'G2', 'G6']
|
||||
MAP.camera_data_spawn_point = ['D2', 'G2']
|
||||
MAP.map_data = """
|
||||
MB MB ++ -- -- -- ++ MB -- --
|
||||
-- -- ++ ME -- Me ++ -- -- ME
|
||||
ME __ ME -- ++ -- __ -- ME --
|
||||
-- ++ -- -- SP SP -- Me -- --
|
||||
MB -- ME -- -- -- -- ++ ++ ++
|
||||
++ ++ ++ -- Me -- Me __ -- ME
|
||||
-- -- ME __ -- ++ -- ++ ME --
|
||||
MB -- -- ME -- ++ -- ME -- MB
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
10 10 10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10 10 10
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
|
||||
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \
|
||||
A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, \
|
||||
= MAP.flatten()
|
||||
|
||||
step_on = SelectedGrids([C3])
|
||||
road_boss = RoadGrids([C3, H4, [C5, C7], G6, G8])
|
||||
|
||||
|
||||
class Config:
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 35
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 35
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.3
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (150, 255 - 24),
|
||||
'width': (0.9, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 24, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'width': (0, 10),
|
||||
'wlen': 1000,
|
||||
}
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.fleet_2_step_on(step_on, roadblocks=[road_boss]):
|
||||
return True
|
||||
|
||||
if self.clear_roadblocks([road_boss]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_boss]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
boss = self.map.select(is_boss=True)
|
||||
if boss:
|
||||
if not self.check_accessibility(boss[0], fleet='boss'):
|
||||
return self.clear_roadblocks([road_boss])
|
||||
|
||||
return self.fleet_boss.clear_boss()
|
||||
|
||||
@@ -1,87 +1,87 @@
|
||||
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.shape = 'H6'
|
||||
MAP.camera_data = ['D2', 'D4', 'E2', 'E4']
|
||||
MAP.camera_data_spawn_point = ['D4', 'E4']
|
||||
MAP.map_data = """
|
||||
ME -- ME Me -- -- ++ ++
|
||||
++ ME -- ++ ME ME ME ME
|
||||
++ __ Me ++ ++ __ Me --
|
||||
-- ME -- ME ME ME -- Me
|
||||
ME ++ ++ SP SP -- ++ MB
|
||||
ME -- Me ME -- Me ++ MB
|
||||
"""
|
||||
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
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, \
|
||||
= MAP.flatten()
|
||||
|
||||
road_main = RoadGrids([F4, H4])
|
||||
|
||||
|
||||
class Config:
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 30
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 30
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.2
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (120, 255 - 49),
|
||||
'width': (1.5, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 49, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'wlen': 1000
|
||||
}
|
||||
HOMO_EDGE_COLOR_RANGE = (0, 49)
|
||||
MAP_SWIPE_MULTIPLY = 1.493
|
||||
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.443
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
self.fleet_2_push_forward()
|
||||
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
boss = self.map.select(is_boss=True)
|
||||
if boss:
|
||||
if not self.check_accessibility(boss[0], fleet='boss'):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.fleet_2.clear_boss()
|
||||
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.shape = 'H6'
|
||||
MAP.camera_data = ['D2', 'D4', 'E2', 'E4']
|
||||
MAP.camera_data_spawn_point = ['D4', 'E4']
|
||||
MAP.map_data = """
|
||||
ME -- ME Me -- -- ++ ++
|
||||
++ ME -- ++ ME ME ME ME
|
||||
++ __ Me ++ ++ __ Me --
|
||||
-- ME -- ME ME ME -- Me
|
||||
ME ++ ++ SP SP -- ++ MB
|
||||
ME -- Me ME -- Me ++ MB
|
||||
"""
|
||||
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
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, \
|
||||
= MAP.flatten()
|
||||
|
||||
road_main = RoadGrids([F4, H4])
|
||||
|
||||
|
||||
class Config:
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 30
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 30
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.2
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (120, 255 - 49),
|
||||
'width': (1.5, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 49, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'wlen': 1000
|
||||
}
|
||||
HOMO_EDGE_COLOR_RANGE = (0, 49)
|
||||
MAP_SWIPE_MULTIPLY = 1.493
|
||||
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.443
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
self.fleet_2_push_forward()
|
||||
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
boss = self.map.select(is_boss=True)
|
||||
if boss:
|
||||
if not self.check_accessibility(boss[0], fleet='boss'):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.fleet_2.clear_boss()
|
||||
|
||||
@@ -1,68 +1,68 @@
|
||||
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.campaign_main.campaign_12_1 import Config
|
||||
|
||||
MAP = CampaignMap()
|
||||
MAP.shape = 'I7'
|
||||
MAP.camera_data = ['D2', 'D5', 'F2', 'F5']
|
||||
MAP.camera_data_spawn_point = ['D2', 'D5']
|
||||
MAP.map_data = """
|
||||
++ MB ME ME ++ -- ME Me --
|
||||
++ -- Me -- Me -- Me -- ++
|
||||
MB ME ++ ME SP ME -- ME ++
|
||||
MB __ ME -- SP ++ ++ __ Me
|
||||
++ -- -- Me ME -- ME -- ME
|
||||
-- ME ME ++ -- -- Me ME --
|
||||
ME -- Me -- ME ME -- ++ ++
|
||||
"""
|
||||
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 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, I1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, \
|
||||
A7, B7, C7, D7, E7, F7, G7, H7, I7, \
|
||||
= MAP.flatten()
|
||||
|
||||
road_main = RoadGrids([[C4, D5], B3])
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
boss = self.map.select(is_boss=True)
|
||||
if boss:
|
||||
if not self.check_accessibility(boss[0], fleet='boss'):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.fleet_2.clear_boss()
|
||||
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.campaign_main.campaign_12_1 import Config
|
||||
|
||||
MAP = CampaignMap()
|
||||
MAP.shape = 'I7'
|
||||
MAP.camera_data = ['D2', 'D5', 'F2', 'F5']
|
||||
MAP.camera_data_spawn_point = ['D2', 'D5']
|
||||
MAP.map_data = """
|
||||
++ MB ME ME ++ -- ME Me --
|
||||
++ -- Me -- Me -- Me -- ++
|
||||
MB ME ++ ME SP ME -- ME ++
|
||||
MB __ ME -- SP ++ ++ __ Me
|
||||
++ -- -- Me ME -- ME -- ME
|
||||
-- ME ME ++ -- -- Me ME --
|
||||
ME -- Me -- ME ME -- ++ ++
|
||||
"""
|
||||
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 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, I1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, \
|
||||
A7, B7, C7, D7, E7, F7, G7, H7, I7, \
|
||||
= MAP.flatten()
|
||||
|
||||
road_main = RoadGrids([[C4, D5], B3])
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
boss = self.map.select(is_boss=True)
|
||||
if boss:
|
||||
if not self.check_accessibility(boss[0], fleet='boss'):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.fleet_2.clear_boss()
|
||||
|
||||
@@ -1,68 +1,68 @@
|
||||
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.campaign_main.campaign_12_1 import Config
|
||||
|
||||
MAP = CampaignMap()
|
||||
MAP.shape = 'J7'
|
||||
MAP.camera_data = ['D2', 'D5', 'G2', 'G5']
|
||||
MAP.camera_data_spawn_point = ['G5', 'D5']
|
||||
MAP.map_data = """
|
||||
MB ++ ++ ++ ME MB -- Me -- ME
|
||||
MB -- ME -- -- ME -- -- ++ MB
|
||||
-- ME __ ++ Me -- ME ++ ++ --
|
||||
MB -- ME -- -- ME -- __ Me ME
|
||||
-- ME -- ME Me -- Me -- ME ++
|
||||
++ -- ME Me -- ++ Me -- -- ++
|
||||
++ ME -- ME SP SP -- ME -- ME
|
||||
"""
|
||||
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 50 50
|
||||
50 50 50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
|
||||
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \
|
||||
= MAP.flatten()
|
||||
|
||||
road_main = RoadGrids([H1, J1])
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
boss = self.map.select(is_boss=True)
|
||||
if boss:
|
||||
if not self.check_accessibility(boss[0], fleet='boss'):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.fleet_2.clear_boss()
|
||||
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.campaign_main.campaign_12_1 import Config
|
||||
|
||||
MAP = CampaignMap()
|
||||
MAP.shape = 'J7'
|
||||
MAP.camera_data = ['D2', 'D5', 'G2', 'G5']
|
||||
MAP.camera_data_spawn_point = ['G5', 'D5']
|
||||
MAP.map_data = """
|
||||
MB ++ ++ ++ ME MB -- Me -- ME
|
||||
MB -- ME -- -- ME -- -- ++ MB
|
||||
-- ME __ ++ Me -- ME ++ ++ --
|
||||
MB -- ME -- -- ME -- __ Me ME
|
||||
-- ME -- ME Me -- Me -- ME ++
|
||||
++ -- ME Me -- ++ Me -- -- ++
|
||||
++ ME -- ME SP SP -- ME -- ME
|
||||
"""
|
||||
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 50 50
|
||||
50 50 50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
|
||||
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \
|
||||
= MAP.flatten()
|
||||
|
||||
road_main = RoadGrids([H1, J1])
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
boss = self.map.select(is_boss=True)
|
||||
if boss:
|
||||
if not self.check_accessibility(boss[0], fleet='boss'):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.fleet_2.clear_boss()
|
||||
|
||||
@@ -1,78 +1,78 @@
|
||||
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('13-1')
|
||||
MAP.shape = 'H6'
|
||||
MAP.camera_data = ['D2', 'D4', 'E2', 'E4']
|
||||
MAP.camera_data_spawn_point = ['D4']
|
||||
MAP.map_data = """
|
||||
ME -- ME Me ++ ++ ME MB
|
||||
++ ME -- ME -- ++ ME --
|
||||
++ __ Me ME -- -- Me --
|
||||
ME ME ++ ME ME -- __ --
|
||||
ME -- SP SP -- -- ++ --
|
||||
ME -- Me ME Me Me ++ MB
|
||||
"""
|
||||
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
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config:
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (120, 255 - 49),
|
||||
'width': (1.5, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 49, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'wlen': 1000
|
||||
}
|
||||
HOMO_EDGE_COLOR_RANGE = (0, 49)
|
||||
MAP_SWIPE_MULTIPLY = 1.519
|
||||
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.469
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=1):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_5(self):
|
||||
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=0):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
return self.fleet_boss.clear_boss()
|
||||
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('13-1')
|
||||
MAP.shape = 'H6'
|
||||
MAP.camera_data = ['D2', 'D4', 'E2', 'E4']
|
||||
MAP.camera_data_spawn_point = ['D4']
|
||||
MAP.map_data = """
|
||||
ME -- ME Me ++ ++ ME MB
|
||||
++ ME -- ME -- ++ ME --
|
||||
++ __ Me ME -- -- Me --
|
||||
ME ME ++ ME ME -- __ --
|
||||
ME -- SP SP -- -- ++ --
|
||||
ME -- Me ME Me Me ++ MB
|
||||
"""
|
||||
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
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config:
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (120, 255 - 49),
|
||||
'width': (1.5, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 49, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'wlen': 1000
|
||||
}
|
||||
HOMO_EDGE_COLOR_RANGE = (0, 49)
|
||||
MAP_SWIPE_MULTIPLY = 1.519
|
||||
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.469
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=1):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_5(self):
|
||||
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=0):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
return self.fleet_boss.clear_boss()
|
||||
|
||||
@@ -1,68 +1,68 @@
|
||||
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_13_1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('13-2')
|
||||
MAP.shape = 'I7'
|
||||
MAP.camera_data = ['D2', 'D5', 'F2', 'F5']
|
||||
MAP.camera_data_spawn_point = ['D2', 'D5']
|
||||
MAP.map_data = """
|
||||
++ Me ME ME ++ Me ME Me --
|
||||
++ -- -- -- -- -- ++ ++ ++
|
||||
MB -- SP ++ ++ -- ME ME ME
|
||||
MB -- SP -- ++ -- -- __ Me
|
||||
ME __ -- -- ME -- ME -- --
|
||||
ME ME ME ++ ME -- Me ME MB
|
||||
ME -- Me Me ME ME Me ++ ++
|
||||
"""
|
||||
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 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, I1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, \
|
||||
A7, B7, C7, D7, E7, F7, G7, H7, I7, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
pass
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=1):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_5(self):
|
||||
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=0):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
return self.fleet_boss.clear_boss()
|
||||
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_13_1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('13-2')
|
||||
MAP.shape = 'I7'
|
||||
MAP.camera_data = ['D2', 'D5', 'F2', 'F5']
|
||||
MAP.camera_data_spawn_point = ['D2', 'D5']
|
||||
MAP.map_data = """
|
||||
++ Me ME ME ++ Me ME Me --
|
||||
++ -- -- -- -- -- ++ ++ ++
|
||||
MB -- SP ++ ++ -- ME ME ME
|
||||
MB -- SP -- ++ -- -- __ Me
|
||||
ME __ -- -- ME -- ME -- --
|
||||
ME ME ME ++ ME -- Me ME MB
|
||||
ME -- Me Me ME ME Me ++ ++
|
||||
"""
|
||||
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 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, I1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, \
|
||||
A7, B7, C7, D7, E7, F7, G7, H7, I7, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
pass
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=1):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_5(self):
|
||||
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=0):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
return self.fleet_boss.clear_boss()
|
||||
|
||||
@@ -1,72 +1,72 @@
|
||||
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_13_1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('13-3')
|
||||
MAP.shape = 'J7'
|
||||
MAP.camera_data = ['D2', 'D5', 'G2', 'G5']
|
||||
MAP.camera_data_spawn_point = ['G5', 'D5']
|
||||
MAP.map_data = """
|
||||
++ ++ ++ ME ME MB -- Me ++ --
|
||||
MB Me ME ME -- ME -- -- ++ MB
|
||||
MB -- -- -- Me ++ ME __ -- --
|
||||
MB __ -- ++ ++ ME -- -- Me ME
|
||||
ME ME -- ++ ++ -- Me -- ME ++
|
||||
++ -- ME Me SP SP Me -- -- ME
|
||||
++ ME -- ME -- -- -- ME -- ME
|
||||
"""
|
||||
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 50 50
|
||||
50 50 50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 3},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
|
||||
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
pass
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_siren():
|
||||
return True
|
||||
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=1):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_5(self):
|
||||
if self.clear_siren():
|
||||
return True
|
||||
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=0):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
return self.fleet_boss.clear_boss()
|
||||
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_13_1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('13-3')
|
||||
MAP.shape = 'J7'
|
||||
MAP.camera_data = ['D2', 'D5', 'G2', 'G5']
|
||||
MAP.camera_data_spawn_point = ['G5', 'D5']
|
||||
MAP.map_data = """
|
||||
++ ++ ++ ME ME MB -- Me ++ --
|
||||
MB Me ME ME -- ME -- -- ++ MB
|
||||
MB -- -- -- Me ++ ME __ -- --
|
||||
MB __ -- ++ ++ ME -- -- Me ME
|
||||
ME ME -- ++ ++ -- Me -- ME ++
|
||||
++ -- ME Me SP SP Me -- -- ME
|
||||
++ ME -- ME -- -- -- ME -- ME
|
||||
"""
|
||||
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 50 50
|
||||
50 50 50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 3},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
|
||||
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
pass
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_siren():
|
||||
return True
|
||||
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=1):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_5(self):
|
||||
if self.clear_siren():
|
||||
return True
|
||||
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=0):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_6(self):
|
||||
return self.fleet_boss.clear_boss()
|
||||
|
||||
@@ -1,91 +1,91 @@
|
||||
from module.campaign.campaign_base import CampaignBase
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import SelectedGrids, RoadGrids
|
||||
from .campaign_13_1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('13-4')
|
||||
MAP.shape = 'K8'
|
||||
MAP.camera_data = ['D2', 'D4', 'D6', 'H2', 'H4', 'H6']
|
||||
MAP.camera_data_spawn_point = ['D2', 'D6']
|
||||
MAP.map_data = """
|
||||
MB ME ME -- ME ++ ++ ++ MB MB ++
|
||||
MB __ ME ME ME -- __ MA -- Me ++
|
||||
ME -- -- Me Me -- Me Me -- Me ME
|
||||
++ SP -- ME ++ Me -- -- -- -- ME
|
||||
++ SP ME -- ME -- -- ME ++ ++ --
|
||||
++ -- -- -- Me -- ME Me ++ ++ ME
|
||||
ME ME Me -- -- -- Me -- -- ME --
|
||||
-- ME Me ME -- -- ++ ++ -- ME --
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 90 90 90 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 50 50
|
||||
50 50 50 50 50 50 50 50 50 50 50
|
||||
90 50 50 50 50 50 50 50 50 90 50
|
||||
90 90 50 50 50 50 50 50 50 90 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 3},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 2},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5, 'enemy': 1},
|
||||
{'battle': 6},
|
||||
{'battle': 7, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
|
||||
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \
|
||||
A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, K8, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 40
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (150, 255 - 24),
|
||||
'width': (0.9, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 24, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'width': (0, 10),
|
||||
'wlen': 1000,
|
||||
}
|
||||
|
||||
|
||||
# step_on = SelectedGrids([A7, B1, B7, C7, D2, D3, G7, J2, K4, K6])
|
||||
# road_main = RoadGrids([A7, B1, B7, C7, D2, D3, [G7, J2], K4, K6])
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=0):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_3(self):
|
||||
self.pick_up_ammo()
|
||||
|
||||
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=0):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_7(self):
|
||||
return self.fleet_boss.clear_boss()
|
||||
from module.campaign.campaign_base import CampaignBase
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import SelectedGrids, RoadGrids
|
||||
from .campaign_13_1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('13-4')
|
||||
MAP.shape = 'K8'
|
||||
MAP.camera_data = ['D2', 'D4', 'D6', 'H2', 'H4', 'H6']
|
||||
MAP.camera_data_spawn_point = ['D2', 'D6']
|
||||
MAP.map_data = """
|
||||
MB ME ME -- ME ++ ++ ++ MB MB ++
|
||||
MB __ ME ME ME -- __ MA -- Me ++
|
||||
ME -- -- Me Me -- Me Me -- Me ME
|
||||
++ SP -- ME ++ Me -- -- -- -- ME
|
||||
++ SP ME -- ME -- -- ME ++ ++ --
|
||||
++ -- -- -- Me -- ME Me ++ ++ ME
|
||||
ME ME Me -- -- -- Me -- -- ME --
|
||||
-- ME Me ME -- -- ++ ++ -- ME --
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 90 90 90 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 50 50
|
||||
50 50 50 50 50 50 50 50 50 50 50
|
||||
90 50 50 50 50 50 50 50 50 90 50
|
||||
90 90 50 50 50 50 50 50 50 90 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 3},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 2},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5, 'enemy': 1},
|
||||
{'battle': 6},
|
||||
{'battle': 7, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
|
||||
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \
|
||||
A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, K8, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 40
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (150, 255 - 24),
|
||||
'width': (0.9, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 24, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'width': (0, 10),
|
||||
'wlen': 1000,
|
||||
}
|
||||
|
||||
|
||||
# step_on = SelectedGrids([A7, B1, B7, C7, D2, D3, G7, J2, K4, K6])
|
||||
# road_main = RoadGrids([A7, B1, B7, C7, D2, D3, [G7, J2], K4, K6])
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=0):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_3(self):
|
||||
self.pick_up_ammo()
|
||||
|
||||
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=0):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_7(self):
|
||||
return self.fleet_boss.clear_boss()
|
||||
|
||||
@@ -1,53 +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.campaign_main.campaign_2_1 import Config
|
||||
|
||||
MAP = CampaignMap()
|
||||
MAP.shape = 'F5'
|
||||
MAP.camera_data = ['D3']
|
||||
MAP.camera_data_spawn_point = ['D1', 'D3']
|
||||
MAP.map_data = """
|
||||
SP -- ME -- MB ++
|
||||
-- ME -- ME ++ ++
|
||||
-- -- ME -- -- ++
|
||||
SP -- -- ME ME --
|
||||
++ ++ ++ -- ME MM
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
10 10 11 10 10 10
|
||||
50 50 10 12 10 10
|
||||
20 20 20 20 20 20
|
||||
20 20 20 20 30 30
|
||||
30 30 30 30 30 30
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2, 'mystery': 1},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 2, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, \
|
||||
A2, B2, C2, D2, E2, F2, \
|
||||
A3, B3, C3, D3, E3, F3, \
|
||||
A4, B4, C4, D4, E4, F4, \
|
||||
A5, B5, C5, D5, E5, F5, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
self.clear_all_mystery()
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_3(self):
|
||||
self.clear_all_mystery()
|
||||
|
||||
if not self.check_accessibility(E1, fleet='boss'):
|
||||
return self.battle_default()
|
||||
|
||||
return self.fleet_boss.clear_boss()
|
||||
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.campaign_main.campaign_2_1 import Config
|
||||
|
||||
MAP = CampaignMap()
|
||||
MAP.shape = 'F5'
|
||||
MAP.camera_data = ['D3']
|
||||
MAP.camera_data_spawn_point = ['D1', 'D3']
|
||||
MAP.map_data = """
|
||||
SP -- ME -- MB ++
|
||||
-- ME -- ME ++ ++
|
||||
-- -- ME -- -- ++
|
||||
SP -- -- ME ME --
|
||||
++ ++ ++ -- ME MM
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
10 10 11 10 10 10
|
||||
50 50 10 12 10 10
|
||||
20 20 20 20 20 20
|
||||
20 20 20 20 30 30
|
||||
30 30 30 30 30 30
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2, 'mystery': 1},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 2, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, \
|
||||
A2, B2, C2, D2, E2, F2, \
|
||||
A3, B3, C3, D3, E3, F3, \
|
||||
A4, B4, C4, D4, E4, F4, \
|
||||
A5, B5, C5, D5, E5, F5, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
self.clear_all_mystery()
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_3(self):
|
||||
self.clear_all_mystery()
|
||||
|
||||
if not self.check_accessibility(E1, fleet='boss'):
|
||||
return self.battle_default()
|
||||
|
||||
return self.fleet_boss.clear_boss()
|
||||
|
||||
@@ -1,53 +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.campaign_main.campaign_2_1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap()
|
||||
MAP.shape = 'G4'
|
||||
MAP.camera_data = ['D2']
|
||||
MAP.camera_data_spawn_point = ['D2']
|
||||
MAP.map_data = """
|
||||
-- ++ ++ ++ ME ME MB
|
||||
SP -- ME -- -- ME --
|
||||
-- -- ME -- ME ++ ++
|
||||
-- ME -- SP -- MA ++
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
20 20 20 20 12 11 10
|
||||
20 20 20 20 10 10 10
|
||||
20 20 20 20 30 20 20
|
||||
20 20 20 20 20 20 20
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 2, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
# Don't know why 2-4 is slimmer
|
||||
# 2-1 is /_\ and 2-4 is like |_|
|
||||
MID_DIFF_RANGE_H = (121 - 3, 121 + 3)
|
||||
MID_DIFF_RANGE_V = (121 - 3, 121 + 3)
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
return self.battle_default()
|
||||
|
||||
def battle_3(self):
|
||||
if not self.check_accessibility(G1, fleet='boss'):
|
||||
return self.battle_default()
|
||||
|
||||
return self.fleet_boss.clear_boss()
|
||||
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.campaign_main.campaign_2_1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap()
|
||||
MAP.shape = 'G4'
|
||||
MAP.camera_data = ['D2']
|
||||
MAP.camera_data_spawn_point = ['D2']
|
||||
MAP.map_data = """
|
||||
-- ++ ++ ++ ME ME MB
|
||||
SP -- ME -- -- ME --
|
||||
-- -- ME -- ME ++ ++
|
||||
-- ME -- SP -- MA ++
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
20 20 20 20 12 11 10
|
||||
20 20 20 20 10 10 10
|
||||
20 20 20 20 30 20 20
|
||||
20 20 20 20 20 20 20
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 2, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
# Don't know why 2-4 is slimmer
|
||||
# 2-1 is /_\ and 2-4 is like |_|
|
||||
MID_DIFF_RANGE_H = (121 - 3, 121 + 3)
|
||||
MID_DIFF_RANGE_V = (121 - 3, 121 + 3)
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
return self.battle_default()
|
||||
|
||||
def battle_3(self):
|
||||
if not self.check_accessibility(G1, fleet='boss'):
|
||||
return self.battle_default()
|
||||
|
||||
return self.fleet_boss.clear_boss()
|
||||
|
||||
@@ -1,77 +1,77 @@
|
||||
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.campaign_main.campaign_3_1 import Config as Config31
|
||||
|
||||
MAP = CampaignMap()
|
||||
MAP.shape = 'H4'
|
||||
MAP.camera_data = ['E2']
|
||||
MAP.camera_data_spawn_point = ['D1', 'D2']
|
||||
# WIKI的图是错的: https://wiki.biligame.com/blhx/3-4
|
||||
# A3有岛, 假图害人
|
||||
MAP.map_data = """
|
||||
SP -- -- ME -- ++ ++ ++
|
||||
SP ME -- ME -- MA ++ ++
|
||||
++ -- ME __ ME ME -- MB
|
||||
SP ME -- ME -- -- ME MB
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
40 40 40 40 40 40 40 40
|
||||
40 40 40 30 30 30 30 30
|
||||
40 40 30 30 20 10 10 09
|
||||
40 40 30 20 20 10 10 09
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 1, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config(Config31):
|
||||
MAP_MYSTERY_HAS_CARRIER = False
|
||||
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (120, 255 - 75),
|
||||
'width': (0.9, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 40, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'wlen': 1000
|
||||
}
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
self.fleet_2_push_forward()
|
||||
|
||||
if self.fleet_2_rescue(H3):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_3(self):
|
||||
if not self.check_accessibility(H3, fleet='boss'):
|
||||
return self.battle_default()
|
||||
|
||||
return self.fleet_boss.clear_boss()
|
||||
|
||||
# def handle_boss_appear_refocus(self):
|
||||
# for data in self.map.spawn_data:
|
||||
# if data.get('battle') == self.battle_count and data.get('boss', 0):
|
||||
# self.map_swipe((-3, -1))
|
||||
#
|
||||
# return super().handle_boss_appear_refocus()
|
||||
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.campaign_main.campaign_3_1 import Config as Config31
|
||||
|
||||
MAP = CampaignMap()
|
||||
MAP.shape = 'H4'
|
||||
MAP.camera_data = ['E2']
|
||||
MAP.camera_data_spawn_point = ['D1', 'D2']
|
||||
# WIKI的图是错的: https://wiki.biligame.com/blhx/3-4
|
||||
# A3有岛, 假图害人
|
||||
MAP.map_data = """
|
||||
SP -- -- ME -- ++ ++ ++
|
||||
SP ME -- ME -- MA ++ ++
|
||||
++ -- ME __ ME ME -- MB
|
||||
SP ME -- ME -- -- ME MB
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
40 40 40 40 40 40 40 40
|
||||
40 40 40 30 30 30 30 30
|
||||
40 40 30 30 20 10 10 09
|
||||
40 40 30 20 20 10 10 09
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 1, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config(Config31):
|
||||
MAP_MYSTERY_HAS_CARRIER = False
|
||||
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (120, 255 - 75),
|
||||
'width': (0.9, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 40, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'wlen': 1000
|
||||
}
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
self.fleet_2_push_forward()
|
||||
|
||||
if self.fleet_2_rescue(H3):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_3(self):
|
||||
if not self.check_accessibility(H3, fleet='boss'):
|
||||
return self.battle_default()
|
||||
|
||||
return self.fleet_boss.clear_boss()
|
||||
|
||||
# def handle_boss_appear_refocus(self):
|
||||
# for data in self.map.spawn_data:
|
||||
# if data.get('battle') == self.battle_count and data.get('boss', 0):
|
||||
# self.map_swipe((-3, -1))
|
||||
#
|
||||
# return super().handle_boss_appear_refocus()
|
||||
|
||||
@@ -1,63 +1,63 @@
|
||||
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('8-1')
|
||||
MAP.shape = 'I3'
|
||||
MAP.camera_data = ['D1', 'F1']
|
||||
MAP.camera_data_spawn_point = ['D1', 'F1']
|
||||
MAP.map_data = """
|
||||
SP -- ++ ++ ME -- ME MB ++
|
||||
SP -- ++ ++ ME -- ME -- ME
|
||||
-- ME ME -- ME ++ ME ME MB
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 50 50 50 50 21 30 50
|
||||
50 50 50 50 25 24 20 12 11
|
||||
50 45 40 31 30 50 22 10 20
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, I1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config:
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 35
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 35
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.3
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (120, 255 - 49),
|
||||
'width': (0.9, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 49, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'width': (0, 10),
|
||||
'wlen': 1000,
|
||||
}
|
||||
HOMO_EDGE_COLOR_RANGE = (0, 49)
|
||||
MAP_SWIPE_MULTIPLY = 1.722
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
self.fleet_2_push_forward()
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_4(self):
|
||||
return self.brute_clear_boss()
|
||||
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('8-1')
|
||||
MAP.shape = 'I3'
|
||||
MAP.camera_data = ['D1', 'F1']
|
||||
MAP.camera_data_spawn_point = ['D1', 'F1']
|
||||
MAP.map_data = """
|
||||
SP -- ++ ++ ME -- ME MB ++
|
||||
SP -- ++ ++ ME -- ME -- ME
|
||||
-- ME ME -- ME ++ ME ME MB
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 50 50 50 50 21 30 50
|
||||
50 50 50 50 25 24 20 12 11
|
||||
50 45 40 31 30 50 22 10 20
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, I1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config:
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 35
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 35
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.3
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (120, 255 - 49),
|
||||
'width': (0.9, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 49, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'width': (0, 10),
|
||||
'wlen': 1000,
|
||||
}
|
||||
HOMO_EDGE_COLOR_RANGE = (0, 49)
|
||||
MAP_SWIPE_MULTIPLY = 1.722
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
self.fleet_2_push_forward()
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_4(self):
|
||||
return self.brute_clear_boss()
|
||||
|
||||
@@ -1,73 +1,73 @@
|
||||
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_8_1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('8-3')
|
||||
MAP.shape = 'H5'
|
||||
MAP.camera_data = ['D2', 'D3', 'E3']
|
||||
MAP.camera_data_spawn_point = ['E3']
|
||||
MAP.map_data = """
|
||||
MB ME -- ++ ++ ME -- MB
|
||||
ME ME ME -- ++ ME ME --
|
||||
-- ME -- ME ME -- ME ME
|
||||
ME ++ ++ -- ME ++ ++ ME
|
||||
MM ++ ++ ME ME SP -- SP
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 35 20 90 90 40 50 50
|
||||
30 40 25 90 90 25 30 50
|
||||
20 20 20 10 10 20 20 35
|
||||
50 90 90 60 60 90 90 90
|
||||
90 90 90 70 80 90 90 90
|
||||
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 2, 'mystery': 1},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, \
|
||||
= MAP.flatten()
|
||||
|
||||
road_A1 = RoadGrids([[A2, B1], [B1, B2, B3], [A2, B2, C2], [B3, C2], D3])
|
||||
road_H1 = RoadGrids([[F1, G2, H3], [F1, G2, G3], [F2, G2, H3], [F2, G3], E3])
|
||||
road_MY = RoadGrids([A4, [A2, B3]])
|
||||
road_middle = RoadGrids([E5, [D5, E4], D3]) \
|
||||
.combine(RoadGrids([H4, H3, [F1, G2, G3], [F2, G3], E3]))
|
||||
step_on = SelectedGrids([D3, E3])
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
pass
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.fleet_2_step_on(step_on, roadblocks=[road_middle]):
|
||||
return True
|
||||
|
||||
self.clear_all_mystery()
|
||||
|
||||
if self.clear_roadblocks([road_A1, road_H1]):
|
||||
return True
|
||||
if self.mystery_count < 1 and self.clear_roadblocks([road_MY]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_A1, road_H1]):
|
||||
return True
|
||||
if self.clear_first_roadblocks([road_A1, road_H1]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_4(self):
|
||||
return self.brute_clear_boss()
|
||||
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_8_1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('8-3')
|
||||
MAP.shape = 'H5'
|
||||
MAP.camera_data = ['D2', 'D3', 'E3']
|
||||
MAP.camera_data_spawn_point = ['E3']
|
||||
MAP.map_data = """
|
||||
MB ME -- ++ ++ ME -- MB
|
||||
ME ME ME -- ++ ME ME --
|
||||
-- ME -- ME ME -- ME ME
|
||||
ME ++ ++ -- ME ++ ++ ME
|
||||
MM ++ ++ ME ME SP -- SP
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 35 20 90 90 40 50 50
|
||||
30 40 25 90 90 25 30 50
|
||||
20 20 20 10 10 20 20 35
|
||||
50 90 90 60 60 90 90 90
|
||||
90 90 90 70 80 90 90 90
|
||||
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 2, 'mystery': 1},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, \
|
||||
= MAP.flatten()
|
||||
|
||||
road_A1 = RoadGrids([[A2, B1], [B1, B2, B3], [A2, B2, C2], [B3, C2], D3])
|
||||
road_H1 = RoadGrids([[F1, G2, H3], [F1, G2, G3], [F2, G2, H3], [F2, G3], E3])
|
||||
road_MY = RoadGrids([A4, [A2, B3]])
|
||||
road_middle = RoadGrids([E5, [D5, E4], D3]) \
|
||||
.combine(RoadGrids([H4, H3, [F1, G2, G3], [F2, G3], E3]))
|
||||
step_on = SelectedGrids([D3, E3])
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
pass
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.fleet_2_step_on(step_on, roadblocks=[road_middle]):
|
||||
return True
|
||||
|
||||
self.clear_all_mystery()
|
||||
|
||||
if self.clear_roadblocks([road_A1, road_H1]):
|
||||
return True
|
||||
if self.mystery_count < 1 and self.clear_roadblocks([road_MY]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_A1, road_H1]):
|
||||
return True
|
||||
if self.clear_first_roadblocks([road_A1, road_H1]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_4(self):
|
||||
return self.brute_clear_boss()
|
||||
|
||||
@@ -1,79 +1,79 @@
|
||||
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_8_1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('8-3')
|
||||
MAP.shape = 'H6'
|
||||
MAP.camera_data = ['D3', 'D4', 'E3', 'E4']
|
||||
MAP.map_data = """
|
||||
MB -- ME ME ME ME -- MB
|
||||
-- ME MM ++ ++ __ ME --
|
||||
ME ++ ++ SP -- ME -- ME
|
||||
ME MA ++ -- SP ++ ME ME
|
||||
MM ME __ ME ++ ++ ME --
|
||||
MB -- ME ME ME ME -- MB
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 40 90 90 30 50 50
|
||||
50 50 50 90 90 20 40 50
|
||||
40 90 90 10 10 10 20 20
|
||||
30 90 90 10 10 90 40 30
|
||||
20 20 20 10 90 90 40 50
|
||||
50 30 30 80 80 80 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 2, 'mystery': 1},
|
||||
{'battle': 2, 'enemy': 2, 'mystery': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, \
|
||||
= MAP.flatten()
|
||||
|
||||
road_middle = RoadGrids([D5, F3])
|
||||
step_on = SelectedGrids([D5, F3])
|
||||
# There's one enemy spawn along with boss, so have to make sure there are multiple roads are cleared.
|
||||
# Here use separate roads instead of RoadGrids.combine().
|
||||
road_H1 = RoadGrids([F3, [F1, G2, H3]])
|
||||
road_A6 = RoadGrids([D5, [B5, C6]])
|
||||
road_A1_left = RoadGrids([A4, A3])
|
||||
road_A1_upper = RoadGrids([F1, E1, D1, C1])
|
||||
road_H6_bottom = RoadGrids([D6, E6, F6])
|
||||
road_H6_right = RoadGrids([[H3, G4], [G4, H4], [H4, G5]])
|
||||
road_MY = RoadGrids([[B2, C1]])
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
pass
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.fleet_2_step_on(step_on, roadblocks=[road_middle]):
|
||||
return True
|
||||
|
||||
self.clear_all_mystery()
|
||||
|
||||
if self.clear_roadblocks([road_A6, road_H1, road_A1_left, road_A1_upper, road_H6_bottom, road_H6_right]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_A6, road_H1, road_A1_left, road_A1_upper, road_H6_bottom, road_H6_right]):
|
||||
return True
|
||||
if self.clear_roadblocks([road_MY]):
|
||||
return True
|
||||
if self.clear_first_roadblocks([road_A6, road_H1, road_A1_left, road_A1_upper, road_H6_bottom, road_H6_right]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_4(self):
|
||||
return self.brute_clear_boss()
|
||||
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_8_1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('8-3')
|
||||
MAP.shape = 'H6'
|
||||
MAP.camera_data = ['D3', 'D4', 'E3', 'E4']
|
||||
MAP.map_data = """
|
||||
MB -- ME ME ME ME -- MB
|
||||
-- ME MM ++ ++ __ ME --
|
||||
ME ++ ++ SP -- ME -- ME
|
||||
ME MA ++ -- SP ++ ME ME
|
||||
MM ME __ ME ++ ++ ME --
|
||||
MB -- ME ME ME ME -- MB
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 40 90 90 30 50 50
|
||||
50 50 50 90 90 20 40 50
|
||||
40 90 90 10 10 10 20 20
|
||||
30 90 90 10 10 90 40 30
|
||||
20 20 20 10 90 90 40 50
|
||||
50 30 30 80 80 80 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 2, 'mystery': 1},
|
||||
{'battle': 2, 'enemy': 2, 'mystery': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, \
|
||||
= MAP.flatten()
|
||||
|
||||
road_middle = RoadGrids([D5, F3])
|
||||
step_on = SelectedGrids([D5, F3])
|
||||
# There's one enemy spawn along with boss, so have to make sure there are multiple roads are cleared.
|
||||
# Here use separate roads instead of RoadGrids.combine().
|
||||
road_H1 = RoadGrids([F3, [F1, G2, H3]])
|
||||
road_A6 = RoadGrids([D5, [B5, C6]])
|
||||
road_A1_left = RoadGrids([A4, A3])
|
||||
road_A1_upper = RoadGrids([F1, E1, D1, C1])
|
||||
road_H6_bottom = RoadGrids([D6, E6, F6])
|
||||
road_H6_right = RoadGrids([[H3, G4], [G4, H4], [H4, G5]])
|
||||
road_MY = RoadGrids([[B2, C1]])
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
pass
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.fleet_2_step_on(step_on, roadblocks=[road_middle]):
|
||||
return True
|
||||
|
||||
self.clear_all_mystery()
|
||||
|
||||
if self.clear_roadblocks([road_A6, road_H1, road_A1_left, road_A1_upper, road_H6_bottom, road_H6_right]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_A6, road_H1, road_A1_left, road_A1_upper, road_H6_bottom, road_H6_right]):
|
||||
return True
|
||||
if self.clear_roadblocks([road_MY]):
|
||||
return True
|
||||
if self.clear_first_roadblocks([road_A6, road_H1, road_A1_left, road_A1_upper, road_H6_bottom, road_H6_right]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_4(self):
|
||||
return self.brute_clear_boss()
|
||||
|
||||
@@ -1,73 +1,73 @@
|
||||
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('9-2')
|
||||
MAP.shape = 'H5'
|
||||
MAP.camera_data = ['E3']
|
||||
MAP.camera_data_spawn_point = ['D1', 'D3']
|
||||
MAP.map_data = """
|
||||
SP -- ++ ++ ++ Me -- MB
|
||||
++ -- ++ ++ ++ ME ++ ++
|
||||
-- ME -- ME ME Me ++ ++
|
||||
-- -- ++ -- ME ++ ME MB
|
||||
SP SP ++ ME -- Me ME ME
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
90 90 90 90 90 30 30 30
|
||||
90 90 90 90 90 30 90 90
|
||||
90 80 70 60 50 30 90 90
|
||||
90 90 90 90 50 90 30 30
|
||||
90 90 90 90 40 40 30 30
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, \
|
||||
= MAP.flatten()
|
||||
|
||||
# Might have wrong prediction on D5
|
||||
MAP.ignore_prediction(D5, enemy_scale=1, enemy_genre='Enemy')
|
||||
road_main = RoadGrids([B3, D3, [D5, E4], F5, G5, [G4, H5], H4, E3, F3, F2, F1])
|
||||
step_on = SelectedGrids([F3, E4])
|
||||
|
||||
|
||||
class Config:
|
||||
SUBMARINE = 0
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 40
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.fleet_2_step_on(step_on, roadblocks=[road_main]):
|
||||
return True
|
||||
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_5(self):
|
||||
boss = self.map.select(is_boss=True)
|
||||
if boss:
|
||||
if not self.check_accessibility(boss[0], fleet='boss'):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.fleet_2.clear_boss()
|
||||
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('9-2')
|
||||
MAP.shape = 'H5'
|
||||
MAP.camera_data = ['E3']
|
||||
MAP.camera_data_spawn_point = ['D1', 'D3']
|
||||
MAP.map_data = """
|
||||
SP -- ++ ++ ++ Me -- MB
|
||||
++ -- ++ ++ ++ ME ++ ++
|
||||
-- ME -- ME ME Me ++ ++
|
||||
-- -- ++ -- ME ++ ME MB
|
||||
SP SP ++ ME -- Me ME ME
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
90 90 90 90 90 30 30 30
|
||||
90 90 90 90 90 30 90 90
|
||||
90 80 70 60 50 30 90 90
|
||||
90 90 90 90 50 90 30 30
|
||||
90 90 90 90 40 40 30 30
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, \
|
||||
= MAP.flatten()
|
||||
|
||||
# Might have wrong prediction on D5
|
||||
MAP.ignore_prediction(D5, enemy_scale=1, enemy_genre='Enemy')
|
||||
road_main = RoadGrids([B3, D3, [D5, E4], F5, G5, [G4, H5], H4, E3, F3, F2, F1])
|
||||
step_on = SelectedGrids([F3, E4])
|
||||
|
||||
|
||||
class Config:
|
||||
SUBMARINE = 0
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 40
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.fleet_2_step_on(step_on, roadblocks=[road_main]):
|
||||
return True
|
||||
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_5(self):
|
||||
boss = self.map.select(is_boss=True)
|
||||
if boss:
|
||||
if not self.check_accessibility(boss[0], fleet='boss'):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.fleet_2.clear_boss()
|
||||
|
||||
@@ -1,82 +1,82 @@
|
||||
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('9-4')
|
||||
MAP.shape = 'I6'
|
||||
MAP.camera_data = ['D3', 'F3', 'F4']
|
||||
MAP.camera_data_spawn_point = ['D4']
|
||||
MAP.map_data = """
|
||||
MB -- ME -- ++ ++ ++ -- MB
|
||||
-- ++ __ ME -- ME Me ME --
|
||||
Me -- ME -- ME -- __ ++ --
|
||||
ME -- ++ ++ -- -- Me __ ME
|
||||
SP -- MA ++ ME -- ++ ME --
|
||||
SP -- -- ME -- ME ++ -- MB
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
10 10 20 10 10 10 10 10 10
|
||||
10 10 10 20 10 10 10 10 10
|
||||
10 10 20 10 20 10 10 10 10
|
||||
20 10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10 10
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 2},
|
||||
{'battle': 5, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, I1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, \
|
||||
= MAP.flatten()
|
||||
|
||||
road_main = RoadGrids([A3, D6, [E5, F6], G4, I4])
|
||||
|
||||
|
||||
class Config:
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 40
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (150, 255 - 24),
|
||||
'width': (0.9, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 24, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'width': (0, 10),
|
||||
'wlen': 1000,
|
||||
}
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_5(self):
|
||||
boss = self.map.select(is_boss=True)
|
||||
if boss:
|
||||
if not self.check_accessibility(boss[0], fleet='boss'):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.fleet_2.clear_boss()
|
||||
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('9-4')
|
||||
MAP.shape = 'I6'
|
||||
MAP.camera_data = ['D3', 'F3', 'F4']
|
||||
MAP.camera_data_spawn_point = ['D4']
|
||||
MAP.map_data = """
|
||||
MB -- ME -- ++ ++ ++ -- MB
|
||||
-- ++ __ ME -- ME Me ME --
|
||||
Me -- ME -- ME -- __ ++ --
|
||||
ME -- ++ ++ -- -- Me __ ME
|
||||
SP -- MA ++ ME -- ++ ME --
|
||||
SP -- -- ME -- ME ++ -- MB
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
10 10 20 10 10 10 10 10 10
|
||||
10 10 10 20 10 10 10 10 10
|
||||
10 10 20 10 20 10 10 10 10
|
||||
20 10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10 10
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 3},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 2},
|
||||
{'battle': 5, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, G1, H1, I1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, \
|
||||
= MAP.flatten()
|
||||
|
||||
road_main = RoadGrids([A3, D6, [E5, F6], G4, I4])
|
||||
|
||||
|
||||
class Config:
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 40
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (150, 255 - 24),
|
||||
'width': (0.9, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 24, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
'width': (0, 10),
|
||||
'wlen': 1000,
|
||||
}
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
if self.clear_potential_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_5(self):
|
||||
boss = self.map.select(is_boss=True)
|
||||
if boss:
|
||||
if not self.check_accessibility(boss[0], fleet='boss'):
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.fleet_2.clear_boss()
|
||||
|
||||
Reference in New Issue
Block a user