1
0
mirror of https://gitee.com/sui-feng-cb/AzurLaneAutoScript1 synced 2026-03-26 19:47:53 +08:00

change CRLF to LF

This commit is contained in:
SaarChaffee
2022-04-09 23:31:09 +08:00
parent c99c2fbdd9
commit 303dd90fdc
302 changed files with 25647 additions and 25647 deletions

View File

@@ -1,88 +1,88 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('10-2') MAP = CampaignMap('10-2')
MAP.shape = 'H6' MAP.shape = 'H6'
MAP.camera_data = ['D2', 'E3', 'E4'] MAP.camera_data = ['D2', 'E3', 'E4']
MAP.camera_data_spawn_point = ['E4'] MAP.camera_data_spawn_point = ['E4']
MAP.map_data = """ MAP.map_data = """
Me -- ME ME -- ++ ME MB Me -- ME ME -- ++ ME MB
-- ++ ++ -- ME ++ ME ME -- ++ ++ -- ME ++ ME ME
-- SP ++ ++ __ ME Me ++ -- SP ++ ++ __ ME Me ++
-- SP ++ ++ -- ME Me ++ -- SP ++ ++ -- ME Me ++
-- ++ ++ -- ME ++ ME ME -- ++ ++ -- ME ++ ME ME
-- Me ME ME -- ++ ME MB -- Me ME ME -- ++ ME MB
""" """
MAP.weight_data = """ 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
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
""" """
MAP.spawn_data = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 4}, {'battle': 0, 'enemy': 4},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5}, {'battle': 5},
{'battle': 6, 'boss': 1}, {'battle': 6, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
= MAP.flatten() = MAP.flatten()
road_main = RoadGrids([B6, C6, D6, E5, F4, G2, [G1, H2], G3, G4, G5, [H5, G6]]) road_main = RoadGrids([B6, C6, D6, E5, F4, G2, [G1, H2], G3, G4, G5, [H5, G6]])
class Config: class Config:
DETECTION_BACKEND = 'perspective' DETECTION_BACKEND = 'perspective'
HOMO_STORAGE = ((7, 6), [(471.806, 82.471), (1249.283, 82.471), (420.72, 615.64), (1435.387, 615.64)]) 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 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 30
EDGE_LINES_HOUGHLINES_THRESHOLD = 30 EDGE_LINES_HOUGHLINES_THRESHOLD = 30
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.3 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.3
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (150, 255 - 24), 'height': (150, 255 - 24),
'width': (0.9, 10), 'width': (0.9, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 24, 255), 'height': (255 - 24, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
'width': (0, 10), 'width': (0, 10),
'wlen': 1000, 'wlen': 1000,
} }
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
self.fleet_2_push_forward() self.fleet_2_push_forward()
if self.clear_roadblocks([road_main]): if self.clear_roadblocks([road_main]):
return True return True
if self.clear_potential_roadblocks([road_main]): if self.clear_potential_roadblocks([road_main]):
return True return True
return self.battle_default() return self.battle_default()
def battle_6(self): def battle_6(self):
boss = self.map.select(is_boss=True) boss = self.map.select(is_boss=True)
if boss: if boss:
if not self.check_accessibility(boss[0], fleet='boss'): if not self.check_accessibility(boss[0], fleet='boss'):
if self.clear_roadblocks([road_main]): if self.clear_roadblocks([road_main]):
return True return True
return self.fleet_2.clear_boss() return self.fleet_2.clear_boss()

View File

@@ -1,72 +1,72 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('11-1') MAP = CampaignMap('11-1')
MAP.shape = 'H6' MAP.shape = 'H6'
MAP.camera_data = ['D3', 'E4'] MAP.camera_data = ['D3', 'E4']
MAP.camera_data_spawn_point = ['D4'] MAP.camera_data_spawn_point = ['D4']
MAP.map_data = """ MAP.map_data = """
-- -- ME -- ME -- -- MB -- -- ME -- ME -- -- MB
MB ME __ ME -- ++ ++ -- MB ME __ ME -- ++ ++ --
++ Me -- ++ ME MB ++ ME ++ Me -- ++ ME MB ++ ME
-- -- ++ ++ __ ME ME -- -- -- ++ ++ __ ME ME --
SP -- -- -- Me ME -- ++ SP -- -- -- Me ME -- ++
++ SP -- -- ++ -- MB ++ ++ SP -- -- ++ -- MB ++
""" """
MAP.weight_data = """ 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 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2}, {'battle': 0, 'enemy': 2},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5}, {'battle': 5},
{'battle': 6, 'boss': 1}, {'battle': 6, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
= MAP.flatten() = MAP.flatten()
road_main = RoadGrids([B2, B3, E5, F4, G4, H3]) road_main = RoadGrids([B2, B3, E5, F4, G4, H3])
class Config: class Config:
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 30 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 30
EDGE_LINES_HOUGHLINES_THRESHOLD = 30 EDGE_LINES_HOUGHLINES_THRESHOLD = 30
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.2 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.2
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_roadblocks([road_main]): if self.clear_roadblocks([road_main]):
return True return True
if self.clear_potential_roadblocks([road_main]): if self.clear_potential_roadblocks([road_main]):
return True return True
return self.battle_default() return self.battle_default()
def battle_6(self): def battle_6(self):
boss = self.map.select(is_boss=True) boss = self.map.select(is_boss=True)
if boss: if boss:
if not self.check_accessibility(boss[0], fleet='boss'): if not self.check_accessibility(boss[0], fleet='boss'):
if self.clear_roadblocks([road_main]): if self.clear_roadblocks([road_main]):
return True return True
return self.fleet_2.clear_boss() return self.fleet_2.clear_boss()

View File

@@ -1,90 +1,90 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('11-2') MAP = CampaignMap('11-2')
MAP.shape = 'K6' MAP.shape = 'K6'
MAP.camera_data = ['F4', 'G3', 'H4'] MAP.camera_data = ['F4', 'G3', 'H4']
MAP.camera_data_spawn_point = ['D4'] MAP.camera_data_spawn_point = ['D4']
MAP.map_data = """ MAP.map_data = """
++ ++ ++ -- -- ++ -- ME -- Me -- ++ ++ ++ -- -- ++ -- ME -- Me --
-- -- -- Me -- __ Me ++ ++ ME -- -- -- -- Me -- __ Me ++ ++ ME --
SP -- ++ -- -- ME ME MM ++ -- ME SP -- ++ -- -- ME ME MM ++ -- ME
SP -- ++ -- ME -- ++ ME -- MB MB SP -- ++ -- ME -- ++ ME -- MB MB
-- ++ ++ ++ __ ME ME -- ++ ++ ++ -- ++ ++ ++ __ ME ME -- ++ ++ ++
-- -- ME -- -- ++ -- ME -- -- MB -- -- ME -- -- ++ -- ME -- -- MB
""" """
MAP.weight_data = """ 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 90 90 90
90 90 90 90 90 90 90 10 05 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 90 90 25 20 15 90 90 90
90 90 90 40 35 30 90 90 90 90 90 90 90 90 40 35 30 90 90 90 90 90
""" """
MAP.spawn_data = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3}, {'battle': 0, 'enemy': 3},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5}, {'battle': 5},
{'battle': 6, 'boss': 1}, {'battle': 6, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
= MAP.flatten() = MAP.flatten()
road_main = RoadGrids([C6, F5, G5, H4, H6]) road_main = RoadGrids([C6, F5, G5, H4, H6])
class Config: class Config:
DETECTION_BACKEND = 'homography' DETECTION_BACKEND = 'homography'
HOMO_STORAGE = ((6, 6), [(579.064, 82.271), (1248.248, 82.271), (562.795, 616.581), (1438.283, 616.581)]) 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 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 30
EDGE_LINES_HOUGHLINES_THRESHOLD = 30 EDGE_LINES_HOUGHLINES_THRESHOLD = 30
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.2 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.2
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (150, 255 - 24), 'height': (150, 255 - 24),
'width': (0.9, 10), 'width': (0.9, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 24, 255), 'height': (255 - 24, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
'wlen': 1000, 'wlen': 1000,
} }
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
self.fleet_2_push_forward() self.fleet_2_push_forward()
if self.clear_roadblocks([road_main]): if self.clear_roadblocks([road_main]):
return True return True
if self.clear_potential_roadblocks([road_main]): if self.clear_potential_roadblocks([road_main]):
return True return True
return self.battle_default() return self.battle_default()
def battle_6(self): def battle_6(self):
boss = self.map.select(is_boss=True) boss = self.map.select(is_boss=True)
if boss: if boss:
if not self.check_accessibility(boss[0], fleet='boss'): if not self.check_accessibility(boss[0], fleet='boss'):
if self.clear_roadblocks([road_main]): if self.clear_roadblocks([road_main]):
return True return True
return self.fleet_2.clear_boss() return self.fleet_2.clear_boss()
def handle_boss_appear_refocus(self, preset=(-3, -2)): def handle_boss_appear_refocus(self, preset=(-3, -2)):
return super().handle_boss_appear_refocus(preset) return super().handle_boss_appear_refocus(preset)

View File

@@ -1,84 +1,84 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('11-3') MAP = CampaignMap('11-3')
MAP.shape = 'I7' MAP.shape = 'I7'
MAP.camera_data = ['D3', 'F5'] MAP.camera_data = ['D3', 'F5']
MAP.camera_data_spawn_point = ['D5'] MAP.camera_data_spawn_point = ['D5']
MAP.map_data = """ MAP.map_data = """
++ -- -- ME -- Me ++ ++ ++ ++ -- -- ME -- Me ++ ++ ++
__ ME ME -- Me -- ME -- __ __ ME ME -- Me -- ME -- __
-- -- ME -- -- ME -- ME -- -- -- ME -- -- ME -- ME --
MB ++ ++ -- ++ ++ ++ -- ME MB ++ ++ -- ++ ++ ++ -- ME
++ ++ ++ MB -- ME __ ME -- ++ ++ ++ MB -- ME __ ME --
SP -- -- Me -- ME ++ ME -- SP -- -- Me -- ME ++ ME --
SP -- -- -- ++ -- ME -- MB SP -- -- -- ++ -- ME -- MB
""" """
MAP.weight_data = """ 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 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3}, {'battle': 0, 'enemy': 3},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5}, {'battle': 5},
{'battle': 6, 'boss': 1}, {'battle': 6, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
= MAP.flatten() = MAP.flatten()
road_main = RoadGrids([C2, D6, F6, G7]) road_main = RoadGrids([C2, D6, F6, G7])
class Config: class Config:
DETECTION_BACKEND = 'homography' DETECTION_BACKEND = 'homography'
HOMO_STORAGE = ((5, 4), [(133.207, 81.356), (696.903, 81.356), (44.566, 406.051), (705.278, 406.051)]) 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 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 30
EDGE_LINES_HOUGHLINES_THRESHOLD = 30 EDGE_LINES_HOUGHLINES_THRESHOLD = 30
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.2 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.2
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (150, 255 - 24), 'height': (150, 255 - 24),
'width': (0.9, 10), 'width': (0.9, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 24, 255), 'height': (255 - 24, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
'width': (0, 10), 'width': (0, 10),
'wlen': 1000, 'wlen': 1000,
} }
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_roadblocks([road_main]): if self.clear_roadblocks([road_main]):
return True return True
if self.clear_potential_roadblocks([road_main]): if self.clear_potential_roadblocks([road_main]):
return True return True
return self.battle_default() return self.battle_default()
def battle_6(self): def battle_6(self):
if self.clear_roadblocks([road_main]): if self.clear_roadblocks([road_main]):
return True return True
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,92 +1,92 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('11-4') MAP = CampaignMap('11-4')
MAP.shape = 'J8' MAP.shape = 'J8'
MAP.camera_data = ['D2', 'D6', 'G2', 'G6'] MAP.camera_data = ['D2', 'D6', 'G2', 'G6']
MAP.camera_data_spawn_point = ['D2', 'G2'] MAP.camera_data_spawn_point = ['D2', 'G2']
MAP.map_data = """ MAP.map_data = """
MB MB ++ -- -- -- ++ MB -- -- MB MB ++ -- -- -- ++ MB -- --
-- -- ++ ME -- Me ++ -- -- ME -- -- ++ ME -- Me ++ -- -- ME
ME __ ME -- ++ -- __ -- ME -- ME __ ME -- ++ -- __ -- ME --
-- ++ -- -- SP SP -- Me -- -- -- ++ -- -- SP SP -- Me -- --
MB -- ME -- -- -- -- ++ ++ ++ MB -- ME -- -- -- -- ++ ++ ++
++ ++ ++ -- Me -- Me __ -- ME ++ ++ ++ -- Me -- Me __ -- ME
-- -- ME __ -- ++ -- ++ ME -- -- -- ME __ -- ++ -- ++ ME --
MB -- -- ME -- ++ -- ME -- MB MB -- -- ME -- ++ -- ME -- MB
""" """
MAP.weight_data = """ 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
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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2}, {'battle': 0, 'enemy': 2},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5}, {'battle': 5},
{'battle': 6, 'boss': 1}, {'battle': 6, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \
A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, \ A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, \
= MAP.flatten() = MAP.flatten()
step_on = SelectedGrids([C3]) step_on = SelectedGrids([C3])
road_boss = RoadGrids([C3, H4, [C5, C7], G6, G8]) road_boss = RoadGrids([C3, H4, [C5, C7], G6, G8])
class Config: class Config:
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 35 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 35
EDGE_LINES_HOUGHLINES_THRESHOLD = 35 EDGE_LINES_HOUGHLINES_THRESHOLD = 35
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.3 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.3
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (150, 255 - 24), 'height': (150, 255 - 24),
'width': (0.9, 10), 'width': (0.9, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 24, 255), 'height': (255 - 24, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
'width': (0, 10), 'width': (0, 10),
'wlen': 1000, 'wlen': 1000,
} }
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.fleet_2_step_on(step_on, roadblocks=[road_boss]): if self.fleet_2_step_on(step_on, roadblocks=[road_boss]):
return True return True
if self.clear_roadblocks([road_boss]): if self.clear_roadblocks([road_boss]):
return True return True
if self.clear_potential_roadblocks([road_boss]): if self.clear_potential_roadblocks([road_boss]):
return True return True
return self.battle_default() return self.battle_default()
def battle_6(self): def battle_6(self):
boss = self.map.select(is_boss=True) boss = self.map.select(is_boss=True)
if boss: if boss:
if not self.check_accessibility(boss[0], fleet='boss'): if not self.check_accessibility(boss[0], fleet='boss'):
return self.clear_roadblocks([road_boss]) return self.clear_roadblocks([road_boss])
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,87 +1,87 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap() MAP = CampaignMap()
MAP.shape = 'H6' MAP.shape = 'H6'
MAP.camera_data = ['D2', 'D4', 'E2', 'E4'] MAP.camera_data = ['D2', 'D4', 'E2', 'E4']
MAP.camera_data_spawn_point = ['D4', 'E4'] MAP.camera_data_spawn_point = ['D4', 'E4']
MAP.map_data = """ MAP.map_data = """
ME -- ME Me -- -- ++ ++ ME -- ME Me -- -- ++ ++
++ ME -- ++ ME ME ME ME ++ ME -- ++ ME ME ME ME
++ __ Me ++ ++ __ Me -- ++ __ Me ++ ++ __ Me --
-- ME -- ME ME ME -- Me -- ME -- ME ME ME -- Me
ME ++ ++ SP SP -- ++ MB ME ++ ++ SP SP -- ++ MB
ME -- Me ME -- Me ++ MB ME -- Me ME -- Me ++ MB
""" """
MAP.weight_data = """ 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 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2}, {'battle': 0, 'enemy': 2},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5}, {'battle': 5},
{'battle': 6, 'boss': 1}, {'battle': 6, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
= MAP.flatten() = MAP.flatten()
road_main = RoadGrids([F4, H4]) road_main = RoadGrids([F4, H4])
class Config: class Config:
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 30 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 30
EDGE_LINES_HOUGHLINES_THRESHOLD = 30 EDGE_LINES_HOUGHLINES_THRESHOLD = 30
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.2 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.2
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (120, 255 - 49), 'height': (120, 255 - 49),
'width': (1.5, 10), 'width': (1.5, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 49, 255), 'height': (255 - 49, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
'wlen': 1000 'wlen': 1000
} }
HOMO_EDGE_COLOR_RANGE = (0, 49) HOMO_EDGE_COLOR_RANGE = (0, 49)
MAP_SWIPE_MULTIPLY = 1.493 MAP_SWIPE_MULTIPLY = 1.493
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.443 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.443
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
self.fleet_2_push_forward() self.fleet_2_push_forward()
if self.clear_roadblocks([road_main]): if self.clear_roadblocks([road_main]):
return True return True
if self.clear_potential_roadblocks([road_main]): if self.clear_potential_roadblocks([road_main]):
return True return True
return self.battle_default() return self.battle_default()
def battle_6(self): def battle_6(self):
boss = self.map.select(is_boss=True) boss = self.map.select(is_boss=True)
if boss: if boss:
if not self.check_accessibility(boss[0], fleet='boss'): if not self.check_accessibility(boss[0], fleet='boss'):
if self.clear_roadblocks([road_main]): if self.clear_roadblocks([road_main]):
return True return True
return self.fleet_2.clear_boss() return self.fleet_2.clear_boss()

View File

@@ -1,68 +1,68 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from campaign.campaign_main.campaign_12_1 import Config from campaign.campaign_main.campaign_12_1 import Config
MAP = CampaignMap() MAP = CampaignMap()
MAP.shape = 'I7' MAP.shape = 'I7'
MAP.camera_data = ['D2', 'D5', 'F2', 'F5'] MAP.camera_data = ['D2', 'D5', 'F2', 'F5']
MAP.camera_data_spawn_point = ['D2', 'D5'] MAP.camera_data_spawn_point = ['D2', 'D5']
MAP.map_data = """ MAP.map_data = """
++ MB ME ME ++ -- ME Me -- ++ MB ME ME ++ -- ME Me --
++ -- Me -- Me -- Me -- ++ ++ -- Me -- Me -- Me -- ++
MB ME ++ ME SP ME -- ME ++ MB ME ++ ME SP ME -- ME ++
MB __ ME -- SP ++ ++ __ Me MB __ ME -- SP ++ ++ __ Me
++ -- -- Me ME -- ME -- ME ++ -- -- Me ME -- ME -- ME
-- ME ME ++ -- -- Me ME -- -- ME ME ++ -- -- Me ME --
ME -- Me -- ME ME -- ++ ++ ME -- Me -- ME ME -- ++ ++
""" """
MAP.weight_data = """ 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 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3}, {'battle': 0, 'enemy': 3},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5}, {'battle': 5},
{'battle': 6, 'boss': 1}, {'battle': 6, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
= MAP.flatten() = MAP.flatten()
road_main = RoadGrids([[C4, D5], B3]) road_main = RoadGrids([[C4, D5], B3])
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_roadblocks([road_main]): if self.clear_roadblocks([road_main]):
return True return True
if self.clear_potential_roadblocks([road_main]): if self.clear_potential_roadblocks([road_main]):
return True return True
return self.battle_default() return self.battle_default()
def battle_6(self): def battle_6(self):
boss = self.map.select(is_boss=True) boss = self.map.select(is_boss=True)
if boss: if boss:
if not self.check_accessibility(boss[0], fleet='boss'): if not self.check_accessibility(boss[0], fleet='boss'):
if self.clear_roadblocks([road_main]): if self.clear_roadblocks([road_main]):
return True return True
return self.fleet_2.clear_boss() return self.fleet_2.clear_boss()

View File

@@ -1,68 +1,68 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from campaign.campaign_main.campaign_12_1 import Config from campaign.campaign_main.campaign_12_1 import Config
MAP = CampaignMap() MAP = CampaignMap()
MAP.shape = 'J7' MAP.shape = 'J7'
MAP.camera_data = ['D2', 'D5', 'G2', 'G5'] MAP.camera_data = ['D2', 'D5', 'G2', 'G5']
MAP.camera_data_spawn_point = ['G5', 'D5'] MAP.camera_data_spawn_point = ['G5', 'D5']
MAP.map_data = """ MAP.map_data = """
MB ++ ++ ++ ME MB -- Me -- ME MB ++ ++ ++ ME MB -- Me -- ME
MB -- ME -- -- ME -- -- ++ MB MB -- ME -- -- ME -- -- ++ MB
-- ME __ ++ Me -- ME ++ ++ -- -- ME __ ++ Me -- ME ++ ++ --
MB -- ME -- -- ME -- __ Me ME MB -- ME -- -- ME -- __ Me ME
-- ME -- ME Me -- Me -- ME ++ -- ME -- ME Me -- Me -- ME ++
++ -- ME Me -- ++ Me -- -- ++ ++ -- ME Me -- ++ Me -- -- ++
++ ME -- ME SP SP -- ME -- ME ++ ME -- ME SP SP -- ME -- ME
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3}, {'battle': 0, 'enemy': 3},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5}, {'battle': 5},
{'battle': 6, 'boss': 1}, {'battle': 6, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \
= MAP.flatten() = MAP.flatten()
road_main = RoadGrids([H1, J1]) road_main = RoadGrids([H1, J1])
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_roadblocks([road_main]): if self.clear_roadblocks([road_main]):
return True return True
if self.clear_potential_roadblocks([road_main]): if self.clear_potential_roadblocks([road_main]):
return True return True
return self.battle_default() return self.battle_default()
def battle_6(self): def battle_6(self):
boss = self.map.select(is_boss=True) boss = self.map.select(is_boss=True)
if boss: if boss:
if not self.check_accessibility(boss[0], fleet='boss'): if not self.check_accessibility(boss[0], fleet='boss'):
if self.clear_roadblocks([road_main]): if self.clear_roadblocks([road_main]):
return True return True
return self.fleet_2.clear_boss() return self.fleet_2.clear_boss()

View File

@@ -1,78 +1,78 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('13-1') MAP = CampaignMap('13-1')
MAP.shape = 'H6' MAP.shape = 'H6'
MAP.camera_data = ['D2', 'D4', 'E2', 'E4'] MAP.camera_data = ['D2', 'D4', 'E2', 'E4']
MAP.camera_data_spawn_point = ['D4'] MAP.camera_data_spawn_point = ['D4']
MAP.map_data = """ MAP.map_data = """
ME -- ME Me ++ ++ ME MB ME -- ME Me ++ ++ ME MB
++ ME -- ME -- ++ ME -- ++ ME -- ME -- ++ ME --
++ __ Me ME -- -- Me -- ++ __ Me ME -- -- Me --
ME ME ++ ME ME -- __ -- ME ME ++ ME ME -- __ --
ME -- SP SP -- -- ++ -- ME -- SP SP -- -- ++ --
ME -- Me ME Me Me ++ MB ME -- Me ME Me Me ++ MB
""" """
MAP.weight_data = """ 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 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2}, {'battle': 0, 'enemy': 2},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5}, {'battle': 5},
{'battle': 6, 'boss': 1}, {'battle': 6, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (120, 255 - 49), 'height': (120, 255 - 49),
'width': (1.5, 10), 'width': (1.5, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 49, 255), 'height': (255 - 49, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
'wlen': 1000 'wlen': 1000
} }
HOMO_EDGE_COLOR_RANGE = (0, 49) HOMO_EDGE_COLOR_RANGE = (0, 49)
MAP_SWIPE_MULTIPLY = 1.519 MAP_SWIPE_MULTIPLY = 1.519
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.469 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.469
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=1): if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=1):
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=0): if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=0):
return True return True
return self.battle_default() return self.battle_default()
def battle_6(self): def battle_6(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,68 +1,68 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .campaign_13_1 import Config as ConfigBase from .campaign_13_1 import Config as ConfigBase
MAP = CampaignMap('13-2') MAP = CampaignMap('13-2')
MAP.shape = 'I7' MAP.shape = 'I7'
MAP.camera_data = ['D2', 'D5', 'F2', 'F5'] MAP.camera_data = ['D2', 'D5', 'F2', 'F5']
MAP.camera_data_spawn_point = ['D2', 'D5'] MAP.camera_data_spawn_point = ['D2', 'D5']
MAP.map_data = """ MAP.map_data = """
++ Me ME ME ++ Me ME Me -- ++ Me ME ME ++ Me ME Me --
++ -- -- -- -- -- ++ ++ ++ ++ -- -- -- -- -- ++ ++ ++
MB -- SP ++ ++ -- ME ME ME MB -- SP ++ ++ -- ME ME ME
MB -- SP -- ++ -- -- __ Me MB -- SP -- ++ -- -- __ Me
ME __ -- -- ME -- ME -- -- ME __ -- -- ME -- ME -- --
ME ME ME ++ ME -- Me ME MB ME ME ME ++ ME -- Me ME MB
ME -- Me Me ME ME Me ++ ++ ME -- Me Me ME ME Me ++ ++
""" """
MAP.weight_data = """ 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 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3}, {'battle': 0, 'enemy': 3},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5}, {'battle': 5},
{'battle': 6, 'boss': 1}, {'battle': 6, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
pass pass
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=1): if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=1):
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=0): if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=0):
return True return True
return self.battle_default() return self.battle_default()
def battle_6(self): def battle_6(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,72 +1,72 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .campaign_13_1 import Config as ConfigBase from .campaign_13_1 import Config as ConfigBase
MAP = CampaignMap('13-3') MAP = CampaignMap('13-3')
MAP.shape = 'J7' MAP.shape = 'J7'
MAP.camera_data = ['D2', 'D5', 'G2', 'G5'] MAP.camera_data = ['D2', 'D5', 'G2', 'G5']
MAP.camera_data_spawn_point = ['G5', 'D5'] MAP.camera_data_spawn_point = ['G5', 'D5']
MAP.map_data = """ MAP.map_data = """
++ ++ ++ ME ME MB -- Me ++ -- ++ ++ ++ ME ME MB -- Me ++ --
MB Me ME ME -- ME -- -- ++ MB MB Me ME ME -- ME -- -- ++ MB
MB -- -- -- Me ++ ME __ -- -- MB -- -- -- Me ++ ME __ -- --
MB __ -- ++ ++ ME -- -- Me ME MB __ -- ++ ++ ME -- -- Me ME
ME ME -- ++ ++ -- Me -- ME ++ ME ME -- ++ ++ -- Me -- ME ++
++ -- ME Me SP SP Me -- -- ME ++ -- ME Me SP SP Me -- -- ME
++ ME -- ME -- -- -- ME -- ME ++ ME -- ME -- -- -- ME -- ME
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3}, {'battle': 0, 'enemy': 3},
{'battle': 1, 'enemy': 3}, {'battle': 1, 'enemy': 3},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5}, {'battle': 5},
{'battle': 6, 'boss': 1}, {'battle': 6, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
pass pass
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=1): if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=1):
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
if self.clear_siren(): if self.clear_siren():
return True return True
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=0): if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=0):
return True return True
return self.battle_default() return self.battle_default()
def battle_6(self): def battle_6(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,91 +1,91 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from .campaign_13_1 import Config as ConfigBase from .campaign_13_1 import Config as ConfigBase
MAP = CampaignMap('13-4') MAP = CampaignMap('13-4')
MAP.shape = 'K8' MAP.shape = 'K8'
MAP.camera_data = ['D2', 'D4', 'D6', 'H2', 'H4', 'H6'] MAP.camera_data = ['D2', 'D4', 'D6', 'H2', 'H4', 'H6']
MAP.camera_data_spawn_point = ['D2', 'D6'] MAP.camera_data_spawn_point = ['D2', 'D6']
MAP.map_data = """ MAP.map_data = """
MB ME ME -- ME ++ ++ ++ MB MB ++ MB ME ME -- ME ++ ++ ++ MB MB ++
MB __ ME ME ME -- __ MA -- Me ++ MB __ ME ME ME -- __ MA -- Me ++
ME -- -- Me Me -- Me Me -- Me ME ME -- -- Me Me -- Me Me -- Me ME
++ SP -- ME ++ Me -- -- -- -- ME ++ SP -- ME ++ Me -- -- -- -- ME
++ SP ME -- ME -- -- ME ++ ++ -- ++ SP ME -- ME -- -- ME ++ ++ --
++ -- -- -- Me -- ME Me ++ ++ ME ++ -- -- -- Me -- ME Me ++ ++ ME
ME ME Me -- -- -- Me -- -- ME -- ME ME Me -- -- -- Me -- -- ME --
-- ME Me ME -- -- ++ ++ -- ME -- -- ME Me ME -- -- ++ ++ -- ME --
""" """
MAP.weight_data = """ MAP.weight_data = """
50 50 90 90 90 50 50 50 50 50 50 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 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 50 50 50 50 50 50 50 50 90 50
90 90 50 50 50 50 50 50 50 90 50 90 90 50 50 50 50 50 50 50 90 50
""" """
MAP.spawn_data = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3}, {'battle': 0, 'enemy': 3},
{'battle': 1, 'enemy': 3}, {'battle': 1, 'enemy': 3},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 2}, {'battle': 3, 'enemy': 2},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5, 'enemy': 1}, {'battle': 5, 'enemy': 1},
{'battle': 6}, {'battle': 6},
{'battle': 7, 'boss': 1}, {'battle': 7, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \
A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, K8, \ A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, K8, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
EDGE_LINES_HOUGHLINES_THRESHOLD = 40 EDGE_LINES_HOUGHLINES_THRESHOLD = 40
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (150, 255 - 24), 'height': (150, 255 - 24),
'width': (0.9, 10), 'width': (0.9, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 24, 255), 'height': (255 - 24, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
'width': (0, 10), 'width': (0, 10),
'wlen': 1000, 'wlen': 1000,
} }
# step_on = SelectedGrids([A7, B1, B7, C7, D2, D3, G7, J2, K4, K6]) # 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]) # road_main = RoadGrids([A7, B1, B7, C7, D2, D3, [G7, J2], K4, K6])
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=0): if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=0):
return True return True
return self.battle_default() return self.battle_default()
def battle_3(self): def battle_3(self):
self.pick_up_ammo() self.pick_up_ammo()
if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=0): if self.clear_filter_enemy('2L > 2M > 3L > 2E > 3E > 2C > 3C > 3M', preserve=0):
return True return True
return self.battle_default() return self.battle_default()
def battle_7(self): def battle_7(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,53 +1,53 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from campaign.campaign_main.campaign_2_1 import Config from campaign.campaign_main.campaign_2_1 import Config
MAP = CampaignMap() MAP = CampaignMap()
MAP.shape = 'F5' MAP.shape = 'F5'
MAP.camera_data = ['D3'] MAP.camera_data = ['D3']
MAP.camera_data_spawn_point = ['D1', 'D3'] MAP.camera_data_spawn_point = ['D1', 'D3']
MAP.map_data = """ MAP.map_data = """
SP -- ME -- MB ++ SP -- ME -- MB ++
-- ME -- ME ++ ++ -- ME -- ME ++ ++
-- -- ME -- -- ++ -- -- ME -- -- ++
SP -- -- ME ME -- SP -- -- ME ME --
++ ++ ++ -- ME MM ++ ++ ++ -- ME MM
""" """
MAP.weight_data = """ MAP.weight_data = """
10 10 11 10 10 10 10 10 11 10 10 10
50 50 10 12 10 10 50 50 10 12 10 10
20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 30 30 20 20 20 20 30 30
30 30 30 30 30 30 30 30 30 30 30 30
""" """
MAP.spawn_data = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'mystery': 1}, {'battle': 0, 'enemy': 2, 'mystery': 1},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 2, 'boss': 1}, {'battle': 3, 'enemy': 2, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, \ A1, B1, C1, D1, E1, F1, \
A2, B2, C2, D2, E2, F2, \ A2, B2, C2, D2, E2, F2, \
A3, B3, C3, D3, E3, F3, \ A3, B3, C3, D3, E3, F3, \
A4, B4, C4, D4, E4, F4, \ A4, B4, C4, D4, E4, F4, \
A5, B5, C5, D5, E5, F5, \ A5, B5, C5, D5, E5, F5, \
= MAP.flatten() = MAP.flatten()
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
self.clear_all_mystery() self.clear_all_mystery()
return self.battle_default() return self.battle_default()
def battle_3(self): def battle_3(self):
self.clear_all_mystery() self.clear_all_mystery()
if not self.check_accessibility(E1, fleet='boss'): if not self.check_accessibility(E1, fleet='boss'):
return self.battle_default() return self.battle_default()
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,53 +1,53 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from campaign.campaign_main.campaign_2_1 import Config as ConfigBase from campaign.campaign_main.campaign_2_1 import Config as ConfigBase
MAP = CampaignMap() MAP = CampaignMap()
MAP.shape = 'G4' MAP.shape = 'G4'
MAP.camera_data = ['D2'] MAP.camera_data = ['D2']
MAP.camera_data_spawn_point = ['D2'] MAP.camera_data_spawn_point = ['D2']
MAP.map_data = """ MAP.map_data = """
-- ++ ++ ++ ME ME MB -- ++ ++ ++ ME ME MB
SP -- ME -- -- ME -- SP -- ME -- -- ME --
-- -- ME -- ME ++ ++ -- -- ME -- ME ++ ++
-- ME -- SP -- MA ++ -- ME -- SP -- MA ++
""" """
MAP.weight_data = """ MAP.weight_data = """
20 20 20 20 12 11 10 20 20 20 20 12 11 10
20 20 20 20 10 10 10 20 20 20 20 10 10 10
20 20 20 20 30 20 20 20 20 20 20 30 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20
""" """
MAP.spawn_data = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2}, {'battle': 0, 'enemy': 2},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 2, 'boss': 1}, {'battle': 3, 'enemy': 2, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, \ A1, B1, C1, D1, E1, F1, G1, \
A2, B2, C2, D2, E2, F2, G2, \ A2, B2, C2, D2, E2, F2, G2, \
A3, B3, C3, D3, E3, F3, G3, \ A3, B3, C3, D3, E3, F3, G3, \
A4, B4, C4, D4, E4, F4, G4, \ A4, B4, C4, D4, E4, F4, G4, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# Don't know why 2-4 is slimmer # Don't know why 2-4 is slimmer
# 2-1 is /_\ and 2-4 is like |_| # 2-1 is /_\ and 2-4 is like |_|
MID_DIFF_RANGE_H = (121 - 3, 121 + 3) MID_DIFF_RANGE_H = (121 - 3, 121 + 3)
MID_DIFF_RANGE_V = (121 - 3, 121 + 3) MID_DIFF_RANGE_V = (121 - 3, 121 + 3)
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
return self.battle_default() return self.battle_default()
def battle_3(self): def battle_3(self):
if not self.check_accessibility(G1, fleet='boss'): if not self.check_accessibility(G1, fleet='boss'):
return self.battle_default() return self.battle_default()
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,77 +1,77 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from campaign.campaign_main.campaign_3_1 import Config as Config31 from campaign.campaign_main.campaign_3_1 import Config as Config31
MAP = CampaignMap() MAP = CampaignMap()
MAP.shape = 'H4' MAP.shape = 'H4'
MAP.camera_data = ['E2'] MAP.camera_data = ['E2']
MAP.camera_data_spawn_point = ['D1', 'D2'] MAP.camera_data_spawn_point = ['D1', 'D2']
# WIKI的图是错的: https://wiki.biligame.com/blhx/3-4 # WIKI的图是错的: https://wiki.biligame.com/blhx/3-4
# A3有岛, 假图害人 # A3有岛, 假图害人
MAP.map_data = """ MAP.map_data = """
SP -- -- ME -- ++ ++ ++ SP -- -- ME -- ++ ++ ++
SP ME -- ME -- MA ++ ++ SP ME -- ME -- MA ++ ++
++ -- ME __ ME ME -- MB ++ -- ME __ ME ME -- MB
SP ME -- ME -- -- ME MB SP ME -- ME -- -- ME MB
""" """
MAP.weight_data = """ MAP.weight_data = """
40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40
40 40 40 30 30 30 30 30 40 40 40 30 30 30 30 30
40 40 30 30 20 10 10 09 40 40 30 30 20 10 10 09
40 40 30 20 20 10 10 09 40 40 30 20 20 10 10 09
""" """
MAP.spawn_data = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2}, {'battle': 0, 'enemy': 2},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1, 'boss': 1}, {'battle': 3, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
= MAP.flatten() = MAP.flatten()
class Config(Config31): class Config(Config31):
MAP_MYSTERY_HAS_CARRIER = False MAP_MYSTERY_HAS_CARRIER = False
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (120, 255 - 75), 'height': (120, 255 - 75),
'width': (0.9, 10), 'width': (0.9, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 40, 255), 'height': (255 - 40, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
'wlen': 1000 'wlen': 1000
} }
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
self.fleet_2_push_forward() self.fleet_2_push_forward()
if self.fleet_2_rescue(H3): if self.fleet_2_rescue(H3):
return True return True
return self.battle_default() return self.battle_default()
def battle_3(self): def battle_3(self):
if not self.check_accessibility(H3, fleet='boss'): if not self.check_accessibility(H3, fleet='boss'):
return self.battle_default() return self.battle_default()
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()
# def handle_boss_appear_refocus(self): # def handle_boss_appear_refocus(self):
# for data in self.map.spawn_data: # for data in self.map.spawn_data:
# if data.get('battle') == self.battle_count and data.get('boss', 0): # if data.get('battle') == self.battle_count and data.get('boss', 0):
# self.map_swipe((-3, -1)) # self.map_swipe((-3, -1))
# #
# return super().handle_boss_appear_refocus() # return super().handle_boss_appear_refocus()

View File

@@ -1,63 +1,63 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('8-1') MAP = CampaignMap('8-1')
MAP.shape = 'I3' MAP.shape = 'I3'
MAP.camera_data = ['D1', 'F1'] MAP.camera_data = ['D1', 'F1']
MAP.camera_data_spawn_point = ['D1', 'F1'] MAP.camera_data_spawn_point = ['D1', 'F1']
MAP.map_data = """ MAP.map_data = """
SP -- ++ ++ ME -- ME MB ++ SP -- ++ ++ ME -- ME MB ++
SP -- ++ ++ ME -- ME -- ME SP -- ++ ++ ME -- ME -- ME
-- ME ME -- ME ++ ME ME MB -- ME ME -- ME ++ ME ME MB
""" """
MAP.weight_data = """ MAP.weight_data = """
50 50 50 50 50 50 21 30 50 50 50 50 50 50 50 21 30 50
50 50 50 50 25 24 20 12 11 50 50 50 50 25 24 20 12 11
50 45 40 31 30 50 22 10 20 50 45 40 31 30 50 22 10 20
""" """
MAP.spawn_data = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3}, {'battle': 0, 'enemy': 3},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1, 'boss': 1}, {'battle': 4, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 35 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 35
EDGE_LINES_HOUGHLINES_THRESHOLD = 35 EDGE_LINES_HOUGHLINES_THRESHOLD = 35
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.3 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.3
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (120, 255 - 49), 'height': (120, 255 - 49),
'width': (0.9, 10), 'width': (0.9, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 49, 255), 'height': (255 - 49, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
'width': (0, 10), 'width': (0, 10),
'wlen': 1000, 'wlen': 1000,
} }
HOMO_EDGE_COLOR_RANGE = (0, 49) HOMO_EDGE_COLOR_RANGE = (0, 49)
MAP_SWIPE_MULTIPLY = 1.722 MAP_SWIPE_MULTIPLY = 1.722
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
self.fleet_2_push_forward() self.fleet_2_push_forward()
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.brute_clear_boss() return self.brute_clear_boss()

View File

@@ -1,73 +1,73 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .campaign_8_1 import Config as ConfigBase from .campaign_8_1 import Config as ConfigBase
MAP = CampaignMap('8-3') MAP = CampaignMap('8-3')
MAP.shape = 'H5' MAP.shape = 'H5'
MAP.camera_data = ['D2', 'D3', 'E3'] MAP.camera_data = ['D2', 'D3', 'E3']
MAP.camera_data_spawn_point = ['E3'] MAP.camera_data_spawn_point = ['E3']
MAP.map_data = """ MAP.map_data = """
MB ME -- ++ ++ ME -- MB MB ME -- ++ ++ ME -- MB
ME ME ME -- ++ ME ME -- ME ME ME -- ++ ME ME --
-- ME -- ME ME -- ME ME -- ME -- ME ME -- ME ME
ME ++ ++ -- ME ++ ++ ME ME ++ ++ -- ME ++ ++ ME
MM ++ ++ ME ME SP -- SP MM ++ ++ ME ME SP -- SP
""" """
MAP.weight_data = """ MAP.weight_data = """
50 35 20 90 90 40 50 50 50 35 20 90 90 40 50 50
30 40 25 90 90 25 30 50 30 40 25 90 90 25 30 50
20 20 20 10 10 20 20 35 20 20 20 10 10 20 20 35
50 90 90 60 60 90 90 90 50 90 90 60 60 90 90 90
90 90 90 70 80 90 90 90 90 90 90 70 80 90 90 90
""" """
MAP.spawn_data = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3}, {'battle': 0, 'enemy': 3},
{'battle': 1, 'enemy': 2, 'mystery': 1}, {'battle': 1, 'enemy': 2, 'mystery': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1, 'boss': 1}, {'battle': 4, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
= MAP.flatten() = MAP.flatten()
road_A1 = RoadGrids([[A2, B1], [B1, B2, B3], [A2, B2, C2], [B3, C2], D3]) 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_H1 = RoadGrids([[F1, G2, H3], [F1, G2, G3], [F2, G2, H3], [F2, G3], E3])
road_MY = RoadGrids([A4, [A2, B3]]) road_MY = RoadGrids([A4, [A2, B3]])
road_middle = RoadGrids([E5, [D5, E4], D3]) \ road_middle = RoadGrids([E5, [D5, E4], D3]) \
.combine(RoadGrids([H4, H3, [F1, G2, G3], [F2, G3], E3])) .combine(RoadGrids([H4, H3, [F1, G2, G3], [F2, G3], E3]))
step_on = SelectedGrids([D3, E3]) step_on = SelectedGrids([D3, E3])
class Config(ConfigBase): class Config(ConfigBase):
pass pass
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.fleet_2_step_on(step_on, roadblocks=[road_middle]): if self.fleet_2_step_on(step_on, roadblocks=[road_middle]):
return True return True
self.clear_all_mystery() self.clear_all_mystery()
if self.clear_roadblocks([road_A1, road_H1]): if self.clear_roadblocks([road_A1, road_H1]):
return True return True
if self.mystery_count < 1 and self.clear_roadblocks([road_MY]): if self.mystery_count < 1 and self.clear_roadblocks([road_MY]):
return True return True
if self.clear_potential_roadblocks([road_A1, road_H1]): if self.clear_potential_roadblocks([road_A1, road_H1]):
return True return True
if self.clear_first_roadblocks([road_A1, road_H1]): if self.clear_first_roadblocks([road_A1, road_H1]):
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.brute_clear_boss() return self.brute_clear_boss()

View File

@@ -1,79 +1,79 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .campaign_8_1 import Config as ConfigBase from .campaign_8_1 import Config as ConfigBase
MAP = CampaignMap('8-3') MAP = CampaignMap('8-3')
MAP.shape = 'H6' MAP.shape = 'H6'
MAP.camera_data = ['D3', 'D4', 'E3', 'E4'] MAP.camera_data = ['D3', 'D4', 'E3', 'E4']
MAP.map_data = """ MAP.map_data = """
MB -- ME ME ME ME -- MB MB -- ME ME ME ME -- MB
-- ME MM ++ ++ __ ME -- -- ME MM ++ ++ __ ME --
ME ++ ++ SP -- ME -- ME ME ++ ++ SP -- ME -- ME
ME MA ++ -- SP ++ ME ME ME MA ++ -- SP ++ ME ME
MM ME __ ME ++ ++ ME -- MM ME __ ME ++ ++ ME --
MB -- ME ME ME ME -- MB MB -- ME ME ME ME -- MB
""" """
MAP.weight_data = """ MAP.weight_data = """
50 50 40 90 90 30 50 50 50 50 40 90 90 30 50 50
50 50 50 90 90 20 40 50 50 50 50 90 90 20 40 50
40 90 90 10 10 10 20 20 40 90 90 10 10 10 20 20
30 90 90 10 10 90 40 30 30 90 90 10 10 90 40 30
20 20 20 10 90 90 40 50 20 20 20 10 90 90 40 50
50 30 30 80 80 80 50 50 50 30 30 80 80 80 50 50
""" """
MAP.spawn_data = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3}, {'battle': 0, 'enemy': 3},
{'battle': 1, 'enemy': 2, 'mystery': 1}, {'battle': 1, 'enemy': 2, 'mystery': 1},
{'battle': 2, 'enemy': 2, 'mystery': 1}, {'battle': 2, 'enemy': 2, 'mystery': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1, 'boss': 1}, {'battle': 4, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
= MAP.flatten() = MAP.flatten()
road_middle = RoadGrids([D5, F3]) road_middle = RoadGrids([D5, F3])
step_on = SelectedGrids([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. # 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(). # Here use separate roads instead of RoadGrids.combine().
road_H1 = RoadGrids([F3, [F1, G2, H3]]) road_H1 = RoadGrids([F3, [F1, G2, H3]])
road_A6 = RoadGrids([D5, [B5, C6]]) road_A6 = RoadGrids([D5, [B5, C6]])
road_A1_left = RoadGrids([A4, A3]) road_A1_left = RoadGrids([A4, A3])
road_A1_upper = RoadGrids([F1, E1, D1, C1]) road_A1_upper = RoadGrids([F1, E1, D1, C1])
road_H6_bottom = RoadGrids([D6, E6, F6]) road_H6_bottom = RoadGrids([D6, E6, F6])
road_H6_right = RoadGrids([[H3, G4], [G4, H4], [H4, G5]]) road_H6_right = RoadGrids([[H3, G4], [G4, H4], [H4, G5]])
road_MY = RoadGrids([[B2, C1]]) road_MY = RoadGrids([[B2, C1]])
class Config(ConfigBase): class Config(ConfigBase):
pass pass
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.fleet_2_step_on(step_on, roadblocks=[road_middle]): if self.fleet_2_step_on(step_on, roadblocks=[road_middle]):
return True return True
self.clear_all_mystery() self.clear_all_mystery()
if self.clear_roadblocks([road_A6, road_H1, road_A1_left, road_A1_upper, road_H6_bottom, road_H6_right]): if self.clear_roadblocks([road_A6, road_H1, road_A1_left, road_A1_upper, road_H6_bottom, road_H6_right]):
return True return True
if self.clear_potential_roadblocks([road_A6, road_H1, road_A1_left, road_A1_upper, road_H6_bottom, road_H6_right]): if self.clear_potential_roadblocks([road_A6, road_H1, road_A1_left, road_A1_upper, road_H6_bottom, road_H6_right]):
return True return True
if self.clear_roadblocks([road_MY]): if self.clear_roadblocks([road_MY]):
return True return True
if self.clear_first_roadblocks([road_A6, road_H1, road_A1_left, road_A1_upper, road_H6_bottom, road_H6_right]): if self.clear_first_roadblocks([road_A6, road_H1, road_A1_left, road_A1_upper, road_H6_bottom, road_H6_right]):
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.brute_clear_boss() return self.brute_clear_boss()

View File

@@ -1,73 +1,73 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('9-2') MAP = CampaignMap('9-2')
MAP.shape = 'H5' MAP.shape = 'H5'
MAP.camera_data = ['E3'] MAP.camera_data = ['E3']
MAP.camera_data_spawn_point = ['D1', 'D3'] MAP.camera_data_spawn_point = ['D1', 'D3']
MAP.map_data = """ MAP.map_data = """
SP -- ++ ++ ++ Me -- MB SP -- ++ ++ ++ Me -- MB
++ -- ++ ++ ++ ME ++ ++ ++ -- ++ ++ ++ ME ++ ++
-- ME -- ME ME Me ++ ++ -- ME -- ME ME Me ++ ++
-- -- ++ -- ME ++ ME MB -- -- ++ -- ME ++ ME MB
SP SP ++ ME -- Me ME ME SP SP ++ ME -- Me ME ME
""" """
MAP.weight_data = """ MAP.weight_data = """
90 90 90 90 90 30 30 30 90 90 90 90 90 30 30 30
90 90 90 90 90 30 90 90 90 90 90 90 90 30 90 90
90 80 70 60 50 30 90 90 90 80 70 60 50 30 90 90
90 90 90 90 50 90 30 30 90 90 90 90 50 90 30 30
90 90 90 90 40 40 30 30 90 90 90 90 40 40 30 30
""" """
MAP.spawn_data = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3}, {'battle': 0, 'enemy': 3},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5, 'boss': 1}, {'battle': 5, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
= MAP.flatten() = MAP.flatten()
# Might have wrong prediction on D5 # Might have wrong prediction on D5
MAP.ignore_prediction(D5, enemy_scale=1, enemy_genre='Enemy') 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]) road_main = RoadGrids([B3, D3, [D5, E4], F5, G5, [G4, H5], H4, E3, F3, F2, F1])
step_on = SelectedGrids([F3, E4]) step_on = SelectedGrids([F3, E4])
class Config: class Config:
SUBMARINE = 0 SUBMARINE = 0
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
EDGE_LINES_HOUGHLINES_THRESHOLD = 40 EDGE_LINES_HOUGHLINES_THRESHOLD = 40
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.fleet_2_step_on(step_on, roadblocks=[road_main]): if self.fleet_2_step_on(step_on, roadblocks=[road_main]):
return True return True
if self.clear_roadblocks([road_main]): if self.clear_roadblocks([road_main]):
return True return True
if self.clear_potential_roadblocks([road_main]): if self.clear_potential_roadblocks([road_main]):
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
boss = self.map.select(is_boss=True) boss = self.map.select(is_boss=True)
if boss: if boss:
if not self.check_accessibility(boss[0], fleet='boss'): if not self.check_accessibility(boss[0], fleet='boss'):
if self.clear_roadblocks([road_main]): if self.clear_roadblocks([road_main]):
return True return True
return self.fleet_2.clear_boss() return self.fleet_2.clear_boss()

View File

@@ -1,82 +1,82 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('9-4') MAP = CampaignMap('9-4')
MAP.shape = 'I6' MAP.shape = 'I6'
MAP.camera_data = ['D3', 'F3', 'F4'] MAP.camera_data = ['D3', 'F3', 'F4']
MAP.camera_data_spawn_point = ['D4'] MAP.camera_data_spawn_point = ['D4']
MAP.map_data = """ MAP.map_data = """
MB -- ME -- ++ ++ ++ -- MB MB -- ME -- ++ ++ ++ -- MB
-- ++ __ ME -- ME Me ME -- -- ++ __ ME -- ME Me ME --
Me -- ME -- ME -- __ ++ -- Me -- ME -- ME -- __ ++ --
ME -- ++ ++ -- -- Me __ ME ME -- ++ ++ -- -- Me __ ME
SP -- MA ++ ME -- ++ ME -- SP -- MA ++ ME -- ++ ME --
SP -- -- ME -- ME ++ -- MB SP -- -- ME -- ME ++ -- MB
""" """
MAP.weight_data = """ MAP.weight_data = """
10 10 20 10 10 10 10 10 10 10 10 20 10 10 10 10 10 10
10 10 10 20 10 10 10 10 10 10 10 10 20 10 10 10 10 10
10 10 20 10 20 10 10 10 10 10 10 20 10 20 10 10 10 10
20 10 10 10 10 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
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
""" """
MAP.spawn_data = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3}, {'battle': 0, 'enemy': 3},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'boss': 1}, {'battle': 5, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
= MAP.flatten() = MAP.flatten()
road_main = RoadGrids([A3, D6, [E5, F6], G4, I4]) road_main = RoadGrids([A3, D6, [E5, F6], G4, I4])
class Config: class Config:
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
EDGE_LINES_HOUGHLINES_THRESHOLD = 40 EDGE_LINES_HOUGHLINES_THRESHOLD = 40
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (150, 255 - 24), 'height': (150, 255 - 24),
'width': (0.9, 10), 'width': (0.9, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 24, 255), 'height': (255 - 24, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
'width': (0, 10), 'width': (0, 10),
'wlen': 1000, 'wlen': 1000,
} }
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_roadblocks([road_main]): if self.clear_roadblocks([road_main]):
return True return True
if self.clear_potential_roadblocks([road_main]): if self.clear_potential_roadblocks([road_main]):
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
boss = self.map.select(is_boss=True) boss = self.map.select(is_boss=True)
if boss: if boss:
if not self.check_accessibility(boss[0], fleet='boss'): if not self.check_accessibility(boss[0], fleet='boss'):
if self.clear_roadblocks([road_main]): if self.clear_roadblocks([road_main]):
return True return True
return self.fleet_2.clear_boss() return self.fleet_2.clear_boss()

View File

@@ -1,71 +1,71 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('SOS') MAP = CampaignMap('SOS')
MAP.shape = 'I6' MAP.shape = 'I6'
MAP.camera_data = ['D2', 'D4', 'F2', 'F4'] MAP.camera_data = ['D2', 'D4', 'F2', 'F4']
MAP.camera_data_spawn_point = ['D4', 'F4'] MAP.camera_data_spawn_point = ['D4', 'F4']
MAP.map_data = """ MAP.map_data = """
-- -- ME ME ME MB -- ++ -- -- -- ME ME ME MB -- ++ --
ME ++ ++ MB ME ME Me -- ME ME ++ ++ MB ME ME Me -- ME
MB ME __ Me __ ME ME ME -- MB ME __ Me __ ME ME ME --
-- Me ME ++ ME Me Me ++ ME -- Me ME ++ ME Me Me ++ ME
++ ME ME Me ME ME ++ ++ -- ++ ME ME Me ME ME ++ ++ --
++ ++ ++ -- SP SP ME -- ME ++ ++ ++ -- SP SP ME -- ME
""" """
MAP.weight_data = """ 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 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 4}, {'battle': 0, 'enemy': 4},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5}, {'battle': 5},
{'battle': 6, 'boss': 1}, {'battle': 6, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = False MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
STAR_REQUIRE_1 = 0 STAR_REQUIRE_1 = 0
STAR_REQUIRE_2 = 0 STAR_REQUIRE_2 = 0
STAR_REQUIRE_3 = 0 STAR_REQUIRE_3 = 0
# ===== End of generated config ===== # ===== End of generated config =====
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
EDGE_LINES_HOUGHLINES_THRESHOLD = 40 EDGE_LINES_HOUGHLINES_THRESHOLD = 40
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_enemy(scale=(1,)): if self.clear_enemy(scale=(1,)):
return True return True
if self.clear_enemy(scale=(2,), genre=['light', 'carrier', 'enemy', 'treasure', 'main']): if self.clear_enemy(scale=(2,), genre=['light', 'carrier', 'enemy', 'treasure', 'main']):
return True return True
return self.battle_default() return self.battle_default()
def battle_6(self): def battle_6(self):
self.fleet_boss.clear_boss() self.fleet_boss.clear_boss()

View File

@@ -1,76 +1,76 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('SOS') MAP = CampaignMap('SOS')
MAP.shape = 'H5' MAP.shape = 'H5'
MAP.camera_data = ['D3', 'E3'] MAP.camera_data = ['D3', 'E3']
MAP.camera_data_spawn_point = ['D3'] MAP.camera_data_spawn_point = ['D3']
MAP.map_data = """ MAP.map_data = """
-- -- ++ ++ -- Me -- -- -- -- ++ ++ -- Me -- --
++ Me ME ME ME MB ++ -- ++ Me ME ME ME MB ++ --
-- ME SP SP __ Me ++ ME -- ME SP SP __ Me ++ ME
ME ++ ME ME ME Me ME ME ME ++ ME ME ME Me ME ME
-- ME Me ME ++ ME ME ++ -- ME Me ME ++ ME ME ++
""" """
MAP.weight_data = """ MAP.weight_data = """
50 50 50 50 50 20 50 50 50 50 50 50 50 20 50 50
50 50 30 20 10 10 50 50 50 50 30 20 10 10 50 50
50 50 50 30 20 20 50 50 50 50 50 30 20 20 50 50
50 50 30 30 30 30 50 50 50 50 30 30 30 30 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
""" """
MAP.spawn_data = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2}, {'battle': 0, 'enemy': 2},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1, 'boss': 1}, {'battle': 3, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = False MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
STAR_REQUIRE_1 = 0 STAR_REQUIRE_1 = 0
STAR_REQUIRE_2 = 0 STAR_REQUIRE_2 = 0
STAR_REQUIRE_3 = 0 STAR_REQUIRE_3 = 0
# ===== End of generated config ===== # ===== End of generated config =====
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
EDGE_LINES_HOUGHLINES_THRESHOLD = 40 EDGE_LINES_HOUGHLINES_THRESHOLD = 40
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (120, 255 - 49), 'height': (120, 255 - 49),
'width': (1.5, 10), 'width': (1.5, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 49, 255), 'height': (255 - 49, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
'wlen': 1000 'wlen': 1000
} }
HOMO_EDGE_COLOR_RANGE = (0, 49) HOMO_EDGE_COLOR_RANGE = (0, 49)
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_enemy(scale=(2, 3), genre=['light', 'carrier', 'enemy', 'main']): if self.clear_enemy(scale=(2, 3), genre=['light', 'carrier', 'enemy', 'main']):
return True return True
return self.battle_default() return self.battle_default()
def battle_3(self): def battle_3(self):
self.fleet_boss.clear_boss() self.fleet_boss.clear_boss()

View File

@@ -1,86 +1,86 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('SOS') MAP = CampaignMap('SOS')
MAP.shape = 'H7' MAP.shape = 'H7'
MAP.camera_data = ['D2', 'D3', 'E5'] MAP.camera_data = ['D2', 'D3', 'E5']
MAP.camera_data_spawn_point = ['E5'] MAP.camera_data_spawn_point = ['E5']
MAP.map_data = """ MAP.map_data = """
ME -- ME -- ++ Me ME -- ME -- ME -- ++ Me ME --
-- Me ME MB MB ME ME -- -- Me ME MB MB ME ME --
ME ++ __ ME ME __ ME ME ME ++ __ ME ME __ ME ME
ME ME ME Me ME ME ME ++ ME ME ME Me ME ME ME ++
-- ME ME SP SP ME ME ME -- ME ME SP SP ME ME ME
++ ME -- ME -- Me -- -- ++ ME -- ME -- Me -- --
++ -- ++ -- ME -- ++ ME ++ -- ++ -- ME -- ++ ME
""" """
MAP.weight_data = """ MAP.weight_data = """
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 10 10 10 10 50 50 50 50 10 10 10 10 50 50
50 50 20 10 10 20 30 50 50 50 20 10 10 20 30 50
50 50 20 20 20 20 30 50 50 50 20 20 20 20 30 50
50 50 30 30 30 30 50 50 50 50 30 30 30 30 50 50
50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 4}, {'battle': 0, 'enemy': 4},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2, 'boss': 1}, {'battle': 4, 'enemy': 2, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
A7, B7, C7, D7, E7, F7, G7, H7, \ A7, B7, C7, D7, E7, F7, G7, H7, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = False MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
STAR_REQUIRE_1 = 0 STAR_REQUIRE_1 = 0
STAR_REQUIRE_2 = 0 STAR_REQUIRE_2 = 0
STAR_REQUIRE_3 = 0 STAR_REQUIRE_3 = 0
# ===== End of generated config ===== # ===== End of generated config =====
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
EDGE_LINES_HOUGHLINES_THRESHOLD = 40 EDGE_LINES_HOUGHLINES_THRESHOLD = 40
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (120, 255 - 49), 'height': (120, 255 - 49),
'width': (1.5, 10), 'width': (1.5, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 49, 255), 'height': (255 - 49, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
'wlen': 1000 'wlen': 1000
} }
HOMO_EDGE_COLOR_RANGE = (0, 49) HOMO_EDGE_COLOR_RANGE = (0, 49)
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
MAP_AMBUSH_OVERLAY_TRANSPARENCY_THRESHOLD = 0.3 MAP_AMBUSH_OVERLAY_TRANSPARENCY_THRESHOLD = 0.3
MAP_AIR_RAID_OVERLAY_TRANSPARENCY_THRESHOLD = 0.25 MAP_AIR_RAID_OVERLAY_TRANSPARENCY_THRESHOLD = 0.25
MAP_ENEMY_SEARCHING_OVERLAY_TRANSPARENCY_THRESHOLD = 0.65 MAP_ENEMY_SEARCHING_OVERLAY_TRANSPARENCY_THRESHOLD = 0.65
def battle_0(self): def battle_0(self):
if self.clear_enemy(scale=(2, 3), genre=['light', 'carrier', 'enemy', 'main']): if self.clear_enemy(scale=(2, 3), genre=['light', 'carrier', 'enemy', 'main']):
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
self.fleet_boss.clear_boss() self.fleet_boss.clear_boss()

View File

@@ -1,80 +1,80 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('SOS') MAP = CampaignMap('SOS')
MAP.shape = 'H6' MAP.shape = 'H6'
MAP.camera_data = ['D2', 'D4'] MAP.camera_data = ['D2', 'D4']
MAP.camera_data_spawn_point = ['D4'] MAP.camera_data_spawn_point = ['D4']
MAP.map_data = """ MAP.map_data = """
ME ME ++ -- ME Me MB -- ME ME ++ -- ME Me MB --
-- -- ME MB MB ME ME MB -- -- ME MB MB ME ME MB
ME ++ ME Me ME __ ME -- ME ++ ME Me ME __ ME --
-- ME __ ME Me ME ME ME -- ME __ ME Me ME ME ME
-- ME ME SP SP ME ME -- -- ME ME SP SP ME ME --
++ ++ ME -- ME ME ++ -- ++ ++ ME -- ME ME ++ --
""" """
MAP.weight_data = """ MAP.weight_data = """
50 50 50 50 20 20 10 50 50 50 50 50 20 20 10 50
50 50 50 10 10 10 10 10 50 50 50 10 10 10 10 10
50 50 50 30 20 20 20 20 50 50 50 30 20 20 20 20
50 50 20 50 30 30 30 30 50 50 20 50 30 30 30 30
50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 4}, {'battle': 0, 'enemy': 4},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 2}, {'battle': 3, 'enemy': 2},
{'battle': 4, 'enemy': 1, 'boss': 1}, {'battle': 4, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = False MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
STAR_REQUIRE_1 = 0 STAR_REQUIRE_1 = 0
STAR_REQUIRE_2 = 0 STAR_REQUIRE_2 = 0
STAR_REQUIRE_3 = 0 STAR_REQUIRE_3 = 0
# ===== End of generated config ===== # ===== End of generated config =====
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
EDGE_LINES_HOUGHLINES_THRESHOLD = 40 EDGE_LINES_HOUGHLINES_THRESHOLD = 40
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (120, 255 - 49), 'height': (120, 255 - 49),
'width': (1.5, 10), 'width': (1.5, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 49, 255), 'height': (255 - 49, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
'wlen': 1000 'wlen': 1000
} }
HOMO_EDGE_COLOR_RANGE = (0, 49) HOMO_EDGE_COLOR_RANGE = (0, 49)
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_enemy(scale=(2, 3), genre=['light', 'carrier', 'enemy', 'main']): if self.clear_enemy(scale=(2, 3), genre=['light', 'carrier', 'enemy', 'main']):
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
self.fleet_boss.clear_boss() self.fleet_boss.clear_boss()

View File

@@ -1,68 +1,68 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('SOS') MAP = CampaignMap('SOS')
MAP.shape = 'H6' MAP.shape = 'H6'
MAP.camera_data = ['D2', 'D4'] MAP.camera_data = ['D2', 'D4']
MAP.camera_data_spawn_point = ['D4'] MAP.camera_data_spawn_point = ['D4']
MAP.map_data = """ MAP.map_data = """
++ ME -- -- -- ME ++ ++ ++ ME -- -- -- ME ++ ++
ME -- ME MB MB -- ME -- ME -- ME MB MB -- ME --
-- ++ ME ME ME ME -- ME -- ++ ME ME ME ME -- ME
ME ME __ Me ME __ ME -- ME ME __ Me ME __ ME --
ME Me ME MB ME ME ++ ME ME Me ME MB ME ME ++ ME
-- ++ Me SP SP ME ++ -- -- ++ Me SP SP ME ++ --
""" """
MAP.weight_data = """ MAP.weight_data = """
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 20 10 10 30 50 50 50 50 20 10 10 30 50 50
50 50 20 10 20 30 50 50 50 50 20 10 20 30 50 50
50 50 20 10 20 30 50 50 50 50 20 10 20 30 50 50
50 50 20 10 20 30 50 50 50 50 20 10 20 30 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
""" """
MAP.spawn_data = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 5}, {'battle': 0, 'enemy': 5},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5, 'boss': 1}, {'battle': 5, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = False MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
STAR_REQUIRE_1 = 0 STAR_REQUIRE_1 = 0
STAR_REQUIRE_2 = 0 STAR_REQUIRE_2 = 0
STAR_REQUIRE_3 = 0 STAR_REQUIRE_3 = 0
# ===== End of generated config ===== # ===== End of generated config =====
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
EDGE_LINES_HOUGHLINES_THRESHOLD = 40 EDGE_LINES_HOUGHLINES_THRESHOLD = 40
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_enemy(scale=(2, 3), genre=['light', 'carrier', 'enemy', 'main']): if self.clear_enemy(scale=(2, 3), genre=['light', 'carrier', 'enemy', 'main']):
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
self.fleet_boss.clear_boss() self.fleet_boss.clear_boss()

View File

@@ -1,71 +1,71 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('SOS') MAP = CampaignMap('SOS')
MAP.shape = 'H6' MAP.shape = 'H6'
MAP.camera_data = ['D2', 'D4'] MAP.camera_data = ['D2', 'D4']
MAP.camera_data_spawn_point = ['D4'] MAP.camera_data_spawn_point = ['D4']
MAP.map_data = """ MAP.map_data = """
-- ME ME -- ++ ++ ++ MB -- ME ME -- ++ ++ ++ MB
ME Me ME ME ME ME ME -- ME Me ME ME ME ME ME --
ME ME __ Me ++ __ ME ME ME ME __ Me ++ __ ME ME
ME ++ SP ME ME SP ME -- ME ++ SP ME ME SP ME --
-- ME ME ME ME ME ++ ME -- ME ME ME ME ME ++ ME
++ -- Me -- -- ME -- -- ++ -- Me -- -- ME -- --
""" """
MAP.weight_data = """ MAP.weight_data = """
50 50 50 50 50 50 50 09 50 50 50 50 50 50 50 09
50 50 50 14 13 12 11 10 50 50 50 14 13 12 11 10
50 50 50 15 50 13 12 11 50 50 50 15 50 13 12 11
50 50 50 14 13 13 12 50 50 50 50 14 13 13 12 50
50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 4}, {'battle': 0, 'enemy': 4},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 3}, {'battle': 2, 'enemy': 3},
{'battle': 3, 'enemy': 2}, {'battle': 3, 'enemy': 2},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'boss': 1}, {'battle': 5, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = False MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
STAR_REQUIRE_1 = 0 STAR_REQUIRE_1 = 0
STAR_REQUIRE_2 = 0 STAR_REQUIRE_2 = 0
STAR_REQUIRE_3 = 0 STAR_REQUIRE_3 = 0
# ===== End of generated config ===== # ===== End of generated config =====
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
EDGE_LINES_HOUGHLINES_THRESHOLD = 40 EDGE_LINES_HOUGHLINES_THRESHOLD = 40
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.fleet_2_push_forward(): if self.fleet_2_push_forward():
return True return True
if self.clear_enemy(scale=(2, 3), genre=['light', 'carrier', 'enemy', 'main']): if self.clear_enemy(scale=(2, 3), genre=['light', 'carrier', 'enemy', 'main']):
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
self.fleet_boss.clear_boss() self.fleet_boss.clear_boss()

View File

@@ -1,86 +1,86 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('SOS') MAP = CampaignMap('SOS')
MAP.shape = 'H7' MAP.shape = 'H7'
MAP.camera_data = ['D3', 'D5'] MAP.camera_data = ['D3', 'D5']
MAP.camera_data_spawn_point = ['D3', 'D5'] MAP.camera_data_spawn_point = ['D3', 'D5']
MAP.map_data = """ MAP.map_data = """
++ ++ ME -- ME -- ME -- ++ ++ ME -- ME -- ME --
++ ++ ME ME -- ++ -- ME ++ ++ ME ME -- ++ -- ME
-- Me ME ME SP -- ME ME -- Me ME ME SP -- ME ME
MB Me __ Me ME ME -- ++ MB Me __ Me ME ME -- ++
-- ++ ME Me ME -- ME ++ -- ++ ME Me ME -- ME ++
ME ++ ME ME SP ME -- ME ME ++ ME ME SP ME -- ME
-- ME ME -- ME -- ++ ME -- ME ME -- ME -- ++ ME
""" """
MAP.weight_data = """ MAP.weight_data = """
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 13 50 50 50 50 50 50 50 13 50 50 50 50 50
50 11 12 13 50 50 50 50 50 11 12 13 50 50 50 50
10 11 12 12 13 50 50 50 10 11 12 12 13 50 50 50
50 50 12 13 50 50 50 50 50 50 12 13 50 50 50 50
50 50 13 50 50 50 50 50 50 50 13 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
""" """
MAP.spawn_data = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 4}, {'battle': 0, 'enemy': 4},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2, 'boss': 1}, {'battle': 4, 'enemy': 2, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
A7, B7, C7, D7, E7, F7, G7, H7, \ A7, B7, C7, D7, E7, F7, G7, H7, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = False MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
STAR_REQUIRE_1 = 0 STAR_REQUIRE_1 = 0
STAR_REQUIRE_2 = 0 STAR_REQUIRE_2 = 0
STAR_REQUIRE_3 = 0 STAR_REQUIRE_3 = 0
# ===== End of generated config ===== # ===== End of generated config =====
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
EDGE_LINES_HOUGHLINES_THRESHOLD = 40 EDGE_LINES_HOUGHLINES_THRESHOLD = 40
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (120, 255 - 49), 'height': (120, 255 - 49),
'width': (0.9, 10), 'width': (0.9, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 49, 255), 'height': (255 - 49, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
'wlen': 1000 'wlen': 1000
} }
HOMO_EDGE_COLOR_RANGE = (0, 49) HOMO_EDGE_COLOR_RANGE = (0, 49)
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.fleet_2_push_forward(): if self.fleet_2_push_forward():
return True return True
if self.clear_enemy(scale=(2, 3), genre=['light', 'carrier', 'enemy', 'main']): if self.clear_enemy(scale=(2, 3), genre=['light', 'carrier', 'enemy', 'main']):
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
self.fleet_boss.clear_boss() self.fleet_boss.clear_boss()

View File

@@ -1,70 +1,70 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('SOS') MAP = CampaignMap('SOS')
MAP.shape = 'I6' MAP.shape = 'I6'
MAP.camera_data = ['D2', 'D4', 'F2', 'F4'] MAP.camera_data = ['D2', 'D4', 'F2', 'F4']
MAP.camera_data_spawn_point = ['D2', 'F4'] MAP.camera_data_spawn_point = ['D2', 'F4']
MAP.map_data = """ MAP.map_data = """
-- ++ ++ ++ -- MB ME -- ++ -- ++ ++ ++ -- MB ME -- ++
-- Me ++ ME -- ME Me ME ++ -- Me ++ ME -- ME Me ME ++
Me ME ME SP ME ++ __ ME -- Me ME ME SP ME ++ __ ME --
ME ME __ ME Me SP Me ME ME ME ME __ ME Me SP Me ME ME
-- ME Me ++ ME -- ME ME -- -- ME Me ++ ME -- ME ME --
-- ++ ME MB -- -- ++ ++ ++ -- ++ ME MB -- -- ++ ++ ++
""" """
MAP.weight_data = """ MAP.weight_data = """
50 50 50 50 10 10 30 50 50 50 50 50 50 10 10 30 50 50
50 50 50 20 10 20 30 50 50 50 50 50 20 10 20 30 50 50
50 50 30 20 10 50 30 50 50 50 50 30 20 10 50 30 50 50
50 50 30 20 10 30 30 50 50 50 50 30 20 10 30 30 50 50
50 50 30 50 10 50 50 50 50 50 50 30 50 10 50 50 50 50
50 50 30 30 50 50 50 50 50 50 50 30 30 50 50 50 50 50
""" """
MAP.spawn_data = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3}, {'battle': 0, 'enemy': 3},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'boss': 1}, {'battle': 5, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = False MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
STAR_REQUIRE_1 = 0 STAR_REQUIRE_1 = 0
STAR_REQUIRE_2 = 0 STAR_REQUIRE_2 = 0
STAR_REQUIRE_3 = 0 STAR_REQUIRE_3 = 0
# ===== End of generated config ===== # ===== End of generated config =====
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
EDGE_LINES_HOUGHLINES_THRESHOLD = 40 EDGE_LINES_HOUGHLINES_THRESHOLD = 40
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_enemy(scale=(1,)): if self.clear_enemy(scale=(1,)):
return True return True
if self.clear_enemy(scale=(2,), genre=['light', 'carrier', 'enemy', 'treasure', 'main']): if self.clear_enemy(scale=(2,), genre=['light', 'carrier', 'enemy', 'treasure', 'main']):
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
self.fleet_boss.clear_boss() self.fleet_boss.clear_boss()

View File

@@ -1,73 +1,73 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('SP1') MAP = CampaignMap('SP1')
MAP.shape = 'K7' MAP.shape = 'K7'
MAP.camera_data = ['D2', 'D5', 'H2', 'H5'] MAP.camera_data = ['D2', 'D5', 'H2', 'H5']
MAP.camera_data_spawn_point = ['H5'] MAP.camera_data_spawn_point = ['H5']
MAP.map_data = """ MAP.map_data = """
++ ++ ++ -- ME -- -- -- -- ++ -- ++ ++ ++ -- ME -- -- -- -- ++ --
-- ME -- ++ -- ++ ++ ME -- ++ ME -- ME -- ++ -- ++ ++ ME -- ++ ME
ME -- -- Me -- ME ++ -- Me ++ -- ME -- -- Me -- ME ++ -- Me ++ --
-- -- -- -- -- ++ ME -- -- -- SP -- -- -- -- -- ++ ME -- -- -- SP
ME -- -- Me -- -- -- __ -- -- SP ME -- -- Me -- -- -- __ -- -- SP
-- -- ME ++ -- MS -- Me -- -- -- -- -- ME ++ -- MS -- Me -- -- --
-- -- -- ++ MB -- MB ++ ++ ++ ++ -- -- -- ++ MB -- MB ++ ++ ++ ++
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3, 'siren': 1}, {'battle': 0, 'enemy': 3, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'boss': 1}, {'battle': 4, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['Z18'] MAP_SIREN_TEMPLATE = ['Z18']
MOVABLE_ENEMY_TURN = (3,) MOVABLE_ENEMY_TURN = (3,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
MAP_SWIPE_MULTIPLY = 1.640 MAP_SWIPE_MULTIPLY = 1.640
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.586 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.586
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C' ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C'
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0): if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0):
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,74 +1,74 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .sp1 import Config as ConfigBase from .sp1 import Config as ConfigBase
MAP = CampaignMap('SP2') MAP = CampaignMap('SP2')
MAP.shape = 'K7' MAP.shape = 'K7'
MAP.camera_data = ['D2', 'D5', 'H2', 'H5'] MAP.camera_data = ['D2', 'D5', 'H2', 'H5']
MAP.camera_data_spawn_point = ['D2', 'H2'] MAP.camera_data_spawn_point = ['D2', 'H2']
MAP.map_data = """ MAP.map_data = """
-- -- ++ ++ SP -- SP ++ ++ ++ ++ -- -- ++ ++ SP -- SP ++ ++ ++ ++
-- ME ++ ++ -- -- -- -- -- ME ME -- ME ++ ++ -- -- -- -- -- ME ME
ME -- -- MS -- -- -- ME -- -- MB ME -- -- MS -- -- -- ME -- -- MB
++ -- -- -- Me -- Me ++ __ -- MB ++ -- -- -- Me -- Me ++ __ -- MB
-- -- ++ ++ ++ MS -- ++ -- -- ME -- -- ++ ++ ++ MS -- ++ -- -- ME
-- ME -- ME ++ -- -- -- -- Me ++ -- ME -- ME ++ -- -- -- -- Me ++
-- -- -- -- Me -- ME -- ME -- ++ -- -- -- -- Me -- ME -- ME -- ++
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3, 'siren': 2}, {'battle': 0, 'enemy': 3, 'siren': 2},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'boss': 1}, {'battle': 4, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['Z2'] MAP_SIREN_TEMPLATE = ['Z2']
MOVABLE_ENEMY_TURN = (3,) MOVABLE_ENEMY_TURN = (3,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
MAP_SWIPE_MULTIPLY = 1.735 MAP_SWIPE_MULTIPLY = 1.735
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.677 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.677
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C' ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C'
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0): if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0):
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,75 +1,75 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .sp1 import Config as ConfigBase from .sp1 import Config as ConfigBase
MAP = CampaignMap('SP3') MAP = CampaignMap('SP3')
MAP.shape = 'K7' MAP.shape = 'K7'
MAP.camera_data = ['D2', 'D5', 'H2', 'H5'] MAP.camera_data = ['D2', 'D5', 'H2', 'H5']
MAP.camera_data_spawn_point = ['D2'] MAP.camera_data_spawn_point = ['D2']
MAP.map_data = """ MAP.map_data = """
++ ++ ++ MS ++ ME -- ME ++ ++ ++ ++ ++ ++ MS ++ ME -- ME ++ ++ ++
SP -- -- -- -- -- MS -- ME Me -- SP -- -- -- -- -- MS -- ME Me --
SP -- -- -- -- Me -- __ -- -- ME SP -- -- -- -- Me -- __ -- -- ME
++ ++ ++ MS -- ++ ++ -- Me ++ -- ++ ++ ++ MS -- ++ ++ -- Me ++ --
MB MB ++ -- Me ++ ++ -- -- ++ ++ MB MB ++ -- Me ++ ++ -- -- ++ ++
-- -- -- -- -- -- -- -- -- ME -- -- -- -- -- -- -- -- -- -- ME --
ME ME -- Me -- ME ++ ME -- ME -- ME ME -- Me -- ME ++ ME -- ME --
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3, 'siren': 2}, {'battle': 0, 'enemy': 3, 'siren': 2},
{'battle': 1, 'enemy': 2, 'siren': 1}, {'battle': 1, 'enemy': 2, 'siren': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5, 'boss': 1}, {'battle': 5, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['Z19'] MAP_SIREN_TEMPLATE = ['Z19']
MOVABLE_ENEMY_TURN = (3,) MOVABLE_ENEMY_TURN = (3,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
MAP_SWIPE_MULTIPLY = 1.785 MAP_SWIPE_MULTIPLY = 1.785
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.726 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.726
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C' ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C'
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0): if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0):
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,64 +1,64 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('A1') MAP = CampaignMap('A1')
MAP.shape = 'H6' MAP.shape = 'H6'
MAP.camera_data = ['D2', 'D4', 'E2', 'E4'] MAP.camera_data = ['D2', 'D4', 'E2', 'E4']
MAP.camera_data_spawn_point = ['D4'] MAP.camera_data_spawn_point = ['D4']
MAP.map_data = """ MAP.map_data = """
-- ++ -- ME -- -- ME -- -- ++ -- ME -- -- ME --
Me ++ -- MB -- Me ++ -- Me ++ -- MB -- Me ++ --
-- -- __ ++ ++ -- -- ME -- -- __ ++ ++ -- -- ME
-- Me -- ++ ++ -- -- ME -- Me -- ++ ++ -- -- ME
SP -- ME ME -- MS -- -- SP -- ME ME -- MS -- --
SP SP -- -- -- ME MB -- SP SP -- -- -- ME MB --
""" """
MAP.weight_data = """ 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
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
""" """
MAP.spawn_data = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1, 'boss': 1}, {'battle': 3, 'enemy': 1, 'boss': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
MAP_SIREN_TEMPLATE = ['Arethusa'] MAP_SIREN_TEMPLATE = ['Arethusa']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_SWIPE_MULTIPLY = 1.764 MAP_SWIPE_MULTIPLY = 1.764
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_3(self): def battle_3(self):
return self.fleet_1.clear_boss() return self.fleet_1.clear_boss()

View File

@@ -1,64 +1,64 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .a1 import Config as ConfigBase from .a1 import Config as ConfigBase
MAP = CampaignMap('A2') MAP = CampaignMap('A2')
MAP.shape = 'G7' MAP.shape = 'G7'
MAP.camera_data = ['D3', 'D5'] MAP.camera_data = ['D3', 'D5']
MAP.camera_data_spawn_point = ['D5'] MAP.camera_data_spawn_point = ['D5']
MAP.map_data = """ MAP.map_data = """
-- -- -- -- -- -- MB -- -- -- -- -- -- MB
ME -- -- ++ ++ ++ -- ME -- -- ++ ++ ++ --
-- ME __ -- ME Me -- -- ME __ -- ME Me --
ME -- -- ME -- -- -- ME -- -- ME -- -- --
++ ME -- -- -- Me -- ++ ME -- -- -- Me --
-- -- -- MS -- ++ -- -- -- -- MS -- ++ --
SP SP -- ME -- ++ MB SP SP -- ME -- ++ MB
""" """
MAP.weight_data = """ 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 10 10 10 10
10 10 10 10 10 10 10 10 10 10 10 10 10 10
""" """
MAP.spawn_data = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1, 'boss': 1}, {'battle': 4, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, \ A1, B1, C1, D1, E1, F1, G1, \
A2, B2, C2, D2, E2, F2, G2, \ A2, B2, C2, D2, E2, F2, G2, \
A3, B3, C3, D3, E3, F3, G3, \ A3, B3, C3, D3, E3, F3, G3, \
A4, B4, C4, D4, E4, F4, G4, \ A4, B4, C4, D4, E4, F4, G4, \
A5, B5, C5, D5, E5, F5, G5, \ A5, B5, C5, D5, E5, F5, G5, \
A6, B6, C6, D6, E6, F6, G6, \ A6, B6, C6, D6, E6, F6, G6, \
A7, B7, C7, D7, E7, F7, G7, \ A7, B7, C7, D7, E7, F7, G7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
MAP_SIREN_TEMPLATE = ['Arethusa', 'Sheffield'] MAP_SIREN_TEMPLATE = ['Arethusa', 'Sheffield']
MOVABLE_ENEMY_TURN = (2, 3) MOVABLE_ENEMY_TURN = (2, 3)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.fleet_1.clear_boss() return self.fleet_1.clear_boss()

View File

@@ -1,64 +1,64 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .a1 import Config as ConfigBase from .a1 import Config as ConfigBase
MAP = CampaignMap('A3') MAP = CampaignMap('A3')
MAP.shape = 'I7' MAP.shape = 'I7'
MAP.camera_data = ['D2', 'D5', 'F2', 'F5'] MAP.camera_data = ['D2', 'D5', 'F2', 'F5']
MAP.camera_data_spawn_point = ['D2'] MAP.camera_data_spawn_point = ['D2']
MAP.map_data = """ MAP.map_data = """
SP SP -- MS -- -- Me -- -- SP SP -- MS -- -- Me -- --
SP -- -- -- ++ MS -- -- -- SP -- -- -- ++ MS -- -- --
-- ME -- ME ++ -- -- ME -- -- ME -- ME ++ -- -- ME --
-- -- -- __ -- Me -- -- MB -- -- -- __ -- Me -- -- MB
ME -- ++ ++ -- -- ++ ++ ++ ME -- ++ ++ -- -- ++ ++ ++
-- -- ++ ++ -- ME -- -- -- -- -- ++ ++ -- ME -- -- --
-- ME -- -- MB -- -- -- -- -- ME -- -- MB -- -- -- --
""" """
MAP.weight_data = """ 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 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1, 'boss': 1}, {'battle': 4, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
MAP_SIREN_TEMPLATE = ['Arethusa', 'Sheffield', 'Dorsetshire'] MAP_SIREN_TEMPLATE = ['Arethusa', 'Sheffield', 'Dorsetshire']
MOVABLE_ENEMY_TURN = (2, 3) MOVABLE_ENEMY_TURN = (2, 3)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.fleet_1.clear_boss() return self.fleet_1.clear_boss()

View File

@@ -1,70 +1,70 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('B1') MAP = CampaignMap('B1')
MAP.shape = 'I7' MAP.shape = 'I7'
MAP.camera_data = ['D2', 'D5', 'F2', 'F5'] MAP.camera_data = ['D2', 'D5', 'F2', 'F5']
MAP.camera_data_spawn_point = ['D5'] MAP.camera_data_spawn_point = ['D5']
MAP.map_covered = ['D1'] MAP.map_covered = ['D1']
MAP.map_data = """ MAP.map_data = """
MB -- -- MS -- -- -- -- -- MB -- -- MS -- -- -- -- --
-- ME -- ++ ++ ME ++ ++ -- -- ME -- ++ ++ ME ++ ++ --
-- -- __ ++ ++ -- MB ++ -- -- -- __ ++ ++ -- MB ++ --
MS ME -- -- -- -- -- Me -- MS ME -- -- -- -- -- Me --
-- -- MS -- ME Me -- -- ME -- -- MS -- ME Me -- -- ME
-- ++ -- -- -- -- ME ++ -- -- ++ -- -- -- -- ME ++ --
-- ++ SP SP -- ME -- ++ -- -- ++ SP SP -- ME -- ++ --
""" """
MAP.weight_data = """ 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 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
# Extract: {'battle': 4, 'enemy': 2, 'boss': 1}, # Extract: {'battle': 4, 'enemy': 2, 'boss': 1},
{'battle': 4, 'enemy': 1, 'boss': 1}, {'battle': 4, 'enemy': 1, 'boss': 1},
{'battle': 5, 'enemy': 1}, {'battle': 5, 'enemy': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
MAP_SIREN_TEMPLATE = ['CL'] MAP_SIREN_TEMPLATE = ['CL']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_SWIPE_MULTIPLY = 1.694 MAP_SWIPE_MULTIPLY = 1.694
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.fleet_1.clear_boss() return self.fleet_1.clear_boss()

View File

@@ -1,65 +1,65 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .b1 import Config as ConfigBase from .b1 import Config as ConfigBase
MAP = CampaignMap('B2') MAP = CampaignMap('B2')
MAP.shape = 'J7' MAP.shape = 'J7'
MAP.camera_data = ['D2', 'D5', 'G2', 'G5'] MAP.camera_data = ['D2', 'D5', 'G2', 'G5']
MAP.camera_data_spawn_point = ['E2'] MAP.camera_data_spawn_point = ['E2']
MAP.map_data = """ MAP.map_data = """
-- ++ -- -- SP SP -- -- -- -- -- ++ -- -- SP SP -- -- -- --
MS ++ -- MB -- -- -- ME -- -- MS ++ -- MB -- -- -- ME -- --
-- -- -- ++ ++ ++ -- -- ME -- -- -- -- ++ ++ ++ -- -- ME --
ME -- -- -- -- -- Me -- -- ME ME -- -- -- -- -- Me -- -- ME
-- -- -- MS Me __ -- ME ME -- -- -- -- MS Me __ -- ME ME --
-- ME ME -- ++ Me -- -- -- ++ -- ME ME -- ++ Me -- -- -- ++
-- -- -- MB ++ -- -- Me -- -- -- -- -- MB ++ -- -- Me -- --
""" """
MAP.weight_data = """ 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
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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'enemy': 1, 'boss': 1}, {'battle': 5, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
MAP_SIREN_TEMPLATE = ['CL', 'CA'] MAP_SIREN_TEMPLATE = ['CL', 'CA']
MOVABLE_ENEMY_TURN = (2, 3) MOVABLE_ENEMY_TURN = (2, 3)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,68 +1,68 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .b1 import Config as ConfigBase from .b1 import Config as ConfigBase
MAP = CampaignMap('B3') MAP = CampaignMap('B3')
MAP.shape = 'I7' MAP.shape = 'I7'
MAP.camera_data = ['D2', 'D5', 'F3', 'F5'] MAP.camera_data = ['D2', 'D5', 'F3', 'F5']
MAP.camera_data_spawn_point = ['D2', 'D5'] MAP.camera_data_spawn_point = ['D2', 'D5']
MAP.map_data = """ MAP.map_data = """
MS -- -- ++ ++ -- -- -- -- MS -- -- ++ ++ -- -- -- --
-- Me ME MS ++ -- ME -- -- -- Me ME MS ++ -- ME -- --
SP -- -- -- -- ME ++ ++ ++ SP -- -- -- -- ME ++ ++ ++
-- Me -- ++ -- -- -- -- MB -- Me -- ++ -- -- -- -- MB
SP -- ME __ -- ME ++ ++ ++ SP -- ME __ -- ME ++ ++ ++
Me -- ++ Me ME -- -- -- -- Me -- ++ Me ME -- -- -- --
-- Me ++ -- ME MS ME -- -- -- Me ++ -- ME MS ME -- --
""" """
MAP.weight_data = """ 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 10 10 10 10 10 10 10 10 10 10
05 04 10 10 10 10 10 10 10 05 04 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'enemy': 1, 'boss': 1}, {'battle': 5, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
MAP_SIREN_TEMPLATE = ['CL', 'CA', 'BB'] MAP_SIREN_TEMPLATE = ['CL', 'CA', 'BB']
MOVABLE_ENEMY_TURN = (2, 3) MOVABLE_ENEMY_TURN = (2, 3)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.config.MAP_HAS_MOVABLE_ENEMY: if self.config.MAP_HAS_MOVABLE_ENEMY:
self.fleet_2_push_forward() self.fleet_2_push_forward()
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,64 +1,64 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('C1') MAP = CampaignMap('C1')
MAP.shape = 'H6' MAP.shape = 'H6'
MAP.camera_data = ['D2', 'D4', 'E2', 'E4'] MAP.camera_data = ['D2', 'D4', 'E2', 'E4']
MAP.camera_data_spawn_point = ['D4'] MAP.camera_data_spawn_point = ['D4']
MAP.map_data = """ MAP.map_data = """
-- ++ -- ME -- -- ME -- -- ++ -- ME -- -- ME --
Me ++ -- MB -- Me ++ -- Me ++ -- MB -- Me ++ --
-- -- __ ++ ++ -- -- ME -- -- __ ++ ++ -- -- ME
-- Me -- ++ ++ -- -- ME -- Me -- ++ ++ -- -- ME
SP -- ME ME -- MS -- -- SP -- ME ME -- MS -- --
SP SP -- -- -- ME MB -- SP SP -- -- -- ME MB --
""" """
MAP.weight_data = """ 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
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
""" """
MAP.spawn_data = [ MAP.spawn_data = [
# {'battle': 0, 'enemy': 2, 'siren': 2}, # {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1, 'boss': 1}, {'battle': 4, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
MAP_SIREN_TEMPLATE = ['Sheffield', 'Dorsetshire'] MAP_SIREN_TEMPLATE = ['Sheffield', 'Dorsetshire']
MOVABLE_ENEMY_TURN = (3,) MOVABLE_ENEMY_TURN = (3,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.fleet_1.clear_boss() return self.fleet_1.clear_boss()

View File

@@ -1,65 +1,65 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .c1 import Config as ConfigBase from .c1 import Config as ConfigBase
MAP = CampaignMap('C2') MAP = CampaignMap('C2')
MAP.shape = 'G7' MAP.shape = 'G7'
MAP.camera_data = ['D3', 'D5'] MAP.camera_data = ['D3', 'D5']
MAP.camera_data_spawn_point = ['D5'] MAP.camera_data_spawn_point = ['D5']
MAP.map_data = """ MAP.map_data = """
-- -- -- -- -- -- MB -- -- -- -- -- -- MB
ME -- -- ++ ++ ++ -- ME -- -- ++ ++ ++ --
-- ME __ -- ME Me -- -- ME __ -- ME Me --
ME -- -- ME -- -- -- ME -- -- ME -- -- --
++ ME -- -- -- Me -- ++ ME -- -- -- Me --
-- -- -- MS -- ++ -- -- -- -- MS -- ++ --
SP SP -- ME -- ++ MB SP SP -- ME -- ++ MB
""" """
MAP.weight_data = """ 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 10 10 10 10
10 10 10 10 10 10 10 10 10 10 10 10 10 10
""" """
MAP.spawn_data = [ MAP.spawn_data = [
# {'battle': 0, 'enemy': 2, 'siren': 2}, # {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1, 'boss': 1}, {'battle': 4, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, \ A1, B1, C1, D1, E1, F1, G1, \
A2, B2, C2, D2, E2, F2, G2, \ A2, B2, C2, D2, E2, F2, G2, \
A3, B3, C3, D3, E3, F3, G3, \ A3, B3, C3, D3, E3, F3, G3, \
A4, B4, C4, D4, E4, F4, G4, \ A4, B4, C4, D4, E4, F4, G4, \
A5, B5, C5, D5, E5, F5, G5, \ A5, B5, C5, D5, E5, F5, G5, \
A6, B6, C6, D6, E6, F6, G6, \ A6, B6, C6, D6, E6, F6, G6, \
A7, B7, C7, D7, E7, F7, G7, \ A7, B7, C7, D7, E7, F7, G7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
MAP_SIREN_TEMPLATE = ['Sheffield', 'Dorsetshire', 'Renown'] MAP_SIREN_TEMPLATE = ['Sheffield', 'Dorsetshire', 'Renown']
MOVABLE_ENEMY_TURN = (3,) MOVABLE_ENEMY_TURN = (3,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,65 +1,65 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .c1 import Config as ConfigBase from .c1 import Config as ConfigBase
MAP = CampaignMap('C3') MAP = CampaignMap('C3')
MAP.shape = 'I7' MAP.shape = 'I7'
MAP.camera_data = ['D2', 'D5', 'F2', 'F5'] MAP.camera_data = ['D2', 'D5', 'F2', 'F5']
MAP.camera_data_spawn_point = ['D2'] MAP.camera_data_spawn_point = ['D2']
MAP.map_data = """ MAP.map_data = """
SP SP -- MS -- -- Me -- -- SP SP -- MS -- -- Me -- --
SP -- -- -- ++ MS -- -- -- SP -- -- -- ++ MS -- -- --
-- ME -- ME ++ -- -- ME -- -- ME -- ME ++ -- -- ME --
-- -- -- __ -- Me -- -- MB -- -- -- __ -- Me -- -- MB
ME -- ++ ++ -- -- ++ ++ ++ ME -- ++ ++ -- -- ++ ++ ++
-- -- ++ ++ -- ME -- -- -- -- -- ++ ++ -- ME -- -- --
-- ME -- -- MB -- -- -- -- -- ME -- -- MB -- -- -- --
""" """
MAP.weight_data = """ 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 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5, 'boss': 1}, {'battle': 5, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
MAP_SIREN_TEMPLATE = ['Sheffield', 'Dorsetshire', 'Renown', 'PrinceOfWales'] MAP_SIREN_TEMPLATE = ['Sheffield', 'Dorsetshire', 'Renown', 'PrinceOfWales']
MOVABLE_ENEMY_TURN = (3,) MOVABLE_ENEMY_TURN = (3,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,76 +1,76 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('D1') MAP = CampaignMap('D1')
MAP.shape = 'I7' MAP.shape = 'I7'
MAP.camera_data = ['D2', 'D5', 'F2', 'F5'] MAP.camera_data = ['D2', 'D5', 'F2', 'F5']
MAP.camera_data_spawn_point = ['D5'] MAP.camera_data_spawn_point = ['D5']
MAP.map_covered = ['D1'] MAP.map_covered = ['D1']
MAP.map_data = """ MAP.map_data = """
MB -- -- MS -- -- -- -- -- MB -- -- MS -- -- -- -- --
-- ME -- ++ ++ ME ++ ++ -- -- ME -- ++ ++ ME ++ ++ --
-- -- __ ++ ++ -- MB ++ -- -- -- __ ++ ++ -- MB ++ --
MS ME -- -- -- -- -- Me -- MS ME -- -- -- -- -- Me --
-- -- MS -- ME Me -- -- ME -- -- MS -- ME Me -- -- ME
-- ++ -- -- -- -- ME ++ -- -- ++ -- -- -- -- ME ++ --
-- ++ SP SP -- ME -- ++ -- -- ++ SP SP -- ME -- ++ --
""" """
MAP.weight_data = """ 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 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
# Extract: {'battle': 4, 'enemy': 2}, # Extract: {'battle': 4, 'enemy': 2},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5, 'enemy': 1, 'boss': 1}, {'battle': 5, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
MAP_SIREN_TEMPLATE = ['CL', 'CA'] MAP_SIREN_TEMPLATE = ['CL', 'CA']
MOVABLE_ENEMY_TURN = (3,) MOVABLE_ENEMY_TURN = (3,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_SWIPE_MULTIPLY = 1.694 MAP_SWIPE_MULTIPLY = 1.694
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
if self.clear_enemy(scale=(1,)): if self.clear_enemy(scale=(1,)):
return True return True
if self.clear_enemy(scale=(2,), genre=['light', 'main', 'enemy', 'carrier']): if self.clear_enemy(scale=(2,), genre=['light', 'main', 'enemy', 'carrier']):
return True return True
if self.clear_enemy(genre=['light', 'main', 'enemy']): if self.clear_enemy(genre=['light', 'main', 'enemy']):
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,78 +1,78 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .d1 import Config as ConfigBase from .d1 import Config as ConfigBase
MAP = CampaignMap('D2') MAP = CampaignMap('D2')
MAP.shape = 'J7' MAP.shape = 'J7'
MAP.camera_data = ['D2', 'D5', 'G2', 'G5'] MAP.camera_data = ['D2', 'D5', 'G2', 'G5']
MAP.camera_data_spawn_point = ['E2'] MAP.camera_data_spawn_point = ['E2']
MAP.map_data = """ MAP.map_data = """
-- ++ -- -- SP SP -- -- -- -- -- ++ -- -- SP SP -- -- -- --
MS ++ -- MB -- -- -- ME -- -- MS ++ -- MB -- -- -- ME -- --
-- -- -- ++ ++ ++ -- -- ME -- -- -- -- ++ ++ ++ -- -- ME --
ME -- -- -- -- -- Me -- -- ME ME -- -- -- -- -- Me -- -- ME
-- -- -- MS Me __ -- ME ME -- -- -- -- MS Me __ -- ME ME --
-- ME ME -- ++ Me -- -- -- ++ -- ME ME -- ++ Me -- -- -- ++
-- -- -- MB ++ -- -- Me -- -- -- -- -- MB ++ -- -- Me -- --
""" """
MAP.weight_data = """ 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
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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2, 'siren': 1}, {'battle': 2, 'enemy': 2, 'siren': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'enemy': 1}, {'battle': 5, 'enemy': 1},
{'battle': 6, 'boss': 1}, {'battle': 6, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
MAP_SIREN_TEMPLATE = ['CL', 'CA', 'BB'] MAP_SIREN_TEMPLATE = ['CL', 'CA', 'BB']
MOVABLE_ENEMY_TURN = (3,) MOVABLE_ENEMY_TURN = (3,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
if self.clear_enemy(scale=(3,), genre=['light', 'main', 'enemy', 'carrier']): if self.clear_enemy(scale=(3,), genre=['light', 'main', 'enemy', 'carrier']):
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
if self.clear_enemy(scale=(1,)): if self.clear_enemy(scale=(1,)):
return True return True
if self.clear_enemy(scale=(2,), genre=['light', 'main', 'enemy', 'carrier']): if self.clear_enemy(scale=(2,), genre=['light', 'main', 'enemy', 'carrier']):
return True return True
if self.clear_enemy(genre=['light', 'main', 'enemy']): if self.clear_enemy(genre=['light', 'main', 'enemy']):
return True return True
return self.battle_default() return self.battle_default()
def battle_6(self): def battle_6(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,81 +1,81 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .d1 import Config as ConfigBase from .d1 import Config as ConfigBase
MAP = CampaignMap('D3') MAP = CampaignMap('D3')
MAP.shape = 'I7' MAP.shape = 'I7'
MAP.camera_data = ['D2', 'D5', 'F2', 'F5'] MAP.camera_data = ['D2', 'D5', 'F2', 'F5']
MAP.camera_data_spawn_point = ['D2', 'D5'] MAP.camera_data_spawn_point = ['D2', 'D5']
MAP.map_data = """ MAP.map_data = """
MS -- -- ++ ++ -- -- -- -- MS -- -- ++ ++ -- -- -- --
-- Me ME MS ++ -- ME -- -- -- Me ME MS ++ -- ME -- --
SP -- -- -- -- ME ++ ++ ++ SP -- -- -- -- ME ++ ++ ++
-- Me -- ++ -- -- -- -- MB -- Me -- ++ -- -- -- -- MB
SP -- ME __ -- ME ++ ++ ++ SP -- ME __ -- ME ++ ++ ++
Me -- ++ Me ME -- -- -- -- Me -- ++ Me ME -- -- -- --
-- Me ++ -- ME MS ME -- -- -- Me ++ -- ME MS ME -- --
""" """
MAP.weight_data = """ 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 10 10 10 10 10 10 10 10 10 10
05 04 10 10 10 10 10 10 10 05 04 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2, 'siren': 1}, {'battle': 2, 'enemy': 2, 'siren': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'enemy': 1}, {'battle': 5, 'enemy': 1},
{'battle': 6, 'boss': 1}, {'battle': 6, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
MAP_SIREN_TEMPLATE = ['CL', 'CA', 'BB', 'CV'] MAP_SIREN_TEMPLATE = ['CL', 'CA', 'BB', 'CV']
MOVABLE_ENEMY_TURN = (3,) MOVABLE_ENEMY_TURN = (3,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.config.MAP_HAS_MOVABLE_ENEMY: if self.config.MAP_HAS_MOVABLE_ENEMY:
self.fleet_2_push_forward() self.fleet_2_push_forward()
if self.clear_siren(): if self.clear_siren():
return True return True
if self.clear_enemy(scale=(3,), genre=['light', 'main', 'enemy', 'carrier']): if self.clear_enemy(scale=(3,), genre=['light', 'main', 'enemy', 'carrier']):
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
if self.clear_enemy(scale=(1,)): if self.clear_enemy(scale=(1,)):
return True return True
if self.clear_enemy(scale=(2,), genre=['light', 'main', 'enemy', 'carrier']): if self.clear_enemy(scale=(2,), genre=['light', 'main', 'enemy', 'carrier']):
return True return True
if self.clear_enemy(genre=['light', 'main', 'enemy']): if self.clear_enemy(genre=['light', 'main', 'enemy']):
return True return True
return self.battle_default() return self.battle_default()
def battle_6(self): def battle_6(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,84 +1,84 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('SP') MAP = CampaignMap('SP')
MAP.shape = 'I7' MAP.shape = 'I7'
MAP.camera_data = ['D2', 'D5', 'F2', 'F5'] MAP.camera_data = ['D2', 'D5', 'F2', 'F5']
MAP.camera_data_spawn_point = ['D2'] MAP.camera_data_spawn_point = ['D2']
MAP.map_data = """ MAP.map_data = """
-- MS ++ SP -- SP -- -- ME -- MS ++ SP -- SP -- -- ME
-- -- Me -- -- -- ME -- -- -- -- Me -- -- -- ME -- --
++ ++ -- MS Me -- ++ ++ -- ++ ++ -- MS Me -- ++ ++ --
++ ++ Me -- __ -- ME ++ MS ++ ++ Me -- __ -- ME ++ MS
-- -- ME -- -- ME -- ME -- -- -- ME -- -- ME -- ME --
-- Me -- ++ -- ++ ME -- -- -- Me -- ++ -- ++ ME -- --
-- -- Me ++ MB ++ -- ME -- -- -- Me ++ MB ++ -- ME --
""" """
MAP.weight_data = """ 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 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2, 'siren': 1}, {'battle': 2, 'enemy': 2, 'siren': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'enemy': 1}, {'battle': 5, 'enemy': 1},
{'battle': 6}, {'battle': 6},
{'battle': 7, 'boss': 1}, {'battle': 7, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
MAP_SIREN_TEMPLATE = ['CL', 'CA', 'BB', 'CV'] MAP_SIREN_TEMPLATE = ['CL', 'CA', 'BB', 'CV']
MOVABLE_ENEMY_TURN = (3,) MOVABLE_ENEMY_TURN = (3,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_SWIPE_MULTIPLY = 1.796 MAP_SWIPE_MULTIPLY = 1.796
STAR_REQUIRE_3 = 0 # SP map don't need to clear all enemies. STAR_REQUIRE_3 = 0 # SP map don't need to clear all enemies.
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.fleet_2_protect(): if self.fleet_2_protect():
return True return True
if self.clear_siren(): if self.clear_siren():
return True return True
if self.clear_enemy(scale=(3,)): if self.clear_enemy(scale=(3,)):
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
if self.clear_enemy(scale=(1,)): if self.clear_enemy(scale=(1,)):
return True return True
if self.clear_enemy(scale=(2,)): if self.clear_enemy(scale=(2,)):
return True return True
return self.battle_default() return self.battle_default()
def battle_7(self): def battle_7(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,65 +1,65 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('SP0') MAP = CampaignMap('SP0')
MAP.shape = 'J6' MAP.shape = 'J6'
MAP.camera_data = ['D2', 'D4', 'G2', 'G4'] MAP.camera_data = ['D2', 'D4', 'G2', 'G4']
MAP.camera_data_spawn_point = ['D2', 'D4'] MAP.camera_data_spawn_point = ['D2', 'D4']
MAP.map_data = """ MAP.map_data = """
-- -- ++ ++ ++ ++ -- -- ++ ++ -- -- ++ ++ ++ ++ -- -- ++ ++
-- ++ -- -- -- ++ -- -- -- ++ -- ++ -- -- -- ++ -- -- -- ++
SP -- -- -- -- -- ++ -- -- -- SP -- -- -- -- -- ++ -- -- --
SP -- -- -- -- -- -- -- -- MB SP -- -- -- -- -- -- -- -- MB
-- -- -- -- ++ -- -- ++ -- -- -- -- -- -- ++ -- -- ++ -- --
-- -- -- ++ ++ -- ++ ++ ++ -- -- -- -- ++ ++ -- ++ ++ ++ --
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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.land_based_data = [['D6', 'up'], ['H5', 'up'], ['F2', 'down'], ['C1', 'down']] MAP.land_based_data = [['D6', 'up'], ['H5', 'up'], ['F2', 'down'], ['C1', 'down']]
MAP.spawn_data = [ MAP.spawn_data = [
{'battle': 0, 'boss': 1}, {'battle': 0, 'boss': 1},
# {'battle': 1, 'enemy': 2}, # {'battle': 1, 'enemy': 2},
# {'battle': 2, 'enemy': 1}, # {'battle': 2, 'enemy': 1},
# {'battle': 3, 'enemy': 1, 'mystery': 1}, # {'battle': 3, 'enemy': 1, 'mystery': 1},
# {'battle': 4, 'enemy': 1}, # {'battle': 4, 'enemy': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
= MAP.flatten() = MAP.flatten()
mechanism = SelectedGrids([C6, E2, G5]) mechanism = SelectedGrids([C6, E2, G5])
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
MAP_HAS_LAND_BASED = True MAP_HAS_LAND_BASED = True
# ===== End of generated config ===== # ===== End of generated config =====
STAR_REQUIRE_1 = 0 STAR_REQUIRE_1 = 0
STAR_REQUIRE_2 = 0 STAR_REQUIRE_2 = 0
STAR_REQUIRE_3 = 0 STAR_REQUIRE_3 = 0
MAP_IS_ONE_TIME_STAGE = True MAP_IS_ONE_TIME_STAGE = True
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
self.clear_mechanism(mechanism) self.clear_mechanism(mechanism)
return self.clear_boss() return self.clear_boss()

View File

@@ -1,86 +1,86 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('HT1') MAP = CampaignMap('HT1')
MAP.shape = 'K7' MAP.shape = 'K7'
# MAP.camera_data = ['D2', 'D5', 'H2', 'H5'] # MAP.camera_data = ['D2', 'D5', 'H2', 'H5']
MAP.camera_data = ['D3', 'D5', 'H3', 'H5'] MAP.camera_data = ['D3', 'D5', 'H3', 'H5']
MAP.camera_data_spawn_point = ['H5', 'D5'] MAP.camera_data_spawn_point = ['H5', 'D5']
MAP.map_data = """ MAP.map_data = """
-- -- ++ -- -- MB -- -- ++ -- -- -- -- ++ -- -- MB -- -- ++ -- --
-- ++ ++ ++ Me -- Me ++ ++ ++ -- -- ++ ++ ++ Me -- Me ++ ++ ++ --
++ Me -- ++ ++ -- ++ ++ -- Me ++ ++ Me -- ++ ++ -- ++ ++ -- Me ++
ME -- ME ++ ++ -- ++ ++ ME -- ME ME -- ME ++ ++ -- ++ ++ ME -- ME
-- -- -- ME MS -- MS ME -- -- -- -- -- -- ME MS -- MS ME -- -- --
ME -- MS -- -- __ -- -- MS -- ME ME -- MS -- -- __ -- -- MS -- ME
++ Me -- -- SP -- SP -- -- Me ++ ++ Me -- -- SP -- SP -- -- Me ++
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1, 'boss': 1}, {'battle': 4, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['CL', 'SS'] MAP_SIREN_TEMPLATE = ['CL', 'SS']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
STAGE_ENTRANCE = ['blue'] STAGE_ENTRANCE = ['blue']
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (80, 255 - 24), 'height': (80, 255 - 24),
'width': (0.9, 10), 'width': (0.9, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 24, 255), 'height': (255 - 24, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
# 'width': (0, 7), # 'width': (0, 7),
'wlen': 1000 'wlen': 1000
} }
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.fleet_2_protect(): if self.fleet_2_protect():
return True return True
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,83 +1,83 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .ht1 import Config as ConfigBase from .ht1 import Config as ConfigBase
MAP = CampaignMap('HT2') MAP = CampaignMap('HT2')
MAP.shape = 'H7' MAP.shape = 'H7'
# MAP.camera_data = ['D2', 'D5', 'E2', 'E5'] # MAP.camera_data = ['D2', 'D5', 'E2', 'E5']
MAP.camera_data = ['D3', 'D5', 'E3', 'E5'] MAP.camera_data = ['D3', 'D5', 'E3', 'E5']
MAP.camera_data_spawn_point = ['E5'] MAP.camera_data_spawn_point = ['E5']
MAP.portal_data = [('E5', 'E1'), ('E1', 'E5')] MAP.portal_data = [('E5', 'E1'), ('E1', 'E5')]
MAP.map_data = """ MAP.map_data = """
-- ++ -- ME -- ME ++ ++ -- ++ -- ME -- ME ++ ++
ME -- Me __ -- -- MB ++ ME -- Me __ -- -- MB ++
-- -- -- -- ME -- ++ ME -- -- -- -- ME -- ++ ME
++ ME ++ ++ ++ ++ MS -- ++ ME ++ ++ ++ ++ MS --
-- ++ Me Me -- Me -- ME -- ++ Me Me -- Me -- ME
MS -- -- -- -- -- -- ++ MS -- -- -- -- -- -- ++
-- ME ++ ++ SP SP -- MS -- ME ++ ++ SP SP -- MS
""" """
MAP.map_data_loop = """ MAP.map_data_loop = """
-- ++ -- ME -- ME ++ ++ -- ++ -- ME -- ME ++ ++
ME -- Me __ -- -- MB ++ ME -- Me __ -- -- MB ++
-- -- -- -- ME -- ++ ME -- -- -- -- ME -- ++ ME
++ ME ++ -- -- -- MS -- ++ ME ++ -- -- -- MS --
-- ++ Me Me -- Me -- ME -- ++ Me Me -- Me -- ME
MS -- -- -- -- -- -- ++ MS -- -- -- -- -- -- ++
-- ME ++ ++ SP SP -- MS -- ME ++ ++ SP SP -- MS
""" """
MAP.weight_data = """ 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 10 20 50 50 50 50 50 50 10 20 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1, 'boss': 1}, {'battle': 4, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
A7, B7, C7, D7, E7, F7, G7, H7, \ A7, B7, C7, D7, E7, F7, G7, H7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['CL', 'CAred'] MAP_SIREN_TEMPLATE = ['CL', 'CAred']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
MAP_HAS_PORTAL = True MAP_HAS_PORTAL = True
# ===== End of generated config ===== # ===== End of generated config =====
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.fleet_2_protect(): if self.fleet_2_protect():
return True return True
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,93 +1,93 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .ht1 import Config as ConfigBase from .ht1 import Config as ConfigBase
MAP = CampaignMap('HT3') MAP = CampaignMap('HT3')
MAP.shape = 'I9' MAP.shape = 'I9'
# MAP.camera_data = ['D2', 'D6', 'D7', 'F2', 'F6', 'F7'] # MAP.camera_data = ['D2', 'D6', 'D7', 'F2', 'F6', 'F7']
# MAP.camera_data_spawn_point = ['D7', 'D6'] # MAP.camera_data_spawn_point = ['D7', 'D6']
MAP.camera_data = ['D3', 'D5', 'D7', 'F3', 'F5', 'F7'] MAP.camera_data = ['D3', 'D5', 'D7', 'F3', 'F5', 'F7']
MAP.camera_data_spawn_point = ['D5'] MAP.camera_data_spawn_point = ['D5']
MAP.portal_data = [('I2', 'A1'), ('A1', 'I2'), ('I9', 'H1'), ('H1', 'I9')] MAP.portal_data = [('I2', 'A1'), ('A1', 'I2'), ('I9', 'H1'), ('H1', 'I9')]
MAP.map_data = """ MAP.map_data = """
-- -- -- ++ ME -- ME -- ++ -- -- -- ++ ME -- ME -- ++
-- -- MB ++ -- -- -- -- -- -- -- MB ++ -- -- -- -- --
++ ++ ++ ++ -- ++ ++ -- ME ++ ++ ++ ++ -- ++ ++ -- ME
-- MS -- Me -- Me ++ -- -- -- MS -- Me -- Me ++ -- --
ME -- ++ -- __ -- -- -- ME ME -- ++ -- __ -- -- -- ME
-- -- SP -- -- Me ++ ++ ++ -- -- SP -- -- Me ++ ++ ++
Me -- -- SP ++ -- ++ MB -- Me -- -- SP ++ -- ++ MB --
-- MS -- -- -- MS ++ -- -- -- MS -- -- -- MS ++ -- --
++ -- Me -- ME -- ++ -- -- ++ -- Me -- ME -- ++ -- --
""" """
MAP.map_data_loop = """ MAP.map_data_loop = """
-- -- -- -- ME -- ME -- ++ -- -- -- -- ME -- ME -- ++
-- -- MB -- -- -- -- -- -- -- -- MB -- -- -- -- -- --
++ ++ ++ -- -- ++ ++ -- ME ++ ++ ++ -- -- ++ ++ -- ME
-- MS -- Me -- Me ++ -- -- -- MS -- Me -- Me ++ -- --
ME -- ++ -- __ -- -- -- ME ME -- ++ -- __ -- -- -- ME
-- -- SP -- -- Me -- -- -- -- -- SP -- -- Me -- -- --
Me -- -- SP ++ -- ++ MB -- Me -- -- SP ++ -- ++ MB --
-- MS -- -- -- MS ++ -- -- -- MS -- -- -- MS ++ -- --
++ -- Me -- ME -- ++ -- -- ++ -- Me -- ME -- ++ -- --
""" """
MAP.weight_data = """ 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 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5, 'boss': 1}, {'battle': 5, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
A8, B8, C8, D8, E8, F8, G8, H8, I8, \ A8, B8, C8, D8, E8, F8, G8, H8, I8, \
A9, B9, C9, D9, E9, F9, G9, H9, I9, \ A9, B9, C9, D9, E9, F9, G9, H9, I9, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['CL', 'CAred'] MAP_SIREN_TEMPLATE = ['CL', 'CAred']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
MAP_HAS_PORTAL = True MAP_HAS_PORTAL = True
# ===== End of generated config ===== # ===== End of generated config =====
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.fleet_2_protect(): if self.fleet_2_protect():
return True return True
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,110 +1,110 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .ht1 import Config as ConfigBase from .ht1 import Config as ConfigBase
MAP = CampaignMap('HT4') MAP = CampaignMap('HT4')
MAP.shape = 'K9' MAP.shape = 'K9'
MAP.camera_data = ['D2', 'D5', 'D7', 'H2', 'H5', 'H7'] MAP.camera_data = ['D2', 'D5', 'D7', 'H2', 'H5', 'H7']
MAP.camera_data_spawn_point = ['D2', 'D7'] MAP.camera_data_spawn_point = ['D2', 'D7']
MAP.portal_data = [('I5', 'C5'), ('C5', 'I5'), ('E5', 'E3'), ('E3', 'E5'), ('G5', 'G7'), ('G7', 'G5')] MAP.portal_data = [('I5', 'C5'), ('C5', 'I5'), ('E5', 'E3'), ('E3', 'E5'), ('G5', 'G7'), ('G7', 'G5')]
MAP.map_data = """ MAP.map_data = """
Me -- -- ++ Me -- ME -- ME ++ ++ Me -- -- ++ Me -- ME -- ME ++ ++
-- MS -- ++ -- SP -- __ -- MS -- -- MS -- ++ -- SP -- __ -- MS --
-- -- Me ++ -- -- -- ME -- -- -- -- -- Me ++ -- -- -- ME -- -- --
ME -- ++ ++ ++ ++ ++ ++ ++ -- ME ME -- ++ ++ ++ ++ ++ ++ ++ -- ME
-- -- -- ++ -- MB -- ++ -- -- -- -- -- -- ++ -- MB -- ++ -- -- --
ME -- ++ ++ ++ ++ ++ ++ ++ -- ME ME -- ++ ++ ++ ++ ++ ++ ++ -- ME
-- -- -- ME -- -- -- ++ Me -- -- -- -- -- ME -- -- -- ++ Me -- --
-- MS -- __ -- SP -- ++ -- MS -- -- MS -- __ -- SP -- ++ -- MS --
++ ++ ME -- ME -- Me ++ -- -- Me ++ ++ ME -- ME -- Me ++ -- -- Me
""" """
MAP.map_data_loop = """ MAP.map_data_loop = """
Me -- -- ++ Me -- ME -- ME ++ ++ Me -- -- ++ Me -- ME -- ME ++ ++
-- MS -- -- -- SP -- __ -- MS -- -- MS -- -- -- SP -- __ -- MS --
-- -- Me ++ -- -- -- ME -- -- -- -- -- Me ++ -- -- -- ME -- -- --
ME -- ++ ++ -- ++ -- ++ ++ -- ME ME -- ++ ++ -- ++ -- ++ ++ -- ME
-- -- -- ++ -- MB -- ++ -- -- -- -- -- -- ++ -- MB -- ++ -- -- --
ME -- ++ ++ -- ++ -- ++ ++ -- ME ME -- ++ ++ -- ++ -- ++ ++ -- ME
-- -- -- ME -- -- -- ++ Me -- -- -- -- -- ME -- -- -- ++ Me -- --
-- MS -- __ -- SP -- -- -- MS -- -- MS -- __ -- SP -- -- -- MS --
++ ++ ME -- ME -- Me ++ -- -- Me ++ ++ ME -- ME -- Me ++ -- -- Me
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 10 50 50 50 50 50 50 50 50 50 50 10 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'enemy': 1, 'boss': 1}, {'battle': 5, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \
A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, K8, \ A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, K8, \
A9, B9, C9, D9, E9, F9, G9, H9, I9, J9, K9, \ A9, B9, C9, D9, E9, F9, G9, H9, I9, J9, K9, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['BB', 'SS'] MAP_SIREN_TEMPLATE = ['BB', 'SS']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
MAP_HAS_PORTAL = True MAP_HAS_PORTAL = True
# ===== End of generated config ===== # ===== End of generated config =====
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.82 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.82
MAP_SWIPE_MULTIPLY = 1.88 MAP_SWIPE_MULTIPLY = 1.88
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.config.MAP_HAS_MOVABLE_ENEMY: if self.config.MAP_HAS_MOVABLE_ENEMY:
self.fleet_2_push_forward() self.fleet_2_push_forward()
if self.clear_siren(): if self.clear_siren():
return True return True
if self.map_is_clear_mode: if self.map_is_clear_mode:
if self.clear_enemy(scale=(2,)): if self.clear_enemy(scale=(2,)):
return True return True
if self.clear_enemy(scale=(1,)): if self.clear_enemy(scale=(1,)):
return True return True
return self.battle_default() return self.battle_default()
def battle_2(self): def battle_2(self):
if self.clear_siren(): if self.clear_siren():
return True return True
if self.map_is_clear_mode: if self.map_is_clear_mode:
if self.clear_enemy(scale=(2,)): if self.clear_enemy(scale=(2,)):
return True return True
if self.clear_enemy(scale=(1,)): if self.clear_enemy(scale=(1,)):
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,104 +1,104 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .ht1 import Config as ConfigBase from .ht1 import Config as ConfigBase
MAP = CampaignMap('HT5') MAP = CampaignMap('HT5')
MAP.shape = 'I9' MAP.shape = 'I9'
# MAP.camera_data = ['D2', 'D6', 'D7', 'F2', 'F6', 'F7'] # MAP.camera_data = ['D2', 'D6', 'D7', 'F2', 'F6', 'F7']
# MAP.camera_data_spawn_point = ['F7', 'D2'] # MAP.camera_data_spawn_point = ['F7', 'D2']
MAP.camera_data = ['D3', 'D5', 'D7', 'F3', 'F5', 'F7'] MAP.camera_data = ['D3', 'D5', 'D7', 'F3', 'F5', 'F7']
MAP.camera_data_spawn_point = ['F7', 'D3'] MAP.camera_data_spawn_point = ['F7', 'D3']
MAP.portal_data = [('D3', 'F3'), ('G4', 'G6'), ('F7', 'D7'), ('C6', 'C4')] MAP.portal_data = [('D3', 'F3'), ('G4', 'G6'), ('F7', 'D7'), ('C6', 'C4')]
MAP.map_data = """ MAP.map_data = """
++ -- -- -- ++ -- MB -- ++ ++ -- -- -- ++ -- MB -- ++
-- ME -- ME ++ MS -- MS -- -- ME -- ME ++ MS -- MS --
Me -- SP -- ++ -- __ -- -- Me -- SP -- ++ -- __ -- --
-- ME -- Me ++ Me -- ME -- -- ME -- Me ++ Me -- ME --
++ ++ ++ ++ -- ++ ++ ++ ++ ++ ++ ++ ++ -- ++ ++ ++ ++
-- ME -- Me ++ Me -- ME -- -- ME -- Me ++ Me -- ME --
-- -- __ -- ++ -- SP -- Me -- -- __ -- ++ -- SP -- Me
-- MS -- MS ++ ME -- ME -- -- MS -- MS ++ ME -- ME --
++ -- MB -- ++ -- -- -- ++ ++ -- MB -- ++ -- -- -- ++
""" """
MAP.map_data_loop = """ MAP.map_data_loop = """
++ -- -- -- ++ -- MB -- ++ ++ -- -- -- ++ -- MB -- ++
-- ME -- ME ++ MS -- MS -- -- ME -- ME ++ MS -- MS --
Me -- SP -- -- -- __ -- -- Me -- SP -- -- -- __ -- --
-- ME -- Me ++ Me -- ME -- -- ME -- Me ++ Me -- ME --
++ ++ -- ++ -- ++ -- ++ ++ ++ ++ -- ++ -- ++ -- ++ ++
-- ME -- Me ++ Me -- ME -- -- ME -- Me ++ Me -- ME --
-- -- __ -- -- -- SP -- Me -- -- __ -- -- -- SP -- Me
-- MS -- MS ++ ME -- ME -- -- MS -- MS ++ ME -- ME --
++ -- MB -- ++ -- -- -- ++ ++ -- MB -- ++ -- -- -- ++
""" """
MAP.weight_data = """ 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 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2, 'siren': 1}, {'battle': 2, 'enemy': 2, 'siren': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'enemy': 1}, {'battle': 5, 'enemy': 1},
{'battle': 6, 'boss': 1}, {'battle': 6, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
A8, B8, C8, D8, E8, F8, G8, H8, I8, \ A8, B8, C8, D8, E8, F8, G8, H8, I8, \
A9, B9, C9, D9, E9, F9, G9, H9, I9, \ A9, B9, C9, D9, E9, F9, G9, H9, I9, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['BB', 'CV'] MAP_SIREN_TEMPLATE = ['BB', 'CV']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
MAP_HAS_PORTAL = True MAP_HAS_PORTAL = True
# ===== End of generated config ===== # ===== End of generated config =====
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
if self.map_is_clear_mode: if self.map_is_clear_mode:
if self.clear_enemy(scale=(2,)): if self.clear_enemy(scale=(2,)):
return True return True
if self.clear_enemy(scale=(1,)): if self.clear_enemy(scale=(1,)):
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
if self.clear_enemy(scale=(1,)): if self.clear_enemy(scale=(1,)):
return True return True
if self.clear_enemy(scale=(2,)): if self.clear_enemy(scale=(2,)):
return True return True
return self.battle_default() return self.battle_default()
def battle_6(self): def battle_6(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,108 +1,108 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .ht1 import Config as ConfigBase from .ht1 import Config as ConfigBase
MAP = CampaignMap('HT6') MAP = CampaignMap('HT6')
MAP.shape = 'K10' MAP.shape = 'K10'
# MAP.camera_data = ['D2', 'D6', 'D8', 'H2', 'H6', 'H8'] # MAP.camera_data = ['D2', 'D6', 'D8', 'H2', 'H6', 'H8']
MAP.camera_data = ['D2', 'D6', 'G2', 'G6'] MAP.camera_data = ['D2', 'D6', 'G2', 'G6']
MAP.camera_data_spawn_point = ['D6', 'G6'] MAP.camera_data_spawn_point = ['D6', 'G6']
MAP.map_data = """ MAP.map_data = """
-- -- -- ME -- Me -- ME -- -- -- -- -- -- ME -- Me -- ME -- -- --
-- ++ ++ -- MS -- MS -- ++ ++ -- -- ++ ++ -- MS -- MS -- ++ ++ --
-- ++ ME -- -- __ -- -- ME ++ -- -- ++ ME -- -- __ -- -- ME ++ --
Me -- -- ++ ++ -- ++ ++ -- -- Me Me -- -- ++ ++ -- ++ ++ -- -- Me
++ ME -- ++ MS -- MS ++ -- ME ++ ++ ME -- ++ MS -- MS ++ -- ME ++
++ ME -- -- -- MB -- -- -- ME ++ ++ ME -- -- -- MB -- -- -- ME ++
-- -- ++ Me -- -- -- Me ++ -- -- -- -- ++ Me -- -- -- Me ++ -- --
-- ++ ++ ++ SP -- SP ++ ++ ++ -- -- ++ ++ ++ SP -- SP ++ ++ ++ --
++ -- -- ++ ++ -- ++ ++ -- -- ++ ++ -- -- ++ ++ -- ++ ++ -- -- ++
-- -- -- ++ ++ -- ++ ++ -- -- -- -- -- -- ++ ++ -- ++ ++ -- -- --
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2, 'siren': 1}, {'battle': 2, 'enemy': 2, 'siren': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'enemy': 1}, {'battle': 5, 'enemy': 1},
{'battle': 6, 'boss': 1}, {'battle': 6, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \
A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, K8, \ A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, K8, \
A9, B9, C9, D9, E9, F9, G9, H9, I9, J9, K9, \ A9, B9, C9, D9, E9, F9, G9, H9, I9, J9, K9, \
A10, B10, C10, D10, E10, F10, G10, H10, I10, J10, K10, \ A10, B10, C10, D10, E10, F10, G10, H10, I10, J10, K10, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['BB', 'CV', 'SS'] MAP_SIREN_TEMPLATE = ['BB', 'CV', 'SS']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.446 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.446
MAP_SWIPE_MULTIPLY = 1.495 MAP_SWIPE_MULTIPLY = 1.495
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.fleet_2_protect(): if self.fleet_2_protect():
return True return True
if self.clear_siren(): if self.clear_siren():
return True return True
if self.clear_enemy(scale=(2,)): if self.clear_enemy(scale=(2,)):
return True return True
if self.clear_enemy(scale=(1,)): if self.clear_enemy(scale=(1,)):
return True return True
return self.battle_default() return self.battle_default()
def battle_2(self): def battle_2(self):
if self.clear_siren(): if self.clear_siren():
return True return True
if self.clear_enemy(scale=(2,)): if self.clear_enemy(scale=(2,)):
return True return True
if self.clear_enemy(scale=(1,)): if self.clear_enemy(scale=(1,)):
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
if self.clear_enemy(scale=(1,)): if self.clear_enemy(scale=(1,)):
return True return True
if self.clear_enemy(scale=(2,)): if self.clear_enemy(scale=(2,)):
return True return True
return self.battle_default() return self.battle_default()
def battle_6(self): def battle_6(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,71 +1,71 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('HTS1') MAP = CampaignMap('HTS1')
MAP.shape = 'H6' MAP.shape = 'H6'
MAP.camera_data = ['D2', 'D4', 'E2', 'E4'] MAP.camera_data = ['D2', 'D4', 'E2', 'E4']
MAP.camera_data_spawn_point = ['E4'] MAP.camera_data_spawn_point = ['E4']
MAP.map_data = """ MAP.map_data = """
MB -- ++ ++ ++ ++ -- -- MB -- ++ ++ ++ ++ -- --
-- MS -- -- -- ++ ++ ++ -- MS -- -- -- ++ ++ ++
++ -- -- -- Me -- -- ++ ++ -- -- -- Me -- -- ++
++ ++ ++ ++ -- -- ME -- ++ ++ ++ ++ -- -- ME --
-- -- -- -- ++ ++ -- SP -- -- -- -- ++ ++ -- SP
-- ++ -- -- -- ++ SP -- -- ++ -- -- -- ++ SP --
""" """
MAP.weight_data = """ 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 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 1}, {'battle': 0, 'enemy': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
# {'battle': 2, 'siren': 1}, # {'battle': 2, 'siren': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'boss': 1}, {'battle': 3, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
# MAP_SIREN_TEMPLATE = ['srzl2'] # MAP_SIREN_TEMPLATE = ['srzl2']
# MOVABLE_ENEMY_TURN = (0,) # MOVABLE_ENEMY_TURN = (0,)
# MAP_HAS_SIREN = True # MAP_HAS_SIREN = True
# MAP_HAS_MOVABLE_ENEMY = True # MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = False MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
STAR_REQUIRE_1 = 0 STAR_REQUIRE_1 = 0
STAR_REQUIRE_2 = 0 STAR_REQUIRE_2 = 0
STAR_REQUIRE_3 = 0 STAR_REQUIRE_3 = 0
# ===== End of generated config ===== # ===== End of generated config =====
STAGE_ENTRANCE = ['blue'] STAGE_ENTRANCE = ['blue']
FLEET_2 = 0 FLEET_2 = 0
MAP_IS_ONE_TIME_STAGE = True MAP_IS_ONE_TIME_STAGE = True
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_3(self): def battle_3(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,66 +1,66 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .hts1 import Config as ConfigBase from .hts1 import Config as ConfigBase
from module.exception import CampaignEnd from module.exception import CampaignEnd
MAP = CampaignMap('HTS2') MAP = CampaignMap('HTS2')
MAP.shape = 'H8' MAP.shape = 'H8'
MAP.camera_data = ['D2', 'D6', 'E2', 'E6'] MAP.camera_data = ['D2', 'D6', 'E2', 'E6']
MAP.camera_data_spawn_point = ['D6'] MAP.camera_data_spawn_point = ['D6']
MAP.map_data = """ MAP.map_data = """
++ MM -- -- -- -- -- -- ++ MM -- -- -- -- -- --
++ ++ ++ ++ -- -- -- ++ ++ ++ ++ ++ -- -- -- ++
-- -- -- -- -- ++ -- ++ -- -- -- -- -- ++ -- ++
-- -- -- ++ ++ ++ -- ++ -- -- -- ++ ++ ++ -- ++
-- ++ -- -- ++ -- -- -- -- ++ -- -- ++ -- -- --
-- -- ++ -- -- ++ -- ++ -- -- ++ -- -- ++ -- ++
-- -- SP ++ MM ++ -- ++ -- -- SP ++ MM ++ -- ++
MM -- -- ++ ++ ++ -- ++ MM -- -- ++ ++ ++ -- ++
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0}, {'battle': 0},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
A7, B7, C7, D7, E7, F7, G7, H7, \ A7, B7, C7, D7, E7, F7, G7, H7, \
A8, B8, C8, D8, E8, F8, G8, H8, \ A8, B8, C8, D8, E8, F8, G8, H8, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = False MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
STAR_REQUIRE_1 = 0 STAR_REQUIRE_1 = 0
STAR_REQUIRE_2 = 0 STAR_REQUIRE_2 = 0
STAR_REQUIRE_3 = 0 STAR_REQUIRE_3 = 0
# ===== End of generated config ===== # ===== End of generated config =====
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
self.goto(A8, expected='story') self.goto(A8, expected='story')
self.goto(E7, expected='story') self.goto(E7, expected='story')
self.goto(B1, expected='story') self.goto(B1, expected='story')
self.goto(G8, expected='story') self.goto(G8, expected='story')
raise CampaignEnd() raise CampaignEnd()

View File

@@ -1,88 +1,88 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('SP') MAP = CampaignMap('SP')
MAP.shape = 'K9' MAP.shape = 'K9'
# MAP.camera_data = ['D2', 'D6', 'D7', 'H2', 'H6', 'H7'] # MAP.camera_data = ['D2', 'D6', 'D7', 'H2', 'H6', 'H7']
# MAP.camera_data_spawn_point = ['D2', 'H2'] # MAP.camera_data_spawn_point = ['D2', 'H2']
MAP.camera_data = ['F2', 'F4', 'F7'] MAP.camera_data = ['F2', 'F4', 'F7']
MAP.camera_data_spawn_point = ['F2'] MAP.camera_data_spawn_point = ['F2']
MAP.portal_data = [('E1', 'K1'), ('K1', 'E1'), ('A1', 'G1'), ('G1', 'A1')] MAP.portal_data = [('E1', 'K1'), ('K1', 'E1'), ('A1', 'G1'), ('G1', 'A1')]
MAP.map_data = """ MAP.map_data = """
-- -- MS ++ -- -- -- ++ MS -- -- -- -- MS ++ -- -- -- ++ MS -- --
-- -- -- ++ -- __ -- ++ -- -- -- -- -- -- ++ -- __ -- ++ -- -- --
++ -- Me ++ SP -- SP ++ Me -- ++ ++ -- Me ++ SP -- SP ++ Me -- ++
-- ++ ++ ++ ++ -- ++ ++ ++ ++ -- -- ++ ++ ++ ++ -- ++ ++ ++ ++ --
-- -- ++ ME -- -- -- ME ++ -- -- -- -- ++ ME -- -- -- ME ++ -- --
-- -- ++ -- -- MS -- -- ++ -- -- -- -- ++ -- -- MS -- -- ++ -- --
-- ++ ++ ++ ++ -- ++ ++ ++ ++ -- -- ++ ++ ++ ++ -- ++ ++ ++ ++ --
++ -- -- -- ++ -- ++ -- -- -- ++ ++ -- -- -- ++ -- ++ -- -- -- ++
-- -- -- -- ++ MB ++ -- -- -- -- -- -- -- -- ++ MB ++ -- -- -- --
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1}, {'battle': 1},
{'battle': 2}, {'battle': 2},
{'battle': 3}, {'battle': 3},
{'battle': 4, 'enemy': 2, 'siren': 1}, {'battle': 4, 'enemy': 2, 'siren': 1},
{'battle': 5}, {'battle': 5},
{'battle': 6}, {'battle': 6},
{'battle': 7, 'boss': 1}, {'battle': 7, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \
A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, K8, \ A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, K8, \
A9, B9, C9, D9, E9, F9, G9, H9, I9, J9, K9, \ A9, B9, C9, D9, E9, F9, G9, H9, I9, J9, K9, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = False MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
MAP_HAS_PORTAL = True MAP_HAS_PORTAL = True
STAR_REQUIRE_1 = 0 STAR_REQUIRE_1 = 0
STAR_REQUIRE_2 = 0 STAR_REQUIRE_2 = 0
STAR_REQUIRE_3 = 0 STAR_REQUIRE_3 = 0
# ===== End of generated config ===== # ===== End of generated config =====
STAGE_ENTRANCE = ['blue'] STAGE_ENTRANCE = ['blue']
MAP_SIREN_TEMPLATE = ['CV', 'BB'] MAP_SIREN_TEMPLATE = ['CV', 'BB']
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = False MAP_HAS_MOVABLE_ENEMY = False
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.82 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.82
MAP_SWIPE_MULTIPLY = 1.88 MAP_SWIPE_MULTIPLY = 1.88
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_7(self): def battle_7(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,83 +1,83 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('T1') MAP = CampaignMap('T1')
MAP.shape = 'K7' MAP.shape = 'K7'
# MAP.camera_data = ['D2', 'D5', 'H2', 'H5'] # MAP.camera_data = ['D2', 'D5', 'H2', 'H5']
MAP.camera_data = ['D3', 'D5', 'H3', 'H5'] MAP.camera_data = ['D3', 'D5', 'H3', 'H5']
MAP.camera_data_spawn_point = ['H5', 'D5'] MAP.camera_data_spawn_point = ['H5', 'D5']
MAP.map_data = """ MAP.map_data = """
-- -- ++ -- -- MB -- -- ++ -- -- -- -- ++ -- -- MB -- -- ++ -- --
-- ++ ++ ++ Me -- Me ++ ++ ++ -- -- ++ ++ ++ Me -- Me ++ ++ ++ --
++ Me -- ++ ++ -- ++ ++ -- Me ++ ++ Me -- ++ ++ -- ++ ++ -- Me ++
ME -- ME ++ ++ -- ++ ++ ME -- ME ME -- ME ++ ++ -- ++ ++ ME -- ME
-- -- -- ME MS -- MS ME -- -- -- -- -- -- ME MS -- MS ME -- -- --
ME -- MS -- -- __ -- -- MS -- ME ME -- MS -- -- __ -- -- MS -- ME
++ Me -- -- SP -- SP -- -- Me ++ ++ Me -- -- SP -- SP -- -- Me ++
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1, 'boss': 1}, {'battle': 3, 'enemy': 1, 'boss': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['DD', 'SS'] MAP_SIREN_TEMPLATE = ['DD', 'SS']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
STAGE_ENTRANCE = ['blue'] STAGE_ENTRANCE = ['blue']
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (80, 255 - 24), 'height': (80, 255 - 24),
'width': (0.9, 10), 'width': (0.9, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 24, 255), 'height': (255 - 24, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
# 'width': (0, 7), # 'width': (0, 7),
'wlen': 1000 'wlen': 1000
} }
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_3(self): def battle_3(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,80 +1,80 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .t1 import Config as ConfigBase from .t1 import Config as ConfigBase
MAP = CampaignMap('T2') MAP = CampaignMap('T2')
MAP.shape = 'H7' MAP.shape = 'H7'
# MAP.camera_data = ['D2', 'D5', 'E2', 'E5'] # MAP.camera_data = ['D2', 'D5', 'E2', 'E5']
MAP.camera_data = ['D3', 'D5', 'E3', 'E5'] MAP.camera_data = ['D3', 'D5', 'E3', 'E5']
MAP.camera_data_spawn_point = ['E5'] MAP.camera_data_spawn_point = ['E5']
MAP.portal_data = [('E5', 'E1'), ('E1', 'E5')] MAP.portal_data = [('E5', 'E1'), ('E1', 'E5')]
MAP.map_data = """ MAP.map_data = """
-- ++ -- ME -- ME ++ ++ -- ++ -- ME -- ME ++ ++
ME -- Me __ -- -- MB ++ ME -- Me __ -- -- MB ++
-- -- -- -- ME -- ++ ME -- -- -- -- ME -- ++ ME
++ ME ++ ++ ++ ++ MS -- ++ ME ++ ++ ++ ++ MS --
-- ++ Me Me -- Me -- ME -- ++ Me Me -- Me -- ME
MS -- -- -- -- -- -- ++ MS -- -- -- -- -- -- ++
-- ME ++ ++ SP SP -- MS -- ME ++ ++ SP SP -- MS
""" """
MAP.map_data_loop = """ MAP.map_data_loop = """
-- ++ -- ME -- ME ++ ++ -- ++ -- ME -- ME ++ ++
ME -- Me __ -- -- MB ++ ME -- Me __ -- -- MB ++
-- -- -- -- ME -- ++ ME -- -- -- -- ME -- ++ ME
++ ME ++ -- -- -- MS -- ++ ME ++ -- -- -- MS --
-- ++ Me Me -- Me -- ME -- ++ Me Me -- Me -- ME
MS -- -- -- -- -- -- ++ MS -- -- -- -- -- -- ++
-- ME ++ ++ SP SP -- MS -- ME ++ ++ SP SP -- MS
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1, 'boss': 1}, {'battle': 4, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
A7, B7, C7, D7, E7, F7, G7, H7, \ A7, B7, C7, D7, E7, F7, G7, H7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['CL'] MAP_SIREN_TEMPLATE = ['CL']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
MAP_HAS_PORTAL = True MAP_HAS_PORTAL = True
# ===== End of generated config ===== # ===== End of generated config =====
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,89 +1,89 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .t1 import Config as ConfigBase from .t1 import Config as ConfigBase
MAP = CampaignMap('T3') MAP = CampaignMap('T3')
MAP.shape = 'I9' MAP.shape = 'I9'
# MAP.camera_data = ['D2', 'D6', 'D7', 'F2', 'F6', 'F7'] # MAP.camera_data = ['D2', 'D6', 'D7', 'F2', 'F6', 'F7']
# MAP.camera_data_spawn_point = ['D7', 'D6'] # MAP.camera_data_spawn_point = ['D7', 'D6']
MAP.camera_data = ['D3', 'D5', 'D7', 'F3', 'F5', 'F7'] MAP.camera_data = ['D3', 'D5', 'D7', 'F3', 'F5', 'F7']
MAP.camera_data_spawn_point = ['D5'] MAP.camera_data_spawn_point = ['D5']
MAP.portal_data = [('I2', 'A1'), ('A1', 'I2'), ('I9', 'H1'), ('H1', 'I9')] MAP.portal_data = [('I2', 'A1'), ('A1', 'I2'), ('I9', 'H1'), ('H1', 'I9')]
MAP.map_data = """ MAP.map_data = """
-- -- -- ++ ME -- ME -- ++ -- -- -- ++ ME -- ME -- ++
-- -- MB ++ -- -- -- -- -- -- -- MB ++ -- -- -- -- --
++ ++ ++ ++ -- ++ ++ -- ME ++ ++ ++ ++ -- ++ ++ -- ME
-- MS -- Me -- Me ++ -- -- -- MS -- Me -- Me ++ -- --
ME -- ++ -- __ -- -- -- ME ME -- ++ -- __ -- -- -- ME
-- -- SP -- -- Me ++ ++ ++ -- -- SP -- -- Me ++ ++ ++
Me -- -- SP ++ -- ++ MB -- Me -- -- SP ++ -- ++ MB --
-- MS -- -- -- MS ++ -- -- -- MS -- -- -- MS ++ -- --
++ -- Me -- ME -- ++ -- -- ++ -- Me -- ME -- ++ -- --
""" """
MAP.map_data_loop = """ MAP.map_data_loop = """
-- -- -- -- ME -- ME -- ++ -- -- -- -- ME -- ME -- ++
-- -- MB -- -- -- -- -- -- -- -- MB -- -- -- -- -- --
++ ++ ++ -- -- ++ ++ -- ME ++ ++ ++ -- -- ++ ++ -- ME
-- MS -- Me -- Me ++ -- -- -- MS -- Me -- Me ++ -- --
ME -- ++ -- __ -- -- -- ME ME -- ++ -- __ -- -- -- ME
-- -- SP -- -- Me -- -- -- -- -- SP -- -- Me -- -- --
Me -- -- SP ++ -- ++ MB -- Me -- -- SP ++ -- ++ MB --
-- MS -- -- -- MS ++ -- -- -- MS -- -- -- MS ++ -- --
++ -- Me -- ME -- ++ -- -- ++ -- Me -- ME -- ++ -- --
""" """
MAP.weight_data = """ 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 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1, 'boss': 1}, {'battle': 4, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
A8, B8, C8, D8, E8, F8, G8, H8, I8, \ A8, B8, C8, D8, E8, F8, G8, H8, I8, \
A9, B9, C9, D9, E9, F9, G9, H9, I9, \ A9, B9, C9, D9, E9, F9, G9, H9, I9, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['CAred'] MAP_SIREN_TEMPLATE = ['CAred']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
MAP_HAS_PORTAL = True MAP_HAS_PORTAL = True
# ===== End of generated config ===== # ===== End of generated config =====
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,94 +1,94 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .t1 import Config as ConfigBase from .t1 import Config as ConfigBase
MAP = CampaignMap('T4') MAP = CampaignMap('T4')
MAP.shape = 'K9' MAP.shape = 'K9'
MAP.camera_data = ['D2', 'D5', 'D7', 'H2', 'H5', 'H7'] MAP.camera_data = ['D2', 'D5', 'D7', 'H2', 'H5', 'H7']
MAP.camera_data_spawn_point = ['D2', 'D7'] MAP.camera_data_spawn_point = ['D2', 'D7']
MAP.portal_data = [('I5', 'C5'), ('C5', 'I5'), ('E5', 'E3'), ('E3', 'E5'), ('G5', 'G7'), ('G7', 'G5')] MAP.portal_data = [('I5', 'C5'), ('C5', 'I5'), ('E5', 'E3'), ('E3', 'E5'), ('G5', 'G7'), ('G7', 'G5')]
MAP.map_data = """ MAP.map_data = """
Me -- -- ++ Me -- ME -- ME ++ ++ Me -- -- ++ Me -- ME -- ME ++ ++
-- MS -- ++ -- SP -- __ -- MS -- -- MS -- ++ -- SP -- __ -- MS --
-- -- Me ++ -- -- -- ME -- -- -- -- -- Me ++ -- -- -- ME -- -- --
ME -- ++ ++ ++ ++ ++ ++ ++ -- ME ME -- ++ ++ ++ ++ ++ ++ ++ -- ME
-- -- -- ++ -- MB -- ++ -- -- -- -- -- -- ++ -- MB -- ++ -- -- --
ME -- ++ ++ ++ ++ ++ ++ ++ -- ME ME -- ++ ++ ++ ++ ++ ++ ++ -- ME
-- -- -- ME -- -- -- ++ Me -- -- -- -- -- ME -- -- -- ++ Me -- --
-- MS -- __ -- SP -- ++ -- MS -- -- MS -- __ -- SP -- ++ -- MS --
++ ++ ME -- ME -- Me ++ -- -- Me ++ ++ ME -- ME -- Me ++ -- -- Me
""" """
MAP.map_data_loop = """ MAP.map_data_loop = """
Me -- -- ++ Me -- ME -- ME ++ ++ Me -- -- ++ Me -- ME -- ME ++ ++
-- MS -- -- -- SP -- __ -- MS -- -- MS -- -- -- SP -- __ -- MS --
-- -- Me ++ -- -- -- ME -- -- -- -- -- Me ++ -- -- -- ME -- -- --
ME -- ++ ++ -- ++ -- ++ ++ -- ME ME -- ++ ++ -- ++ -- ++ ++ -- ME
-- -- -- ++ -- MB -- ++ -- -- -- -- -- -- ++ -- MB -- ++ -- -- --
ME -- ++ ++ -- ++ -- ++ ++ -- ME ME -- ++ ++ -- ++ -- ++ ++ -- ME
-- -- -- ME -- -- -- ++ Me -- -- -- -- -- ME -- -- -- ++ Me -- --
-- MS -- __ -- SP -- -- -- MS -- -- MS -- __ -- SP -- -- -- MS --
++ ++ ME -- ME -- Me ++ -- -- Me ++ ++ ME -- ME -- Me ++ -- -- Me
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 10 50 50 50 50 50 50 50 50 50 50 10 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2, 'boss': 1}, {'battle': 4, 'enemy': 2, 'boss': 1},
{'battle': 5, 'enemy': 1}, {'battle': 5, 'enemy': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \
A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, K8, \ A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, K8, \
A9, B9, C9, D9, E9, F9, G9, H9, I9, J9, K9, \ A9, B9, C9, D9, E9, F9, G9, H9, I9, J9, K9, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['CL', 'SS'] MAP_SIREN_TEMPLATE = ['CL', 'SS']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
MAP_HAS_PORTAL = True MAP_HAS_PORTAL = True
# ===== End of generated config ===== # ===== End of generated config =====
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.82 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.82
MAP_SWIPE_MULTIPLY = 1.88 MAP_SWIPE_MULTIPLY = 1.88
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.config.MAP_HAS_MOVABLE_ENEMY: if self.config.MAP_HAS_MOVABLE_ENEMY:
self.fleet_2_push_forward() self.fleet_2_push_forward()
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,90 +1,90 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .t1 import Config as ConfigBase from .t1 import Config as ConfigBase
MAP = CampaignMap('T5') MAP = CampaignMap('T5')
MAP.shape = 'I9' MAP.shape = 'I9'
# MAP.camera_data = ['D2', 'D6', 'D7', 'F2', 'F6', 'F7'] # MAP.camera_data = ['D2', 'D6', 'D7', 'F2', 'F6', 'F7']
# MAP.camera_data_spawn_point = ['F7', 'D2'] # MAP.camera_data_spawn_point = ['F7', 'D2']
MAP.camera_data = ['D3', 'D5', 'D7', 'F3', 'F5', 'F7'] MAP.camera_data = ['D3', 'D5', 'D7', 'F3', 'F5', 'F7']
MAP.camera_data_spawn_point = ['F7', 'D3'] MAP.camera_data_spawn_point = ['F7', 'D3']
MAP.portal_data = [('D3', 'F3'), ('G4', 'G6'), ('F7', 'D7'), ('C6', 'C4')] MAP.portal_data = [('D3', 'F3'), ('G4', 'G6'), ('F7', 'D7'), ('C6', 'C4')]
MAP.map_data = """ MAP.map_data = """
++ -- -- -- ++ -- MB -- ++ ++ -- -- -- ++ -- MB -- ++
-- ME -- ME ++ MS -- MS -- -- ME -- ME ++ MS -- MS --
Me -- SP -- ++ -- __ -- -- Me -- SP -- ++ -- __ -- --
-- ME -- Me ++ Me -- ME -- -- ME -- Me ++ Me -- ME --
++ ++ ++ ++ -- ++ ++ ++ ++ ++ ++ ++ ++ -- ++ ++ ++ ++
-- ME -- Me ++ Me -- ME -- -- ME -- Me ++ Me -- ME --
-- -- __ -- ++ -- SP -- Me -- -- __ -- ++ -- SP -- Me
-- MS -- MS ++ ME -- ME -- -- MS -- MS ++ ME -- ME --
++ -- MB -- ++ -- -- -- ++ ++ -- MB -- ++ -- -- -- ++
""" """
MAP.map_data_loop = """ MAP.map_data_loop = """
++ -- -- -- ++ -- MB -- ++ ++ -- -- -- ++ -- MB -- ++
-- ME -- ME ++ MS -- MS -- -- ME -- ME ++ MS -- MS --
Me -- SP -- -- -- __ -- -- Me -- SP -- -- -- __ -- --
-- ME -- Me ++ Me -- ME -- -- ME -- Me ++ Me -- ME --
++ ++ -- ++ -- ++ -- ++ ++ ++ ++ -- ++ -- ++ -- ++ ++
-- ME -- Me ++ Me -- ME -- -- ME -- Me ++ Me -- ME --
-- -- __ -- -- -- SP -- Me -- -- __ -- -- -- SP -- Me
-- MS -- MS ++ ME -- ME -- -- MS -- MS ++ ME -- ME --
++ -- MB -- ++ -- -- -- ++ ++ -- MB -- ++ -- -- -- ++
""" """
MAP.weight_data = """ 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 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'enemy': 1, 'boss': 1}, {'battle': 5, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
A8, B8, C8, D8, E8, F8, G8, H8, I8, \ A8, B8, C8, D8, E8, F8, G8, H8, I8, \
A9, B9, C9, D9, E9, F9, G9, H9, I9, \ A9, B9, C9, D9, E9, F9, G9, H9, I9, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['CL', 'CAred'] MAP_SIREN_TEMPLATE = ['CL', 'CAred']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
MAP_HAS_PORTAL = True MAP_HAS_PORTAL = True
# ===== End of generated config ===== # ===== End of generated config =====
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,86 +1,86 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .t1 import Config as ConfigBase from .t1 import Config as ConfigBase
MAP = CampaignMap('T6') MAP = CampaignMap('T6')
MAP.shape = 'K10' MAP.shape = 'K10'
# MAP.camera_data = ['D2', 'D6', 'D8', 'H2', 'H6', 'H8'] # MAP.camera_data = ['D2', 'D6', 'D8', 'H2', 'H6', 'H8']
MAP.camera_data = ['D2', 'D6', 'G2', 'G6'] MAP.camera_data = ['D2', 'D6', 'G2', 'G6']
MAP.camera_data_spawn_point = ['D6', 'G6'] MAP.camera_data_spawn_point = ['D6', 'G6']
MAP.map_data = """ MAP.map_data = """
-- -- -- ME -- Me -- ME -- -- -- -- -- -- ME -- Me -- ME -- -- --
-- ++ ++ -- MS -- MS -- ++ ++ -- -- ++ ++ -- MS -- MS -- ++ ++ --
-- ++ ME -- -- __ -- -- ME ++ -- -- ++ ME -- -- __ -- -- ME ++ --
Me -- -- ++ ++ -- ++ ++ -- -- Me Me -- -- ++ ++ -- ++ ++ -- -- Me
++ ME -- ++ MS -- MS ++ -- ME ++ ++ ME -- ++ MS -- MS ++ -- ME ++
++ ME -- -- -- MB -- -- -- ME ++ ++ ME -- -- -- MB -- -- -- ME ++
-- -- ++ Me -- -- -- Me ++ -- -- -- -- ++ Me -- -- -- Me ++ -- --
-- ++ ++ ++ SP -- SP ++ ++ ++ -- -- ++ ++ ++ SP -- SP ++ ++ ++ --
++ -- -- ++ ++ -- ++ ++ -- -- ++ ++ -- -- ++ ++ -- ++ ++ -- -- ++
-- -- -- ++ ++ -- ++ ++ -- -- -- -- -- -- ++ ++ -- ++ ++ -- -- --
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'enemy': 1, 'boss': 1}, {'battle': 5, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \
A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, K8, \ A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, K8, \
A9, B9, C9, D9, E9, F9, G9, H9, I9, J9, K9, \ A9, B9, C9, D9, E9, F9, G9, H9, I9, J9, K9, \
A10, B10, C10, D10, E10, F10, G10, H10, I10, J10, K10, \ A10, B10, C10, D10, E10, F10, G10, H10, I10, J10, K10, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['CA', 'SS'] MAP_SIREN_TEMPLATE = ['CA', 'SS']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.446 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.446
MAP_SWIPE_MULTIPLY = 1.495 MAP_SWIPE_MULTIPLY = 1.495
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
if self.clear_enemy(scale=(2,)): if self.clear_enemy(scale=(2,)):
return True return True
if self.clear_enemy(scale=(1,)): if self.clear_enemy(scale=(1,)):
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,68 +1,68 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('TS1') MAP = CampaignMap('TS1')
MAP.shape = 'H6' MAP.shape = 'H6'
MAP.camera_data = ['D2', 'D4', 'E2', 'E4'] MAP.camera_data = ['D2', 'D4', 'E2', 'E4']
MAP.camera_data_spawn_point = ['E4'] MAP.camera_data_spawn_point = ['E4']
MAP.map_data = """ MAP.map_data = """
MB -- ++ ++ ++ ++ -- -- MB -- ++ ++ ++ ++ -- --
-- MS -- -- -- ++ ++ ++ -- MS -- -- -- ++ ++ ++
++ -- -- -- Me -- -- ++ ++ -- -- -- Me -- -- ++
++ ++ ++ ++ -- -- ME -- ++ ++ ++ ++ -- -- ME --
-- -- -- -- ++ ++ -- SP -- -- -- -- ++ ++ -- SP
-- ++ -- -- -- ++ SP -- -- ++ -- -- -- ++ SP --
""" """
MAP.weight_data = """ 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 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 1}, {'battle': 0, 'enemy': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
# {'battle': 2, 'siren': 1}, # {'battle': 2, 'siren': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'boss': 1}, {'battle': 3, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
# MAP_SIREN_TEMPLATE = ['srzl2'] # MAP_SIREN_TEMPLATE = ['srzl2']
# MOVABLE_ENEMY_TURN = (0,) # MOVABLE_ENEMY_TURN = (0,)
# MAP_HAS_SIREN = True # MAP_HAS_SIREN = True
# MAP_HAS_MOVABLE_ENEMY = True # MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = False MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
STAR_REQUIRE_1 = 0 STAR_REQUIRE_1 = 0
STAR_REQUIRE_2 = 0 STAR_REQUIRE_2 = 0
STAR_REQUIRE_3 = 0 STAR_REQUIRE_3 = 0
# ===== End of generated config ===== # ===== End of generated config =====
STAGE_ENTRANCE = ['blue'] STAGE_ENTRANCE = ['blue']
FLEET_2 = 0 FLEET_2 = 0
MAP_IS_ONE_TIME_STAGE = True MAP_IS_ONE_TIME_STAGE = True
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
return self.battle_default() return self.battle_default()
def battle_3(self): def battle_3(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,66 +1,66 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .ts1 import Config as ConfigBase from .ts1 import Config as ConfigBase
from module.exception import CampaignEnd from module.exception import CampaignEnd
MAP = CampaignMap('TS2') MAP = CampaignMap('TS2')
MAP.shape = 'H8' MAP.shape = 'H8'
MAP.camera_data = ['D2', 'D6', 'E2', 'E6'] MAP.camera_data = ['D2', 'D6', 'E2', 'E6']
MAP.camera_data_spawn_point = ['D6'] MAP.camera_data_spawn_point = ['D6']
MAP.map_data = """ MAP.map_data = """
++ MM -- -- -- -- -- -- ++ MM -- -- -- -- -- --
++ ++ ++ ++ -- -- -- ++ ++ ++ ++ ++ -- -- -- ++
-- -- -- -- -- ++ -- ++ -- -- -- -- -- ++ -- ++
-- -- -- ++ ++ ++ -- ++ -- -- -- ++ ++ ++ -- ++
-- ++ -- -- ++ -- -- -- -- ++ -- -- ++ -- -- --
-- -- ++ -- -- ++ -- ++ -- -- ++ -- -- ++ -- ++
-- -- SP ++ MM ++ -- ++ -- -- SP ++ MM ++ -- ++
MM -- -- ++ ++ ++ -- ++ MM -- -- ++ ++ ++ -- ++
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0}, {'battle': 0},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
A7, B7, C7, D7, E7, F7, G7, H7, \ A7, B7, C7, D7, E7, F7, G7, H7, \
A8, B8, C8, D8, E8, F8, G8, H8, \ A8, B8, C8, D8, E8, F8, G8, H8, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = False MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
STAR_REQUIRE_1 = 0 STAR_REQUIRE_1 = 0
STAR_REQUIRE_2 = 0 STAR_REQUIRE_2 = 0
STAR_REQUIRE_3 = 0 STAR_REQUIRE_3 = 0
# ===== End of generated config ===== # ===== End of generated config =====
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
self.goto(A8, expected='story') self.goto(A8, expected='story')
self.goto(E7, expected='story') self.goto(E7, expected='story')
self.goto(B1, expected='story') self.goto(B1, expected='story')
self.goto(G8, expected='story') self.goto(G8, expected='story')
raise CampaignEnd() raise CampaignEnd()

View File

@@ -1,67 +1,67 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('SP1') MAP = CampaignMap('SP1')
MAP.shape = 'K7' MAP.shape = 'K7'
MAP.camera_data = ['D2', 'D5', 'H2', 'H5'] MAP.camera_data = ['D2', 'D5', 'H2', 'H5']
MAP.camera_data_spawn_point = ['H5'] MAP.camera_data_spawn_point = ['H5']
MAP.map_data = """ MAP.map_data = """
++ ++ ++ -- ME -- -- -- -- ++ -- ++ ++ ++ -- ME -- -- -- -- ++ --
-- ME -- ++ -- ++ ++ ME -- ++ ME -- ME -- ++ -- ++ ++ ME -- ++ ME
ME -- -- Me -- ME ++ -- Me ++ -- ME -- -- Me -- ME ++ -- Me ++ --
-- -- -- -- -- ++ ME -- -- -- SP -- -- -- -- -- ++ ME -- -- -- SP
ME -- -- Me -- -- -- __ -- -- SP ME -- -- Me -- -- -- __ -- -- SP
-- -- ME ++ -- MS -- Me -- -- -- -- -- ME ++ -- MS -- Me -- -- --
-- -- -- ++ MB -- MB ++ ++ ++ ++ -- -- -- ++ MB -- MB ++ ++ ++ ++
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'boss': 1}, {'battle': 4, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['Z18'] MAP_SIREN_TEMPLATE = ['Z18']
MOVABLE_ENEMY_TURN = (3,) MOVABLE_ENEMY_TURN = (3,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,68 +1,68 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .sp1 import Config as ConfigBase from .sp1 import Config as ConfigBase
MAP = CampaignMap('SP2') MAP = CampaignMap('SP2')
MAP.shape = 'K7' MAP.shape = 'K7'
MAP.camera_data = ['D2', 'D5', 'H2', 'H5'] MAP.camera_data = ['D2', 'D5', 'H2', 'H5']
MAP.camera_data_spawn_point = ['D2', 'H2'] MAP.camera_data_spawn_point = ['D2', 'H2']
MAP.map_data = """ MAP.map_data = """
-- -- ++ ++ SP -- SP ++ ++ ++ ++ -- -- ++ ++ SP -- SP ++ ++ ++ ++
-- ME ++ ++ -- -- -- -- -- ME ME -- ME ++ ++ -- -- -- -- -- ME ME
ME -- -- MS -- -- -- ME -- -- MB ME -- -- MS -- -- -- ME -- -- MB
++ -- -- -- Me -- Me ++ __ -- MB ++ -- -- -- Me -- Me ++ __ -- MB
-- -- ++ ++ ++ MS -- ++ -- -- ME -- -- ++ ++ ++ MS -- ++ -- -- ME
-- ME -- ME ++ -- -- -- -- Me ++ -- ME -- ME ++ -- -- -- -- Me ++
-- -- -- -- Me -- ME -- ME -- ++ -- -- -- -- Me -- ME -- ME -- ++
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'boss': 1}, {'battle': 4, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['Z2'] MAP_SIREN_TEMPLATE = ['Z2']
MOVABLE_ENEMY_TURN = (3,) MOVABLE_ENEMY_TURN = (3,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,69 +1,69 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .sp1 import Config as ConfigBase from .sp1 import Config as ConfigBase
MAP = CampaignMap('SP3') MAP = CampaignMap('SP3')
MAP.shape = 'K7' MAP.shape = 'K7'
MAP.camera_data = ['D2', 'D5', 'H2', 'H5'] MAP.camera_data = ['D2', 'D5', 'H2', 'H5']
MAP.camera_data_spawn_point = ['D2'] MAP.camera_data_spawn_point = ['D2']
MAP.map_data = """ MAP.map_data = """
++ ++ ++ MS ++ ME -- ME ++ ++ ++ ++ ++ ++ MS ++ ME -- ME ++ ++ ++
SP -- -- -- -- -- MS -- ME Me -- SP -- -- -- -- -- MS -- ME Me --
SP -- -- -- -- Me -- __ -- -- ME SP -- -- -- -- Me -- __ -- -- ME
++ ++ ++ MS -- ++ ++ -- Me ++ -- ++ ++ ++ MS -- ++ ++ -- Me ++ --
MB MB ++ -- Me ++ ++ -- -- ++ ++ MB MB ++ -- Me ++ ++ -- -- ++ ++
-- -- -- -- -- -- -- -- -- ME -- -- -- -- -- -- -- -- -- -- ME --
ME ME -- Me -- ME ++ ME -- ME -- ME ME -- Me -- ME ++ ME -- ME --
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 2, 'siren': 1}, {'battle': 1, 'enemy': 2, 'siren': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5, 'boss': 1}, {'battle': 5, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['Z19'] MAP_SIREN_TEMPLATE = ['Z19']
MOVABLE_ENEMY_TURN = (3,) MOVABLE_ENEMY_TURN = (3,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,73 +1,73 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('SP1') MAP = CampaignMap('SP1')
MAP.shape = 'I6' MAP.shape = 'I6'
MAP.camera_data = ['D2', 'D4', 'F2', 'F4'] MAP.camera_data = ['D2', 'D4', 'F2', 'F4']
MAP.camera_data_spawn_point = ['D4'] MAP.camera_data_spawn_point = ['D4']
MAP.map_data = """ MAP.map_data = """
++ ++ ME -- -- -- ME ++ -- ++ ++ ME -- -- -- ME ++ --
++ ++ Me -- ME MB -- -- Me ++ ++ Me -- ME MB -- -- Me
-- -- -- -- __ ++ ME -- ME -- -- -- -- __ ++ ME -- ME
SP -- -- ME MB ++ ME -- -- SP -- -- ME MB ++ ME -- --
-- -- ME ++ -- -- -- -- Me -- -- ME ++ -- -- -- -- Me
SP -- -- -- -- Me ++ ++ ++ SP -- -- -- -- Me ++ ++ ++
""" """
MAP.weight_data = """ 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 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3}, {'battle': 0, 'enemy': 3},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'boss': 1}, {'battle': 4, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = False MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (80, 255 - 24), 'height': (80, 255 - 24),
'width': (0.9, 10), 'width': (0.9, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 24, 255), 'height': (255 - 24, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
'width': (0, 10), 'width': (0, 10),
'wlen': 1000, 'wlen': 1000,
} }
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.714 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.714
MAP_SWIPE_MULTIPLY = 1.773 MAP_SWIPE_MULTIPLY = 1.773
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,61 +1,61 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .sp1 import Config as ConfigBase from .sp1 import Config as ConfigBase
MAP = CampaignMap('SP2') MAP = CampaignMap('SP2')
MAP.shape = 'H7' MAP.shape = 'H7'
MAP.camera_data = ['D2', 'D5', 'E2', 'E5'] MAP.camera_data = ['D2', 'D5', 'E2', 'E5']
MAP.camera_data_spawn_point = ['D2', 'E2'] MAP.camera_data_spawn_point = ['D2', 'E2']
MAP.map_data = """ MAP.map_data = """
-- ME -- SP SP -- -- ME -- ME -- SP SP -- -- ME
ME ++ -- -- -- -- Me -- ME ++ -- -- -- -- Me --
-- -- -- -- ++ ++ ++ -- -- -- -- -- ++ ++ ++ --
-- -- Me -- -- -- ME -- -- -- Me -- -- -- ME --
Me -- ++ ++ ME __ -- MB Me -- ++ ++ ME __ -- MB
ME -- -- ++ ME -- Me ++ ME -- -- ++ ME -- Me ++
++ ME -- ME -- MB -- ++ ++ ME -- ME -- MB -- ++
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 4}, {'battle': 0, 'enemy': 4},
{'battle': 1, 'enemy': 3}, {'battle': 1, 'enemy': 3},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'boss': 1}, {'battle': 4, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
A7, B7, C7, D7, E7, F7, G7, H7, \ A7, B7, C7, D7, E7, F7, G7, H7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = False MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,59 +1,59 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .sp1 import Config as ConfigBase from .sp1 import Config as ConfigBase
MAP = CampaignMap('SP3') MAP = CampaignMap('SP3')
MAP.shape = 'I6' MAP.shape = 'I6'
MAP.camera_data = ['D2', 'D4', 'F2', 'F4'] MAP.camera_data = ['D2', 'D4', 'F2', 'F4']
MAP.camera_data_spawn_point = ['F2', 'D2'] MAP.camera_data_spawn_point = ['F2', 'D2']
MAP.map_data = """ MAP.map_data = """
++ ++ Me ++ ++ ++ ME Me ME ++ ++ Me ++ ++ ++ ME Me ME
++ ++ -- -- MB -- -- -- -- ++ ++ -- -- MB -- -- -- --
-- ME -- SP MB SP -- ++ ME -- ME -- SP MB SP -- ++ ME
-- Me -- -- __ -- -- ME -- -- Me -- -- __ -- -- ME --
++ ME -- Me ++ Me -- ++ ++ ++ ME -- Me ++ Me -- ++ ++
++ ME -- ME -- ME -- Me ++ ++ ME -- ME -- ME -- Me ++
""" """
MAP.weight_data = """ 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 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 4}, {'battle': 0, 'enemy': 4},
{'battle': 1, 'enemy': 3}, {'battle': 1, 'enemy': 3},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5, 'boss': 1}, {'battle': 5, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = False MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,92 +1,92 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('SP') MAP = CampaignMap('SP')
MAP.shape = 'G8' MAP.shape = 'G8'
MAP.camera_data = ['D3', 'D6'] MAP.camera_data = ['D3', 'D6']
MAP.camera_data_spawn_point = ['D6'] MAP.camera_data_spawn_point = ['D6']
MAP.camera_sight = (-2, -1, 3, 2) MAP.camera_sight = (-2, -1, 3, 2)
MAP.map_data = """ MAP.map_data = """
-- -- ++ ++ ++ -- -- -- -- ++ ++ ++ -- --
-- -- -- MS -- -- -- -- -- -- MS -- -- --
++ ++ ME -- ME ++ ++ ++ ++ ME -- ME ++ ++
++ ++ -- MB -- ++ ++ ++ ++ -- MB -- ++ ++
-- -- ME -- ME -- -- -- -- ME -- ME -- --
-- MS -- __ -- MS -- -- MS -- __ -- MS --
-- ++ SP -- SP ++ -- -- ++ SP -- SP ++ --
-- ++ -- -- -- ++ -- -- ++ -- -- -- ++ --
""" """
MAP.weight_data = """ 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
50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'siren': 3}, {'battle': 0, 'siren': 3},
{'battle': 1}, {'battle': 1},
{'battle': 2}, {'battle': 2},
{'battle': 3, 'enemy': 4}, {'battle': 3, 'enemy': 4},
{'battle': 4}, {'battle': 4},
{'battle': 5}, {'battle': 5},
{'battle': 6}, {'battle': 6},
{'battle': 7, 'boss': 1}, {'battle': 7, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, \ A1, B1, C1, D1, E1, F1, G1, \
A2, B2, C2, D2, E2, F2, G2, \ A2, B2, C2, D2, E2, F2, G2, \
A3, B3, C3, D3, E3, F3, G3, \ A3, B3, C3, D3, E3, F3, G3, \
A4, B4, C4, D4, E4, F4, G4, \ A4, B4, C4, D4, E4, F4, G4, \
A5, B5, C5, D5, E5, F5, G5, \ A5, B5, C5, D5, E5, F5, G5, \
A6, B6, C6, D6, E6, F6, G6, \ A6, B6, C6, D6, E6, F6, G6, \
A7, B7, C7, D7, E7, F7, G7, \ A7, B7, C7, D7, E7, F7, G7, \
A8, B8, C8, D8, E8, F8, G8, \ A8, B8, C8, D8, E8, F8, G8, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = False MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
STAR_REQUIRE_1 = 0 STAR_REQUIRE_1 = 0
STAR_REQUIRE_2 = 0 STAR_REQUIRE_2 = 0
STAR_REQUIRE_3 = 0 STAR_REQUIRE_3 = 0
# ===== End of generated config ===== # ===== End of generated config =====
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_SIREN_TEMPLATE = ['BaltimoreIdol', 'RoonIdol', 'IllustriousIdol'] MAP_SIREN_TEMPLATE = ['BaltimoreIdol', 'RoonIdol', 'IllustriousIdol']
DETECTION_BACKEND = 'perspective' DETECTION_BACKEND = 'perspective'
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
EDGE_LINES_HOUGHLINES_THRESHOLD = 40 EDGE_LINES_HOUGHLINES_THRESHOLD = 40
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (150, 255 - 12), 'height': (150, 255 - 12),
'width': (0.9, 10), 'width': (0.9, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 9, 255), 'height': (255 - 9, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
# 'width': (0, 7), # 'width': (0, 7),
'wlen': 1000 'wlen': 1000
} }
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_7(self): def battle_7(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,85 +1,85 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('SP1') MAP = CampaignMap('SP1')
MAP.shape = 'G7' MAP.shape = 'G7'
MAP.camera_data = ['C2', 'C5'] MAP.camera_data = ['C2', 'C5']
MAP.camera_data_spawn_point = ['C5'] MAP.camera_data_spawn_point = ['C5']
MAP.camera_sight = (-2, -1, 3, 2) MAP.camera_sight = (-2, -1, 3, 2)
MAP.map_data = """ MAP.map_data = """
++ ++ -- ME -- ++ ++ ++ ++ -- ME -- ++ ++
++ ++ ME __ ME -- ++ ++ ++ ME __ ME -- ++
ME -- MS -- MS -- ME ME -- MS -- MS -- ME
-- Me -- ++ -- -- Me -- Me -- ++ -- -- Me
ME -- -- -- -- -- ++ ME -- -- -- -- -- ++
++ -- SP MB SP -- ++ ++ -- SP MB SP -- ++
++ ME -- -- -- ME -- ++ ME -- -- -- ME --
""" """
MAP.weight_data = """ 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
50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'boss': 1}, {'battle': 4, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, \ A1, B1, C1, D1, E1, F1, G1, \
A2, B2, C2, D2, E2, F2, G2, \ A2, B2, C2, D2, E2, F2, G2, \
A3, B3, C3, D3, E3, F3, G3, \ A3, B3, C3, D3, E3, F3, G3, \
A4, B4, C4, D4, E4, F4, G4, \ A4, B4, C4, D4, E4, F4, G4, \
A5, B5, C5, D5, E5, F5, G5, \ A5, B5, C5, D5, E5, F5, G5, \
A6, B6, C6, D6, E6, F6, G6, \ A6, B6, C6, D6, E6, F6, G6, \
A7, B7, C7, D7, E7, F7, G7, \ A7, B7, C7, D7, E7, F7, G7, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['LeMalinIdol', 'DidoIdol'] MAP_SIREN_TEMPLATE = ['LeMalinIdol', 'DidoIdol']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
DETECTION_BACKEND = 'perspective' DETECTION_BACKEND = 'perspective'
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
EDGE_LINES_HOUGHLINES_THRESHOLD = 40 EDGE_LINES_HOUGHLINES_THRESHOLD = 40
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (150, 255 - 12), 'height': (150, 255 - 12),
'width': (0.9, 10), 'width': (0.9, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 9, 255), 'height': (255 - 9, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
# 'width': (0, 7), # 'width': (0, 7),
'wlen': 1000 'wlen': 1000
} }
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,73 +1,73 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .sp1 import Config as ConfigBase from .sp1 import Config as ConfigBase
MAP = CampaignMap('SP2') MAP = CampaignMap('SP2')
MAP.shape = 'I7' MAP.shape = 'I7'
MAP.camera_data = ['C2', 'C5', 'F2', 'F5'] MAP.camera_data = ['C2', 'C5', 'F2', 'F5']
MAP.camera_data_spawn_point = ['C2'] MAP.camera_data_spawn_point = ['C2']
MAP.camera_sight = (-2, -1, 3, 2) MAP.camera_sight = (-2, -1, 3, 2)
MAP.map_covered = ['E3'] MAP.map_covered = ['E3']
MAP.map_data = """ MAP.map_data = """
-- SP -- SP ++ ++ ++ ME -- -- SP -- SP ++ ++ ++ ME --
-- -- __ -- -- MS ME -- MB -- -- __ -- -- MS ME -- MB
Me -- -- ME -- -- -- -- -- Me -- -- ME -- -- -- -- --
-- ++ -- -- ++ -- ++ ++ ME -- ++ -- -- ++ -- ++ ++ ME
ME -- MS -- -- -- ++ ++ -- ME -- MS -- -- -- ++ ++ --
-- ME -- -- Me -- -- -- ME -- ME -- -- Me -- -- -- ME
++ ++ ++ ME -- ME ME -- -- ++ ++ ++ ME -- ME ME -- --
""" """
MAP.weight_data = """ 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 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3, 'siren': 1}, {'battle': 0, 'enemy': 3, 'siren': 1},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'boss': 1}, {'battle': 4, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['LeMalinIdol', 'DidoIdol', 'AlbacoreIdol'] MAP_SIREN_TEMPLATE = ['LeMalinIdol', 'DidoIdol', 'AlbacoreIdol']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
MAP_SWIPE_MULTIPLY = 1.847 MAP_SWIPE_MULTIPLY = 1.847
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.786 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.786
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,74 +1,74 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .sp1 import Config as ConfigBase from .sp1 import Config as ConfigBase
MAP = CampaignMap('SP3') MAP = CampaignMap('SP3')
MAP.shape = 'I7' MAP.shape = 'I7'
MAP.camera_data = ['C2', 'C5', 'F2', 'F5'] MAP.camera_data = ['C2', 'C5', 'F2', 'F5']
MAP.camera_data_spawn_point = ['D2', 'D5'] MAP.camera_data_spawn_point = ['D2', 'D5']
MAP.camera_sight = (-2, -1, 3, 2) MAP.camera_sight = (-2, -1, 3, 2)
MAP.map_covered = ['E3'] MAP.map_covered = ['E3']
MAP.map_data = """ MAP.map_data = """
++ ++ ++ -- -- -- ME ++ ++ ++ ++ ++ -- -- -- ME ++ ++
SP -- -- -- Me -- -- ME ++ SP -- -- -- Me -- -- ME ++
-- -- -- MS -- MS -- -- ME -- -- -- MS -- MS -- -- ME
SP -- Me -- ++ -- Me __ MB SP -- Me -- ++ -- Me __ MB
-- -- -- MS -- MS -- -- ME -- -- -- MS -- MS -- -- ME
ME ME ++ -- ME -- -- ME ++ ME ME ++ -- ME -- -- ME ++
-- -- ++ -- MB -- ME ++ ++ -- -- ++ -- MB -- ME ++ ++
""" """
MAP.weight_data = """ 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 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3, 'siren': 2}, {'battle': 0, 'enemy': 3, 'siren': 2},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4}, {'battle': 4},
{'battle': 5, 'boss': 1}, {'battle': 5, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['DidoIdol', 'BaltimoreIdol', 'AlbacoreIdol'] MAP_SIREN_TEMPLATE = ['DidoIdol', 'BaltimoreIdol', 'AlbacoreIdol']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
MAP_SWIPE_MULTIPLY = 1.847 MAP_SWIPE_MULTIPLY = 1.847
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.786 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.786
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,74 +1,74 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .sp1 import Config as ConfigBase from .sp1 import Config as ConfigBase
MAP = CampaignMap('SP4') MAP = CampaignMap('SP4')
MAP.shape = 'I7' MAP.shape = 'I7'
MAP.camera_data = ['C2', 'C5', 'F2', 'F5'] MAP.camera_data = ['C2', 'C5', 'F2', 'F5']
MAP.camera_data_spawn_point = ['D2'] MAP.camera_data_spawn_point = ['D2']
MAP.camera_sight = (-2, -1, 3, 2) MAP.camera_sight = (-2, -1, 3, 2)
MAP.map_covered = ['E3'] MAP.map_covered = ['E3']
MAP.map_data = """ MAP.map_data = """
++ -- SP -- ++ MS ++ ++ -- ++ -- SP -- ++ MS ++ ++ --
++ SP -- ME -- -- Me ++ -- ++ SP -- ME -- -- Me ++ --
-- -- -- __ MS -- -- ME ME -- -- -- __ MS -- -- ME ME
-- ME -- MS ++ MB ME -- -- -- ME -- MS ++ MB ME -- --
MS ++ -- -- MB -- -- -- Me MS ++ -- -- MB -- -- -- Me
++ ME -- Me ME Me -- ++ -- ++ ME -- Me ME Me -- ++ --
-- -- ME ++ ++ ++ ME ++ -- -- -- ME ++ ++ ++ ME ++ --
""" """
MAP.weight_data = """ 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 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3, 'siren': 2}, {'battle': 0, 'enemy': 3, 'siren': 2},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5, 'boss': 1}, {'battle': 5, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['ClevelandIdol', 'HipperIdol', 'SpeeIdol'] MAP_SIREN_TEMPLATE = ['ClevelandIdol', 'HipperIdol', 'SpeeIdol']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
MAP_SWIPE_MULTIPLY = 1.847 MAP_SWIPE_MULTIPLY = 1.847
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.786 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.786
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,101 +1,101 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .sp1 import Config as ConfigBase from .sp1 import Config as ConfigBase
MAP = CampaignMap('SP5') MAP = CampaignMap('SP5')
MAP.shape = 'I10' MAP.shape = 'I10'
MAP.camera_data = ['D3', 'D6', 'E6'] MAP.camera_data = ['D3', 'D6', 'E6']
MAP.camera_data_spawn_point = ['D7'] MAP.camera_data_spawn_point = ['D7']
MAP.camera_sight = (-2, -1, 3, 2) MAP.camera_sight = (-2, -1, 3, 2)
MAP.map_data = """ MAP.map_data = """
-- ++ ME -- -- -- ME ++ -- -- ++ ME -- -- -- ME ++ --
-- ++ ME -- MB -- ME ++ -- -- ++ ME -- MB -- ME ++ --
++ Me -- -- -- -- -- Me ++ ++ Me -- -- -- -- -- Me ++
++ ++ ++ Me __ Me ++ ++ ++ ++ ++ ++ Me __ Me ++ ++ ++
-- -- MS -- -- -- MS -- -- -- -- MS -- -- -- MS -- --
-- ++ -- -- Me -- -- ++ -- -- ++ -- -- Me -- -- ++ --
-- -- MS -- Me -- MS -- -- -- -- MS -- Me -- MS -- --
++ ME -- -- -- -- -- ME ++ ++ ME -- -- -- -- -- ME ++
-- ++ ++ SP -- SP ++ ++ -- -- ++ ++ SP -- SP ++ ++ --
-- -- ++ -- -- -- ++ -- -- -- -- ++ -- -- -- ++ -- --
""" """
MAP.weight_data = """ 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 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3, 'siren': 2}, {'battle': 0, 'enemy': 3, 'siren': 2},
{'battle': 1, 'enemy': 2, 'siren': 1}, {'battle': 1, 'enemy': 2, 'siren': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5}, {'battle': 5},
{'battle': 6, 'boss': 1}, {'battle': 6, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
A8, B8, C8, D8, E8, F8, G8, H8, I8, \ A8, B8, C8, D8, E8, F8, G8, H8, I8, \
A9, B9, C9, D9, E9, F9, G9, H9, I9, \ A9, B9, C9, D9, E9, F9, G9, H9, I9, \
A10, B10, C10, D10, E10, F10, G10, H10, I10, \ A10, B10, C10, D10, E10, F10, G10, H10, I10, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['BaltimoreIdol', 'RoonIdol', 'IllustriousIdol'] MAP_SIREN_TEMPLATE = ['BaltimoreIdol', 'RoonIdol', 'IllustriousIdol']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
MAP_SWIPE_MULTIPLY = 1.445 MAP_SWIPE_MULTIPLY = 1.445
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.397 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.397
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
EDGE_LINES_HOUGHLINES_THRESHOLD = 75 EDGE_LINES_HOUGHLINES_THRESHOLD = 75
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
if self.clear_enemy(scale=(2,), genre=['light', 'main', 'enemy', 'carrier']): if self.clear_enemy(scale=(2,), genre=['light', 'main', 'enemy', 'carrier']):
return True return True
if self.clear_enemy(scale=(1,)): if self.clear_enemy(scale=(1,)):
return True return True
if self.clear_enemy(genre=['light', 'main', 'enemy']): if self.clear_enemy(genre=['light', 'main', 'enemy']):
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
if self.clear_enemy(scale=(1,)): if self.clear_enemy(scale=(1,)):
return True return True
if self.clear_enemy(scale=(2,), genre=['light', 'main', 'enemy', 'carrier']): if self.clear_enemy(scale=(2,), genre=['light', 'main', 'enemy', 'carrier']):
return True return True
if self.clear_enemy(genre=['light', 'main', 'enemy']): if self.clear_enemy(genre=['light', 'main', 'enemy']):
return True return True
return self.battle_default() return self.battle_default()
def battle_6(self): def battle_6(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,69 +1,69 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('VSP') MAP = CampaignMap('VSP')
MAP.shape = 'I6' MAP.shape = 'I6'
MAP.camera_data = ['E4', 'E3'] MAP.camera_data = ['E4', 'E3']
MAP.camera_data_spawn_point = ['E4'] MAP.camera_data_spawn_point = ['E4']
MAP.map_data = """ MAP.map_data = """
++ ++ ++ ++ MB ++ ++ ++ ++ ++ ++ ++ ++ MB ++ ++ ++ ++
++ -- ME -- MS -- ME -- ++ ++ -- ME -- MS -- ME -- ++
-- ME -- MS -- MS -- ME -- -- ME -- MS -- MS -- ME --
++ -- ME -- __ -- ME -- ++ ++ -- ME -- __ -- ME -- ++
-- ++ ++ -- -- -- ++ ++ -- -- ++ ++ -- -- -- ++ ++ --
-- ++ ++ SP -- SP ++ ++ -- -- ++ ++ SP -- SP ++ ++ --
""" """
MAP.weight_data = """ 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 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'siren': 3}, {'battle': 0, 'siren': 3},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 2}, {'battle': 3, 'enemy': 2},
{'battle': 4}, {'battle': 4},
{'battle': 5}, {'battle': 5},
{'battle': 6}, {'battle': 6},
{'battle': 7, 'boss': 1}, {'battle': 7, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = False MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
STAR_REQUIRE_1 = 0 STAR_REQUIRE_1 = 0
STAR_REQUIRE_2 = 0 STAR_REQUIRE_2 = 0
STAR_REQUIRE_3 = 0 STAR_REQUIRE_3 = 0
# ===== End of generated config ===== # ===== End of generated config =====
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_SIREN_TEMPLATE = ['KasumiDOA', 'NagisaDOA', 'NyotenguDOA'] MAP_SIREN_TEMPLATE = ['KasumiDOA', 'NagisaDOA', 'NyotenguDOA']
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_7(self): def battle_7(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,76 +1,76 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('SP1') MAP = CampaignMap('SP1')
MAP.shape = 'H7' MAP.shape = 'H7'
MAP.camera_data = ['D2', 'D5', 'E2', 'E5'] MAP.camera_data = ['D2', 'D5', 'E2', 'E5']
MAP.camera_data_spawn_point = ['D2'] MAP.camera_data_spawn_point = ['D2']
MAP.map_data = """ MAP.map_data = """
-- SP -- ++ ++ -- -- ++ -- SP -- ++ ++ -- -- ++
SP -- -- ++ ++ Me ME ++ SP -- -- ++ ++ Me ME ++
-- -- -- Me ME -- -- -- -- -- -- Me ME -- -- --
ME ++ -- __ -- -- -- MB ME ++ -- __ -- -- -- MB
-- Me -- -- Me ME -- -- -- Me -- -- Me ME -- --
ME -- -- ME ++ ++ ME ME ME -- -- ME ++ ++ ME ME
++ -- ME -- -- ++ -- -- ++ -- ME -- -- ++ -- --
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3}, {'battle': 0, 'enemy': 3},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'boss': 1}, {'battle': 4, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
A7, B7, C7, D7, E7, F7, G7, H7, \ A7, B7, C7, D7, E7, F7, G7, H7, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
STAGE_ENTRANCE = ['normal', 'half'] # normal, blue, half STAGE_ENTRANCE = ['normal', 'half'] # normal, blue, half
MAP_SWIPE_MULTIPLY = 1.866 MAP_SWIPE_MULTIPLY = 1.866
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.804 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.804
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (80, 255 - 40), 'height': (80, 255 - 40),
'width': (0.9, 10), 'width': (0.9, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 24, 255), 'height': (255 - 24, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
# 'width': (0, 7), # 'width': (0, 7),
'wlen': 1000 'wlen': 1000
} }
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,71 +1,71 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .sp1 import Config as ConfigBase from .sp1 import Config as ConfigBase
MAP = CampaignMap('SP2') MAP = CampaignMap('SP2')
MAP.shape = 'I7' MAP.shape = 'I7'
MAP.camera_data = ['D2', 'D5', 'F2', 'F5'] MAP.camera_data = ['D2', 'D5', 'F2', 'F5']
MAP.camera_data_spawn_point = ['D2', 'D5'] MAP.camera_data_spawn_point = ['D2', 'D5']
MAP.map_data = """ MAP.map_data = """
-- -- MS ++ ME MB ME ++ ++ -- -- MS ++ ME MB ME ++ ++
-- ++ -- Me -- -- -- ME ++ -- ++ -- Me -- -- -- ME ++
-- SP -- -- -- ME -- -- ME -- SP -- -- -- ME -- -- ME
-- -- -- ME __ ++ -- Me -- -- -- -- ME __ ++ -- Me --
-- SP -- -- -- ++ -- -- ME -- SP -- -- -- ++ -- -- ME
++ ++ -- Me -- -- -- ME ++ ++ ++ -- Me -- -- -- ME ++
++ ++ MS -- ++ ME ME -- -- ++ ++ MS -- ++ ME ME -- --
""" """
MAP.weight_data = """ 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 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3, 'siren': 1}, {'battle': 0, 'enemy': 3, 'siren': 1},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'boss': 1}, {'battle': 4, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['MarieRoseDOA'] MAP_SIREN_TEMPLATE = ['MarieRoseDOA']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
MAP_SWIPE_MULTIPLY = 1.714 MAP_SWIPE_MULTIPLY = 1.714
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.657 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.657
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,72 +1,72 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .sp1 import Config as ConfigBase from .sp1 import Config as ConfigBase
MAP = CampaignMap('SP3') MAP = CampaignMap('SP3')
MAP.shape = 'I7' MAP.shape = 'I7'
MAP.camera_data = ['D2', 'D5', 'F2', 'F5'] MAP.camera_data = ['D2', 'D5', 'F2', 'F5']
MAP.camera_data_spawn_point = ['D5'] MAP.camera_data_spawn_point = ['D5']
MAP.map_data = """ MAP.map_data = """
-- Me ++ ++ ++ ME -- -- -- -- Me ++ ++ ++ ME -- -- --
++ -- ME -- Me -- ME ++ -- ++ -- ME -- Me -- ME ++ --
++ -- -- MS -- -- -- ME -- ++ -- -- MS -- -- -- ME --
SP -- -- __ ++ Me -- -- MB SP -- -- __ ++ Me -- -- MB
SP -- -- __ -- MS -- ME MB SP -- -- __ -- MS -- ME MB
++ -- Me MS -- -- -- ++ -- ++ -- Me MS -- -- -- ++ --
ME -- ME ++ ++ ++ ME ++ -- ME -- ME ++ ++ ++ ME ++ --
""" """
MAP.weight_data = """ 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 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3, 'siren': 2}, {'battle': 0, 'enemy': 3, 'siren': 2},
{'battle': 1, 'enemy': 2}, {'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4}, {'battle': 4},
{'battle': 5, 'boss': 1}, {'battle': 5, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['MisakiDOA', 'KasumiDOA'] MAP_SIREN_TEMPLATE = ['MisakiDOA', 'KasumiDOA']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
MAP_SWIPE_MULTIPLY = 1.626 MAP_SWIPE_MULTIPLY = 1.626
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.572 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.572
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,78 +1,78 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .sp1 import Config as ConfigBase from .sp1 import Config as ConfigBase
MAP = CampaignMap('SP4') MAP = CampaignMap('SP4')
MAP.shape = 'I8' MAP.shape = 'I8'
MAP.camera_data = ['D2', 'D6', 'F2', 'F6'] MAP.camera_data = ['D2', 'D6', 'F2', 'F6']
MAP.camera_data_spawn_point = ['F6', 'D6'] MAP.camera_data_spawn_point = ['F6', 'D6']
MAP.map_data = """ MAP.map_data = """
-- -- ME ++ ++ ++ ME -- -- -- -- ME ++ ++ ++ ME -- --
++ ME -- -- Me -- -- ME ++ ++ ME -- -- Me -- -- ME ++
ME -- ME -- ++ -- ME -- ME ME -- ME -- ++ -- ME -- ME
ME -- ++ -- MB -- ++ -- ME ME -- ++ -- MB -- ++ -- ME
ME -- ++ MS -- MS ++ -- ME ME -- ++ MS -- MS ++ -- ME
++ -- Me -- __ -- Me -- ++ ++ -- Me -- __ -- Me -- ++
ME -- MS -- -- -- MS -- ME ME -- MS -- -- -- MS -- ME
++ ++ ++ SP -- SP ++ ++ ++ ++ ++ ++ SP -- SP ++ ++ ++
""" """
MAP.weight_data = """ 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 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3, 'siren': 2}, {'battle': 0, 'enemy': 3, 'siren': 2},
{'battle': 1, 'enemy': 2, 'siren': 1}, {'battle': 1, 'enemy': 2, 'siren': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4}, {'battle': 4},
{'battle': 5, 'boss': 1}, {'battle': 5, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
A8, B8, C8, D8, E8, F8, G8, H8, I8, \ A8, B8, C8, D8, E8, F8, G8, H8, I8, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['MisakiDOA', 'KasumiDOA', 'NagisaDOA'] MAP_SIREN_TEMPLATE = ['MisakiDOA', 'KasumiDOA', 'NagisaDOA']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
MAP_SWIPE_MULTIPLY = 1.626 MAP_SWIPE_MULTIPLY = 1.626
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.572 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.572
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.fleet_2_protect(): if self.fleet_2_protect():
return True return True
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,97 +1,97 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('A1') MAP = CampaignMap('A1')
MAP.shape = 'I7' MAP.shape = 'I7'
MAP.camera_data = ['D2', 'D5', 'F2', 'F5'] MAP.camera_data = ['D2', 'D5', 'F2', 'F5']
MAP.camera_data_spawn_point = ['D2', 'D5'] MAP.camera_data_spawn_point = ['D2', 'D5']
MAP.map_data = """ MAP.map_data = """
++ -- MS -- ME -- -- ++ ++ ++ -- MS -- ME -- -- ++ ++
SP -- -- ++ ME -- Me ++ ++ SP -- -- ++ ME -- Me ++ ++
-- -- -- -- __ -- -- Me -- -- -- -- -- __ -- -- Me --
SP -- -- MS -- ME -- -- -- SP -- -- MS -- ME -- -- --
++ ++ -- ++ ++ ++ -- ++ ++ ++ ++ -- ++ ++ ++ -- ++ ++
++ ME -- ME MB ME -- ME ++ ++ ME -- ME MB ME -- ME ++
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
""" """
MAP.weight_data = """ MAP.weight_data = """
50 50 50 50 50 50 10 90 90 50 50 50 50 50 50 10 90 90
50 50 50 50 50 50 10 90 90 50 50 50 50 50 50 10 90 90
50 50 50 50 50 50 10 10 10 50 50 50 50 50 50 10 10 10
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1, 'boss': 1}, {'battle': 3, 'enemy': 1, 'boss': 1},
{'battle': 4}, {'battle': 4},
] ]
MAP.spawn_data_loop = [ MAP.spawn_data_loop = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1, 'boss': 1}, {'battle': 3, 'enemy': 1, 'boss': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['DD', 'CL'] MAP_SIREN_TEMPLATE = ['DD', 'CL']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (80, 255 - 24), 'height': (80, 255 - 24),
'width': (0.9, 10), 'width': (0.9, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 24, 255), 'height': (255 - 24, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
'width': (0, 10), 'width': (0, 10),
'wlen': 1000, 'wlen': 1000,
} }
MAP_SWIPE_MULTIPLY = 1.827 MAP_SWIPE_MULTIPLY = 1.827
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.766 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.766
MAP_ENEMY_GENRE_DETECTION_SCALING = { MAP_ENEMY_GENRE_DETECTION_SCALING = {
'DD': 1.111, 'DD': 1.111,
'CL': 1.111, 'CL': 1.111,
'CA': 1.111, 'CA': 1.111,
'CV': 1.111, 'CV': 1.111,
'BB': 1.111, 'BB': 1.111,
} }
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_3(self): def battle_3(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,72 +1,72 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .a1 import Config as ConfigBase from .a1 import Config as ConfigBase
MAP = CampaignMap('A2') MAP = CampaignMap('A2')
MAP.shape = 'J6' MAP.shape = 'J6'
MAP.camera_data = ['D2', 'D4', 'G2', 'G4'] MAP.camera_data = ['D2', 'D4', 'G2', 'G4']
MAP.camera_data_spawn_point = ['D2'] MAP.camera_data_spawn_point = ['D2']
MAP.map_data = """ MAP.map_data = """
++ SP -- SP -- -- ++ -- ++ ++ ++ SP -- SP -- -- ++ -- ++ ++
++ -- -- -- -- -- -- ME -- ++ ++ -- -- -- -- -- -- ME -- ++
ME -- MS ++ -- MS -- -- ME -- ME -- MS ++ -- MS -- -- ME --
ME -- -- -- -- ++ ME __ -- MB ME -- -- -- -- ++ ME __ -- MB
-- Me ++ ++ Me ++ -- -- ME -- -- Me ++ ++ Me ++ -- -- ME --
-- -- ++ ++ -- -- -- ME -- ++ -- -- ++ ++ -- -- -- ME -- ++
""" """
MAP.weight_data = """ 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 10 10 10 10 50 50 50 50 50 50 10 10 10 10 50 50 50 50 50
50 10 90 90 10 50 50 50 50 50 50 10 90 90 10 50 50 50 50 50
50 10 90 90 10 50 50 50 50 50 50 10 90 90 10 50 50 50 50 50
""" """
MAP.spawn_data = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3, 'siren': 1}, {'battle': 0, 'enemy': 3, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'boss': 1}, {'battle': 4, 'boss': 1},
] ]
MAP.spawn_data_loop = [ MAP.spawn_data_loop = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1, 'boss': 1}, {'battle': 4, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['Dorsetshire', 'Rodney', 'ArkRoyal'] MAP_SIREN_TEMPLATE = ['Dorsetshire', 'Rodney', 'ArkRoyal']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,72 +1,72 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .a1 import Config as ConfigBase from .a1 import Config as ConfigBase
MAP = CampaignMap('A3') MAP = CampaignMap('A3')
MAP.shape = 'J6' MAP.shape = 'J6'
MAP.camera_data = ['D2', 'D4', 'G2', 'G4'] MAP.camera_data = ['D2', 'D4', 'G2', 'G4']
MAP.camera_data_spawn_point = ['D4'] MAP.camera_data_spawn_point = ['D4']
MAP.map_data = """ MAP.map_data = """
-- -- ME -- ++ ++ -- ++ ++ ++ -- -- ME -- ++ ++ -- ++ ++ ++
-- ++ -- Me ++ ++ Me -- ME ME -- ++ -- Me ++ ++ Me -- ME ME
++ MS -- -- MB MB -- -- -- -- ++ MS -- -- MB MB -- -- -- --
++ -- -- -- -- -- __ ++ ++ ME ++ -- -- -- -- -- __ ++ ++ ME
SP -- -- MS ME ME -- ME ++ -- SP -- -- MS ME ME -- ME ++ --
-- SP -- ++ ++ ++ -- -- ME -- -- SP -- ++ ++ ++ -- -- ME --
""" """
MAP.weight_data = """ MAP.weight_data = """
50 50 50 10 90 90 10 50 50 50 50 50 50 10 90 90 10 50 50 50
50 50 50 10 90 90 10 50 50 50 50 50 50 10 90 90 10 50 50 50
50 50 50 10 10 10 10 50 50 50 50 50 50 10 10 10 10 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3, 'siren': 1}, {'battle': 0, 'enemy': 3, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'boss': 1}, {'battle': 4, 'boss': 1},
] ]
MAP.spawn_data_loop = [ MAP.spawn_data_loop = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1, 'boss': 1}, {'battle': 4, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['Kongo', 'Yamashiro'] MAP_SIREN_TEMPLATE = ['Kongo', 'Yamashiro']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,88 +1,88 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('B1') MAP = CampaignMap('B1')
MAP.shape = 'I8' MAP.shape = 'I8'
MAP.camera_data = ['D2', 'D6', 'F2', 'F6'] MAP.camera_data = ['D2', 'D6', 'F2', 'F6']
MAP.camera_data_spawn_point = ['D6'] MAP.camera_data_spawn_point = ['D6']
MAP.map_data = """ MAP.map_data = """
-- -- ++ -- -- ME ++ ++ ++ -- -- ++ -- -- ME ++ ++ ++
-- ++ ++ Me -- -- ME -- -- -- ++ ++ Me -- -- ME -- --
++ ++ ++ -- ++ -- -- -- MB ++ ++ ++ -- ++ -- -- -- MB
-- Me -- Me -- -- ME -- -- -- Me -- Me -- -- ME -- --
-- -- MS -- __ MS ++ ++ ME -- -- MS -- __ MS ++ ++ ME
++ ++ ++ -- -- -- ++ ME -- ++ ++ ++ -- -- -- ++ ME --
++ -- SP -- MS -- -- -- ME ++ -- SP -- MS -- -- -- ME
++ -- SP -- ++ ME -- ME -- ++ -- SP -- ++ ME -- ME --
""" """
MAP.weight_data = """ 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 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 4, 'siren': 1}, {'battle': 0, 'enemy': 4, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1, 'boss': 1}, {'battle': 4, 'enemy': 1, 'boss': 1},
{'battle': 5, 'enemy': 1}, {'battle': 5, 'enemy': 1},
] ]
MAP.spawn_data_loop = [ MAP.spawn_data_loop = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1, 'boss': 1}, {'battle': 4, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
A8, B8, C8, D8, E8, F8, G8, H8, I8, \ A8, B8, C8, D8, E8, F8, G8, H8, I8, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['Z24', 'Nuremberg', 'Carabiniere'] MAP_SIREN_TEMPLATE = ['Z24', 'Nuremberg', 'Carabiniere']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
MAP_SWIPE_MULTIPLY = 1.561 MAP_SWIPE_MULTIPLY = 1.561
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.509 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.509
MAP_ENEMY_GENRE_DETECTION_SCALING = { MAP_ENEMY_GENRE_DETECTION_SCALING = {
'DD': 1.111, 'DD': 1.111,
'CL': 1.111, 'CL': 1.111,
'CA': 1.111, 'CA': 1.111,
'CV': 1.111, 'CV': 1.111,
'BB': 1.111, 'BB': 1.111,
} }
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,80 +1,80 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .b1 import Config as ConfigBase from .b1 import Config as ConfigBase
MAP = CampaignMap('B2') MAP = CampaignMap('B2')
MAP.shape = 'K7' MAP.shape = 'K7'
MAP.camera_data = ['D3', 'D5', 'H3', 'H5'] MAP.camera_data = ['D3', 'D5', 'H3', 'H5']
MAP.camera_data_spawn_point = ['D2'] MAP.camera_data_spawn_point = ['D2']
MAP.map_data = """ MAP.map_data = """
-- ++ -- ++ ++ ++ MB MB ++ ++ ++ -- ++ -- ++ ++ ++ MB MB ++ ++ ++
-- -- -- ++ -- ME -- -- -- ME ++ -- -- -- ++ -- ME -- -- -- ME ++
SP -- SP ++ ME -- ++ ME -- ME ++ SP -- SP ++ ME -- ++ ME -- ME ++
-- -- -- -- -- __ -- ++ -- -- -- -- -- -- -- -- __ -- ++ -- -- --
++ -- ++ ++ ME -- ME -- -- Me Me ++ -- ++ ++ ME -- ME -- -- Me Me
MS -- MS ++ -- -- -- -- Me ++ ++ MS -- MS ++ -- -- -- -- Me ++ ++
-- MS -- ME -- ME ++ ++ ++ ++ ++ -- MS -- ME -- ME ++ ++ ++ ++ ++
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 4, 'siren': 1}, {'battle': 0, 'enemy': 4, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5, 'enemy': 1, 'boss': 1}, {'battle': 5, 'enemy': 1, 'boss': 1},
] ]
MAP.spawn_data_loop = [ MAP.spawn_data_loop = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'enemy': 1, 'boss': 1}, {'battle': 5, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['Z24', 'Carabiniere', 'Kongo', 'Yamashiro'] MAP_SIREN_TEMPLATE = ['Z24', 'Carabiniere', 'Kongo', 'Yamashiro']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
MAP_SWIPE_MULTIPLY = 1.783 MAP_SWIPE_MULTIPLY = 1.783
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.724 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.724
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,92 +1,92 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .b1 import Config as ConfigBase from .b1 import Config as ConfigBase
MAP = CampaignMap('B3') MAP = CampaignMap('B3')
MAP.shape = 'J10' MAP.shape = 'J10'
MAP.camera_data = ['D2', 'D6', 'D8', 'G2', 'G6', 'G8'] MAP.camera_data = ['D2', 'D6', 'D8', 'G2', 'G6', 'G8']
MAP.camera_data_spawn_point = ['D8', 'G8'] MAP.camera_data_spawn_point = ['D8', 'G8']
MAP.map_data = """ MAP.map_data = """
++ -- -- ME -- -- ME -- -- ++ ++ -- -- ME -- -- ME -- -- ++
-- -- ++ -- MB MB -- ++ -- -- -- -- ++ -- MB MB -- ++ -- --
++ -- -- ME -- -- ME -- -- ++ ++ -- -- ME -- -- ME -- -- ++
-- ++ ++ ME -- -- ME ++ ++ -- -- ++ ++ ME -- -- ME ++ ++ --
++ ++ MS -- __ __ -- MS ++ ++ ++ ++ MS -- __ __ -- MS ++ ++
++ ME -- -- ++ ++ -- -- ME ++ ++ ME -- -- ++ ++ -- -- ME ++
-- ME -- Me ++ ++ Me -- ME -- -- ME -- Me ++ ++ Me -- ME --
++ ++ -- -- Me Me -- -- ++ ++ ++ ++ -- -- Me Me -- -- ++ ++
-- ++ MS -- -- -- -- MS ++ -- -- ++ MS -- -- -- -- MS ++ --
-- ++ ++ ++ SP SP ++ ++ ++ -- -- ++ ++ ++ SP SP ++ ++ ++ --
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50
50 50 50 10 10 10 10 50 50 50 50 50 50 10 10 10 10 50 50 50
50 50 50 10 90 90 10 50 50 50 50 50 50 10 90 90 10 50 50 50
50 50 50 10 90 90 10 50 50 50 50 50 50 10 90 90 10 50 50 50
50 50 50 10 10 10 10 50 50 50 50 50 50 10 10 10 10 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 4, 'siren': 2}, {'battle': 0, 'enemy': 4, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5, 'enemy': 1, 'boss': 1}, {'battle': 5, 'enemy': 1, 'boss': 1},
] ]
MAP.spawn_data_loop = [ MAP.spawn_data_loop = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'enemy': 1, 'boss': 1}, {'battle': 5, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \
A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, \ A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, \
A9, B9, C9, D9, E9, F9, G9, H9, I9, J9, \ A9, B9, C9, D9, E9, F9, G9, H9, I9, J9, \
A10, B10, C10, D10, E10, F10, G10, H10, I10, J10, \ A10, B10, C10, D10, E10, F10, G10, H10, I10, J10, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['DD', 'CL', 'Intruder'] MAP_SIREN_TEMPLATE = ['DD', 'CL', 'Intruder']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
MAP_SWIPE_MULTIPLY = 1.445 MAP_SWIPE_MULTIPLY = 1.445
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.397 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.397
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.fleet_2_protect(): if self.fleet_2_protect():
return True return True
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,101 +1,101 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('C1') MAP = CampaignMap('C1')
MAP.shape = 'I7' MAP.shape = 'I7'
MAP.camera_data = ['D2', 'D4', 'F2', 'F4'] MAP.camera_data = ['D2', 'D4', 'F2', 'F4']
MAP.camera_data_spawn_point = ['D2', 'D5'] MAP.camera_data_spawn_point = ['D2', 'D5']
MAP.map_data = """ MAP.map_data = """
++ -- MS -- ME -- -- ++ ++ ++ -- MS -- ME -- -- ++ ++
SP -- -- ++ ME -- Me ++ ++ SP -- -- ++ ME -- Me ++ ++
-- -- -- -- __ -- -- Me -- -- -- -- -- __ -- -- Me --
SP -- -- MS -- ME -- -- -- SP -- -- MS -- ME -- -- --
++ ++ -- ++ ++ ++ -- ++ ++ ++ ++ -- ++ ++ ++ -- ++ ++
++ ME -- ME MB ME -- ME ++ ++ ME -- ME MB ME -- ME ++
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
""" """
MAP.weight_data = """ MAP.weight_data = """
50 50 50 50 50 50 10 90 90 50 50 50 50 50 50 10 90 90
50 50 50 50 50 50 10 90 90 50 50 50 50 50 50 10 90 90
50 50 50 50 50 50 10 10 10 50 50 50 50 50 50 10 10 10
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3, 'siren': 2}, {'battle': 0, 'enemy': 3, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1, 'boss': 1}, {'battle': 4, 'enemy': 1, 'boss': 1},
] ]
MAP.spawn_data_loop = [ MAP.spawn_data_loop = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1, 'boss': 1}, {'battle': 4, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['CL', 'CA'] MAP_SIREN_TEMPLATE = ['CL', 'CA']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (80, 255 - 24), 'height': (80, 255 - 24),
'width': (0.9, 10), 'width': (0.9, 10),
'prominence': 5, 'prominence': 5,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 24, 255), 'height': (255 - 24, 255),
'prominence': 5, 'prominence': 5,
'distance': 50, 'distance': 50,
'width': (0, 10), 'width': (0, 10),
'wlen': 1000, 'wlen': 1000,
} }
HOMO_EDGE_HOUGHLINES_THRESHOLD = 180 HOMO_EDGE_HOUGHLINES_THRESHOLD = 180
MAP_SWIPE_MULTIPLY = 1.827 MAP_SWIPE_MULTIPLY = 1.827
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.766 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.766
MAP_ENEMY_GENRE_DETECTION_SCALING = { MAP_ENEMY_GENRE_DETECTION_SCALING = {
'DD': 1.111, 'DD': 1.111,
'CL': 1.111, 'CL': 1.111,
'CA': 1.111, 'CA': 1.111,
'CV': 1.111, 'CV': 1.111,
'BB': 1.111, 'BB': 1.111,
} }
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.fleet_2_protect(): if self.fleet_2_protect():
return True return True
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,75 +1,75 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .c1 import Config as ConfigBase from .c1 import Config as ConfigBase
MAP = CampaignMap('C2') MAP = CampaignMap('C2')
MAP.shape = 'J6' MAP.shape = 'J6'
MAP.camera_data = ['D2', 'D4', 'G2', 'G4'] MAP.camera_data = ['D2', 'D4', 'G2', 'G4']
MAP.camera_data_spawn_point = ['D2'] MAP.camera_data_spawn_point = ['D2']
MAP.map_data = """ MAP.map_data = """
++ SP -- SP -- -- ++ -- ++ ++ ++ SP -- SP -- -- ++ -- ++ ++
++ -- -- -- -- -- -- ME -- ++ ++ -- -- -- -- -- -- ME -- ++
ME -- MS ++ -- MS -- -- ME -- ME -- MS ++ -- MS -- -- ME --
ME -- -- -- -- ++ ME __ -- MB ME -- -- -- -- ++ ME __ -- MB
-- Me ++ ++ Me ++ -- -- ME -- -- Me ++ ++ Me ++ -- -- ME --
-- -- ++ ++ -- -- -- ME -- ++ -- -- ++ ++ -- -- -- ME -- ++
""" """
MAP.weight_data = """ 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 10 10 10 10 50 50 50 50 50 50 10 10 10 10 50 50 50 50 50
50 10 90 90 10 50 50 50 50 50 50 10 90 90 10 50 50 50 50 50
50 10 90 90 10 50 50 50 50 50 50 10 90 90 10 50 50 50 50 50
""" """
MAP.spawn_data = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3, 'siren': 2}, {'battle': 0, 'enemy': 3, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1, 'boss': 1}, {'battle': 4, 'enemy': 1, 'boss': 1},
] ]
MAP.spawn_data_loop = [ MAP.spawn_data_loop = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1, 'boss': 1}, {'battle': 4, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['Dorsetshire', 'Rodney', 'ArkRoyal'] MAP_SIREN_TEMPLATE = ['Dorsetshire', 'Rodney', 'ArkRoyal']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.fleet_2_protect(): if self.fleet_2_protect():
return True return True
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,77 +1,77 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .c1 import Config as ConfigBase from .c1 import Config as ConfigBase
MAP = CampaignMap('C3') MAP = CampaignMap('C3')
MAP.shape = 'J6' MAP.shape = 'J6'
MAP.camera_data = ['D2', 'D4', 'G2', 'G4'] MAP.camera_data = ['D2', 'D4', 'G2', 'G4']
MAP.camera_data_spawn_point = ['D4'] MAP.camera_data_spawn_point = ['D4']
MAP.map_data = """ MAP.map_data = """
-- -- ME -- ++ ++ -- ++ ++ ++ -- -- ME -- ++ ++ -- ++ ++ ++
-- ++ -- Me ++ ++ Me -- ME ME -- ++ -- Me ++ ++ Me -- ME ME
++ MS -- -- MB MB -- -- -- -- ++ MS -- -- MB MB -- -- -- --
++ -- -- -- -- -- __ ++ ++ ME ++ -- -- -- -- -- __ ++ ++ ME
SP -- -- MS ME ME -- ME ++ -- SP -- -- MS ME ME -- ME ++ --
-- SP -- ++ ++ ++ -- -- ME -- -- SP -- ++ ++ ++ -- -- ME --
""" """
MAP.weight_data = """ MAP.weight_data = """
50 50 50 10 90 90 10 50 50 50 50 50 50 10 90 90 10 50 50 50
50 50 50 10 90 90 10 50 50 50 50 50 50 10 90 90 10 50 50 50
50 50 50 10 10 10 10 50 50 50 50 50 50 10 10 10 10 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3, 'siren': 2}, {'battle': 0, 'enemy': 3, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5, 'boss': 1}, {'battle': 5, 'boss': 1},
] ]
MAP.spawn_data_loop = [ MAP.spawn_data_loop = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5, 'boss': 1}, {'battle': 5, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['Kongo', 'Yamashiro', 'Shokaku', 'Zuikaku'] MAP_SIREN_TEMPLATE = ['Kongo', 'Yamashiro', 'Shokaku', 'Zuikaku']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.fleet_2_protect(): if self.fleet_2_protect():
return True return True
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,117 +1,117 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('D1') MAP = CampaignMap('D1')
MAP.shape = 'I8' MAP.shape = 'I8'
MAP.camera_data = ['D3', 'D6', 'F3', 'F6'] MAP.camera_data = ['D3', 'D6', 'F3', 'F6']
MAP.camera_data_spawn_point = ['D6'] MAP.camera_data_spawn_point = ['D6']
MAP.map_data = """ MAP.map_data = """
-- -- ++ -- -- ME ++ ++ ++ -- -- ++ -- -- ME ++ ++ ++
-- ++ ++ Me -- -- ME -- -- -- ++ ++ Me -- -- ME -- --
++ ++ ++ -- ++ -- -- -- MB ++ ++ ++ -- ++ -- -- -- MB
-- Me -- Me -- -- ME -- -- -- Me -- Me -- -- ME -- --
-- -- MS -- __ MS ++ ++ ME -- -- MS -- __ MS ++ ++ ME
++ ++ ++ -- -- -- ++ ME -- ++ ++ ++ -- -- -- ++ ME --
++ -- SP -- MS -- -- -- ME ++ -- SP -- MS -- -- -- ME
++ -- SP -- ++ ME -- ME -- ++ -- SP -- ++ ME -- ME --
""" """
MAP.weight_data = """ 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 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 4, 'siren': 2}, {'battle': 0, 'enemy': 4, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1}, {'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5, 'enemy': 1, 'boss': 1}, {'battle': 5, 'enemy': 1, 'boss': 1},
] ]
MAP.spawn_data_loop = [ MAP.spawn_data_loop = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'enemy': 1, 'boss': 1}, {'battle': 5, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
A8, B8, C8, D8, E8, F8, G8, H8, I8, \ A8, B8, C8, D8, E8, F8, G8, H8, I8, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['Z24', 'Nuremberg', 'Carabiniere'] MAP_SIREN_TEMPLATE = ['Z24', 'Nuremberg', 'Carabiniere']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (80, 255 - 24), 'height': (80, 255 - 24),
'width': (0.9, 10), 'width': (0.9, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 24, 255), 'height': (255 - 24, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
'width': (0, 10), 'width': (0, 10),
'wlen': 1000, 'wlen': 1000,
} }
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
EDGE_LINES_HOUGHLINES_THRESHOLD = 40 EDGE_LINES_HOUGHLINES_THRESHOLD = 40
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5
HOMO_EDGE_HOUGHLINES_THRESHOLD = 180 HOMO_EDGE_HOUGHLINES_THRESHOLD = 180
MAP_ENEMY_GENRE_DETECTION_SCALING = { MAP_ENEMY_GENRE_DETECTION_SCALING = {
'DD': 1.111, 'DD': 1.111,
'CL': 1.111, 'CL': 1.111,
'CA': 1.111, 'CA': 1.111,
'CV': 1.111, 'CV': 1.111,
'BB': 1.111, 'BB': 1.111,
} }
MAP_SWIPE_MULTIPLY = 1.579 MAP_SWIPE_MULTIPLY = 1.579
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.527 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.527
MAP_ENEMY_TEMPLATE = ['LightInvertedOrthant', 'MainInvertedOrthant', 'CarrierInvertedOrthant'] MAP_ENEMY_TEMPLATE = ['LightInvertedOrthant', 'MainInvertedOrthant', 'CarrierInvertedOrthant']
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
if self.clear_enemy(scale=(1,)): if self.clear_enemy(scale=(1,)):
return True return True
if self.clear_enemy(scale=(2,), genre=['LightInvertedOrthant', 'MainInvertedOrthant']): if self.clear_enemy(scale=(2,), genre=['LightInvertedOrthant', 'MainInvertedOrthant']):
return True return True
if self.clear_enemy(scale=(3,), genre=['LightInvertedOrthant', 'MainInvertedOrthant']): if self.clear_enemy(scale=(3,), genre=['LightInvertedOrthant', 'MainInvertedOrthant']):
return True return True
if self.clear_enemy(scale=(2,), genre=['Enemy', 'CarrierInvertedOrthant']): if self.clear_enemy(scale=(2,), genre=['Enemy', 'CarrierInvertedOrthant']):
return True return True
if self.clear_enemy(scale=(3,), genre=['Enemy', 'CarrierInvertedOrthant']): if self.clear_enemy(scale=(3,), genre=['Enemy', 'CarrierInvertedOrthant']):
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,82 +1,82 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .d1 import Config as ConfigBase from .d1 import Config as ConfigBase
MAP = CampaignMap('D2') MAP = CampaignMap('D2')
MAP.shape = 'K7' MAP.shape = 'K7'
MAP.camera_data = ['D3', 'D5', 'H3', 'H5'] MAP.camera_data = ['D3', 'D5', 'H3', 'H5']
MAP.camera_data_spawn_point = ['D2'] MAP.camera_data_spawn_point = ['D2']
MAP.map_data = """ MAP.map_data = """
-- ++ -- ++ ++ ++ MB MB ++ ++ ++ -- ++ -- ++ ++ ++ MB MB ++ ++ ++
-- -- -- ++ -- ME -- -- -- ME ++ -- -- -- ++ -- ME -- -- -- ME ++
SP -- SP ++ ME -- ++ ME -- ME ++ SP -- SP ++ ME -- ++ ME -- ME ++
-- -- -- -- -- __ -- ++ -- -- -- -- -- -- -- -- __ -- ++ -- -- --
++ -- ++ ++ ME -- ME -- -- Me Me ++ -- ++ ++ ME -- ME -- -- Me Me
MS -- MS ++ -- -- -- -- Me ++ ++ MS -- MS ++ -- -- -- -- Me ++ ++
-- MS -- ME -- ME ++ ++ ++ ++ ++ -- MS -- ME -- ME ++ ++ ++ ++ ++
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 4, 'siren': 2}, {'battle': 0, 'enemy': 4, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1, 'siren': 1}, {'battle': 2, 'enemy': 1, 'siren': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5, 'enemy': 1}, {'battle': 5, 'enemy': 1},
{'battle': 6, 'boss': 1}, {'battle': 6, 'boss': 1},
] ]
MAP.spawn_data_loop = [ MAP.spawn_data_loop = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2, 'siren': 1}, {'battle': 2, 'enemy': 2, 'siren': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'enemy': 1}, {'battle': 5, 'enemy': 1},
{'battle': 6, 'boss': 1}, {'battle': 6, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['Z24', 'Carabiniere', 'Kongo', 'Yamashiro'] MAP_SIREN_TEMPLATE = ['Z24', 'Carabiniere', 'Kongo', 'Yamashiro']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
MAP_SWIPE_MULTIPLY = 1.783 MAP_SWIPE_MULTIPLY = 1.783
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.724 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.724
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_6(self): def battle_6(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,126 +1,126 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .d1 import Config as ConfigBase from .d1 import Config as ConfigBase
MAP = CampaignMap('D3') MAP = CampaignMap('D3')
MAP.shape = 'J10' MAP.shape = 'J10'
MAP.camera_data = ['D2', 'D6', 'D8', 'G2', 'G6', 'G8'] MAP.camera_data = ['D2', 'D6', 'D8', 'G2', 'G6', 'G8']
MAP.camera_data_spawn_point = ['D8', 'G8'] MAP.camera_data_spawn_point = ['D8', 'G8']
MAP.map_data = """ MAP.map_data = """
++ -- -- ME -- -- ME -- -- ++ ++ -- -- ME -- -- ME -- -- ++
-- -- ++ -- MB MB -- ++ -- -- -- -- ++ -- MB MB -- ++ -- --
++ -- -- ME -- -- ME -- -- ++ ++ -- -- ME -- -- ME -- -- ++
-- ++ ++ ME -- -- ME ++ ++ -- -- ++ ++ ME -- -- ME ++ ++ --
++ ++ MS -- __ __ -- MS ++ ++ ++ ++ MS -- __ __ -- MS ++ ++
++ ME -- -- ++ ++ -- -- ME ++ ++ ME -- -- ++ ++ -- -- ME ++
-- ME -- Me ++ ++ Me -- ME -- -- ME -- Me ++ ++ Me -- ME --
++ ++ -- -- Me Me -- -- ++ ++ ++ ++ -- -- Me Me -- -- ++ ++
-- ++ MS -- -- -- -- MS ++ -- -- ++ MS -- -- -- -- MS ++ --
-- ++ ++ ++ SP SP ++ ++ ++ -- -- ++ ++ ++ SP SP ++ ++ ++ --
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 4, 'siren': 2}, {'battle': 0, 'enemy': 4, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1, 'siren': 1}, {'battle': 2, 'enemy': 1, 'siren': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5, 'enemy': 1}, {'battle': 5, 'enemy': 1},
{'battle': 6, 'boss': 1}, {'battle': 6, 'boss': 1},
] ]
MAP.spawn_data_loop = [ MAP.spawn_data_loop = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2, 'siren': 1}, {'battle': 2, 'enemy': 2, 'siren': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'enemy': 1}, {'battle': 5, 'enemy': 1},
{'battle': 6, 'boss': 1}, {'battle': 6, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \
A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, \ A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, \
A9, B9, C9, D9, E9, F9, G9, H9, I9, J9, \ A9, B9, C9, D9, E9, F9, G9, H9, I9, J9, \
A10, B10, C10, D10, E10, F10, G10, H10, I10, J10, \ A10, B10, C10, D10, E10, F10, G10, H10, I10, J10, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['BBpurple', 'CVpurple', 'Intruder'] MAP_SIREN_TEMPLATE = ['BBpurple', 'CVpurple', 'Intruder']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = True MAP_HAS_MAP_STORY = True
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
MAP_SWIPE_MULTIPLY = 1.445 MAP_SWIPE_MULTIPLY = 1.445
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.397 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.397
MAP_ENEMY_GENRE_DETECTION_SCALING = { MAP_ENEMY_GENRE_DETECTION_SCALING = {
'BBpurple': 1.111, 'BBpurple': 1.111,
'CVpurple': 1.111, 'CVpurple': 1.111,
} }
MAP_ENEMY_TEMPLATE = ['MainPurple', 'CarrierPurple'] MAP_ENEMY_TEMPLATE = ['MainPurple', 'CarrierPurple']
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.fleet_2_protect(): if self.fleet_2_protect():
return True return True
if self.clear_siren(): if self.clear_siren():
return True return True
if self.clear_enemy(scale=(2,), genre=['LightInvertedOrthant', 'MainInvertedOrthant']): if self.clear_enemy(scale=(2,), genre=['LightInvertedOrthant', 'MainInvertedOrthant']):
return True return True
if self.clear_enemy(scale=(3,), genre=['LightInvertedOrthant', 'MainInvertedOrthant']): if self.clear_enemy(scale=(3,), genre=['LightInvertedOrthant', 'MainInvertedOrthant']):
return True return True
if self.clear_enemy(scale=(2,), genre=['Enemy', 'CarrierInvertedOrthant']): if self.clear_enemy(scale=(2,), genre=['Enemy', 'CarrierInvertedOrthant']):
return True return True
if self.clear_enemy(scale=(3,), genre=['Enemy', 'CarrierInvertedOrthant']): if self.clear_enemy(scale=(3,), genre=['Enemy', 'CarrierInvertedOrthant']):
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
if self.fleet_2_protect(): if self.fleet_2_protect():
return True return True
if self.clear_siren(): if self.clear_siren():
return True return True
if self.clear_enemy(scale=(1,)): if self.clear_enemy(scale=(1,)):
return True return True
if self.clear_enemy(scale=(2,), genre=['LightInvertedOrthant', 'MainInvertedOrthant']): if self.clear_enemy(scale=(2,), genre=['LightInvertedOrthant', 'MainInvertedOrthant']):
return True return True
if self.clear_enemy(scale=(3,), genre=['LightInvertedOrthant', 'MainInvertedOrthant']): if self.clear_enemy(scale=(3,), genre=['LightInvertedOrthant', 'MainInvertedOrthant']):
return True return True
if self.clear_enemy(scale=(2,), genre=['Enemy', 'CarrierInvertedOrthant']): if self.clear_enemy(scale=(2,), genre=['Enemy', 'CarrierInvertedOrthant']):
return True return True
if self.clear_enemy(scale=(3,), genre=['Enemy', 'CarrierInvertedOrthant']): if self.clear_enemy(scale=(3,), genre=['Enemy', 'CarrierInvertedOrthant']):
return True return True
return self.battle_default() return self.battle_default()
def battle_6(self): def battle_6(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,102 +1,102 @@
from module.campaign.campaign_base import CampaignBase from module.campaign.campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('SP') MAP = CampaignMap('SP')
MAP.shape = 'M10' MAP.shape = 'M10'
MAP.camera_data = ['F6', 'I6', 'G8'] MAP.camera_data = ['F6', 'I6', 'G8']
MAP.camera_data_spawn_point = ['D8'] MAP.camera_data_spawn_point = ['D8']
MAP.map_data = """ MAP.map_data = """
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- -- -- -- -- ++ ++ -- -- -- -- -- -- -- -- -- -- -- ++ ++ -- -- -- -- -- --
-- ++ ++ ++ -- -- ++ -- -- ++ ++ ++ -- -- ++ ++ ++ -- -- ++ -- -- ++ ++ ++ --
-- -- ++ ++ ++ ++ ++ ++ ++ ++ ++ -- -- -- -- ++ ++ ++ ++ ++ ++ ++ ++ ++ -- --
-- -- ME -- ++ ++ ++ ++ ++ -- ME -- -- -- -- ME -- ++ ++ ++ ++ ++ -- ME -- --
-- -- -- ME -- -- ++ -- -- ME -- -- -- -- -- -- ME -- -- ++ -- -- ME -- -- --
-- -- -- -- ME ++ MB ++ ME -- Me Me -- -- -- -- -- ME ++ MB ++ ME -- Me Me --
-- SP -- -- -- MS -- MS -- -- ++ ++ -- -- SP -- -- -- MS -- MS -- -- ++ ++ --
-- -- SP -- -- -- __ -- -- -- ++ ++ -- -- -- SP -- -- -- __ -- -- -- ++ ++ --
-- -- -- -- -- MS -- MS -- -- -- -- -- -- -- -- -- -- MS -- MS -- -- -- -- --
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3, 'siren': 2}, {'battle': 0, 'enemy': 3, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 1, 'siren': 1}, {'battle': 2, 'enemy': 1, 'siren': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1}, {'battle': 4, 'enemy': 1},
{'battle': 5, 'enemy': 1}, {'battle': 5, 'enemy': 1},
{'battle': 6}, {'battle': 6},
{'battle': 7, 'boss': 1}, {'battle': 7, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, L1, M1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, L1, M1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, L2, M2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, L2, M2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, L3, M3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, L3, M3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, L4, M4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, L4, M4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, L5, M5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, L5, M5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, L6, M6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, L6, M6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, L7, M7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, L7, M7, \
A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, K8, L8, M8, \ A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, K8, L8, M8, \
A9, B9, C9, D9, E9, F9, G9, H9, I9, J9, K9, L9, M9, \ A9, B9, C9, D9, E9, F9, G9, H9, I9, J9, K9, L9, M9, \
A10, B10, C10, D10, E10, F10, G10, H10, I10, J10, K10, L10, M10, \ A10, B10, C10, D10, E10, F10, G10, H10, I10, J10, K10, L10, M10, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['Z24', 'Nuremberg', 'PeterStrasser'] MAP_SIREN_TEMPLATE = ['Z24', 'Nuremberg', 'PeterStrasser']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
STAR_REQUIRE_1 = 0 STAR_REQUIRE_1 = 0
STAR_REQUIRE_2 = 0 STAR_REQUIRE_2 = 0
STAR_REQUIRE_3 = 0 STAR_REQUIRE_3 = 0
# ===== End of generated config ===== # ===== End of generated config =====
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (80, 255 - 24), 'height': (80, 255 - 24),
'width': (0.9, 10), 'width': (0.9, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 24, 255), 'height': (255 - 24, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
'width': (0, 10), 'width': (0, 10),
'wlen': 1000, 'wlen': 1000,
} }
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
EDGE_LINES_HOUGHLINES_THRESHOLD = 40 EDGE_LINES_HOUGHLINES_THRESHOLD = 40
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5
HOMO_EDGE_HOUGHLINES_THRESHOLD = 180 HOMO_EDGE_HOUGHLINES_THRESHOLD = 180
MAP_SWIPE_MULTIPLY = 1.445 MAP_SWIPE_MULTIPLY = 1.445
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.397 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.397
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_7(self): def battle_7(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,81 +1,81 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('A1') MAP = CampaignMap('A1')
MAP.shape = 'H6' MAP.shape = 'H6'
MAP.camera_data = ['D2', 'D4', 'E2', 'E4'] MAP.camera_data = ['D2', 'D4', 'E2', 'E4']
MAP.camera_data_spawn_point = ['D4'] MAP.camera_data_spawn_point = ['D4']
MAP.map_data = """ MAP.map_data = """
-- ++ -- ME -- ++ ME -- -- ++ -- ME -- ++ ME --
Me ++ -- MB -- Me -- -- Me ++ -- MB -- Me -- --
-- -- __ ++ ++ -- -- ME -- -- __ ++ ++ -- -- ME
-- Me -- ME ++ -- MS ME -- Me -- ME ++ -- MS ME
SP -- ME -- ME -- ++ -- SP -- ME -- ME -- ++ --
SP SP -- -- -- -- MB -- SP SP -- -- -- -- MB --
""" """
MAP.weight_data = """ 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 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1, 'boss': 1}, {'battle': 3, 'enemy': 1, 'boss': 1},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'enemy': 1}, {'battle': 5, 'enemy': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['CL'] MAP_SIREN_TEMPLATE = ['CL']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
MAP_SWIPE_MULTIPLY = 1.519 MAP_SWIPE_MULTIPLY = 1.519
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.469 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.469
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (150, 255 - 24), 'height': (150, 255 - 24),
'width': (0.9, 10), 'width': (0.9, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 24, 255), 'height': (255 - 24, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
# 'width': (0, 7), # 'width': (0, 7),
'wlen': 1000 'wlen': 1000
} }
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_3(self): def battle_3(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,86 +1,86 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .a1 import Config as ConfigBase from .a1 import Config as ConfigBase
MAP = CampaignMap('A2') MAP = CampaignMap('A2')
MAP.shape = 'G7' MAP.shape = 'G7'
MAP.camera_data = ['D2', 'D5'] MAP.camera_data = ['D2', 'D5']
MAP.camera_data_spawn_point = ['D2', 'D5'] MAP.camera_data_spawn_point = ['D2', 'D5']
MAP.map_data = """ MAP.map_data = """
-- ME MS MS -- ++ -- -- ME MS MS -- ++ --
ME -- -- -- -- ME -- ME -- -- -- -- ME --
-- -- __ -- SP ++ ++ -- -- __ -- SP ++ ++
ME -- ME ++ -- ++ ++ ME -- ME ++ -- ++ ++
++ -- -- ++ -- SP -- ++ -- -- ++ -- SP --
-- MB MS -- -- ++ ++ -- MB MS -- -- ++ ++
-- -- MS ME -- -- -- -- -- MS ME -- -- --
""" """
MAP.weight_data = """ 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 10 50 50 50 50 50 50 10 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 3, 'siren': 1}, {'battle': 0, 'enemy': 3, 'siren': 1},
{'battle': 1, 'enemy': 1, 'siren': 1}, {'battle': 1, 'enemy': 1, 'siren': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2, 'boss': 1}, {'battle': 4, 'enemy': 2, 'boss': 1},
{'battle': 5, 'enemy': 1}, {'battle': 5, 'enemy': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, \ A1, B1, C1, D1, E1, F1, G1, \
A2, B2, C2, D2, E2, F2, G2, \ A2, B2, C2, D2, E2, F2, G2, \
A3, B3, C3, D3, E3, F3, G3, \ A3, B3, C3, D3, E3, F3, G3, \
A4, B4, C4, D4, E4, F4, G4, \ A4, B4, C4, D4, E4, F4, G4, \
A5, B5, C5, D5, E5, F5, G5, \ A5, B5, C5, D5, E5, F5, G5, \
A6, B6, C6, D6, E6, F6, G6, \ A6, B6, C6, D6, E6, F6, G6, \
A7, B7, C7, D7, E7, F7, G7, \ A7, B7, C7, D7, E7, F7, G7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['Swordfish'] MAP_SIREN_TEMPLATE = ['Swordfish']
MOVABLE_ENEMY_TURN = (1,) MOVABLE_ENEMY_TURN = (1,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
STAR_REQUIRE_3 = 0 STAR_REQUIRE_3 = 0
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def get_map_clear_percentage(self): def get_map_clear_percentage(self):
""" """
map clear here is shorter than normal, about 70% at max map clear here is shorter than normal, about 70% at max
Returns: Returns:
float: 0 to 1. float: 0 to 1.
""" """
return super().get_map_clear_percentage() * 1.4 return super().get_map_clear_percentage() * 1.4
def battle_0(self): def battle_0(self):
if not self.map_is_clear_mode: if not self.map_is_clear_mode:
for grid in self.map: for grid in self.map:
grid.may_siren = True grid.may_siren = True
self.fleet_2_push_forward() self.fleet_2_push_forward()
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,86 +1,86 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .a1 import Config as ConfigBase from .a1 import Config as ConfigBase
MAP = CampaignMap('A3') MAP = CampaignMap('A3')
MAP.shape = 'I7' MAP.shape = 'I7'
MAP.camera_data = ['D2', 'D5', 'F2', 'F5'] MAP.camera_data = ['D2', 'D5', 'F2', 'F5']
MAP.camera_data_spawn_point = ['F2'] MAP.camera_data_spawn_point = ['F2']
MAP.map_data = """ MAP.map_data = """
-- -- -- MS -- -- SP ++ ++ -- -- -- MS -- -- SP ++ ++
Me -- -- -- ++ -- -- ++ ++ Me -- -- -- ++ -- -- ++ ++
-- ME ME ME ++ -- -- -- SP -- ME ME ME ++ -- -- -- SP
-- -- -- __ -- -- -- -- -- -- -- -- __ -- -- -- -- --
-- MS -- -- MB -- ++ ++ -- -- MS -- -- MB -- ++ ++ --
-- -- ++ MS ME -- -- -- MS -- -- ++ MS ME -- -- -- MS
-- ME ++ -- MB -- Me -- -- -- ME ++ -- MB -- Me -- --
""" """
MAP.weight_data = """ 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 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1, 'siren': 1}, {'battle': 1, 'enemy': 1, 'siren': 1},
{'battle': 2, 'enemy': 2, 'siren': 1}, {'battle': 2, 'enemy': 2, 'siren': 1},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2, 'boss': 1}, {'battle': 4, 'enemy': 2, 'boss': 1},
{'battle': 5, 'enemy': 1}, {'battle': 5, 'enemy': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['Swordfish'] MAP_SIREN_TEMPLATE = ['Swordfish']
MOVABLE_ENEMY_TURN = (1,) MOVABLE_ENEMY_TURN = (1,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
STAR_REQUIRE_3 = 0 STAR_REQUIRE_3 = 0
MAP_SWIPE_MULTIPLY = 1.626 MAP_SWIPE_MULTIPLY = 1.626
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.572 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.572
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def get_map_clear_percentage(self): def get_map_clear_percentage(self):
""" """
map clear here is shorter than normal, about 70% at max map clear here is shorter than normal, about 70% at max
Returns: Returns:
float: 0 to 1. float: 0 to 1.
""" """
return super().get_map_clear_percentage() * 1.4 return super().get_map_clear_percentage() * 1.4
def battle_0(self): def battle_0(self):
if not self.map_is_clear_mode: if not self.map_is_clear_mode:
for grid in self.map: for grid in self.map:
grid.may_siren = True grid.may_siren = True
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,70 +1,70 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('AS1') MAP = CampaignMap('AS1')
MAP.shape = 'H6' MAP.shape = 'H6'
MAP.camera_data = ['D2', 'D4', 'E2', 'E4'] MAP.camera_data = ['D2', 'D4', 'E2', 'E4']
MAP.camera_data_spawn_point = ['D2', 'E2'] MAP.camera_data_spawn_point = ['D2', 'E2']
MAP.map_data = """ MAP.map_data = """
-- ++ -- ME MS -- -- ME -- ++ -- ME MS -- -- ME
-- ++ -- -- -- ++ ++ -- -- ++ -- -- -- ++ ++ --
ME -- SP -- SP -- ++ Me ME -- SP -- SP -- ++ Me
-- -- -- ME -- __ -- -- -- -- -- ME -- __ -- --
ME -- -- -- -- -- ME -- ME -- -- -- -- -- ME --
ME ++ MS -- MB -- MB -- ME ++ MS -- MB -- MB --
""" """
MAP.weight_data = """ 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 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1, 'boss': 1}, {'battle': 3, 'enemy': 1, 'boss': 1},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'enemy': 1}, {'battle': 5, 'enemy': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['CL'] MAP_SIREN_TEMPLATE = ['CL']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
STAR_REQUIRE_1 = 0 STAR_REQUIRE_1 = 0
STAR_REQUIRE_2 = 0 STAR_REQUIRE_2 = 0
STAR_REQUIRE_3 = 0 STAR_REQUIRE_3 = 0
# ===== End of generated config ===== # ===== End of generated config =====
MAP_IS_ONE_TIME_STAGE = True MAP_IS_ONE_TIME_STAGE = True
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_3(self): def battle_3(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,74 +1,74 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .as1 import Config as ConfigBase from .as1 import Config as ConfigBase
MAP = CampaignMap('AS2') MAP = CampaignMap('AS2')
MAP.shape = 'H7' MAP.shape = 'H7'
MAP.camera_data = ['D2', 'D5', 'E2', 'E5'] MAP.camera_data = ['D2', 'D5', 'E2', 'E5']
MAP.camera_data_spawn_point = ['D2', 'E2'] MAP.camera_data_spawn_point = ['D2', 'E2']
MAP.map_data = """ MAP.map_data = """
-- MS ++ -- -- MB -- -- -- MS ++ -- -- MB -- --
ME -- -- -- -- -- ++ -- ME -- -- -- -- -- ++ --
-- ME -- SP SP -- -- -- -- ME -- SP SP -- -- --
-- ME -- -- -- ++ ++ -- -- ME -- -- -- ++ ++ --
ME -- __ -- -- ++ ++ ME ME -- __ -- -- ++ ++ ME
++ ++ ++ MB -- -- ME -- ++ ++ ++ MB -- -- ME --
-- -- ME -- ME -- MS -- -- -- ME -- ME -- MS --
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2, 'boss': 1}, {'battle': 4, 'enemy': 2, 'boss': 1},
{'battle': 5, 'enemy': 1}, {'battle': 5, 'enemy': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
A7, B7, C7, D7, E7, F7, G7, H7, \ A7, B7, C7, D7, E7, F7, G7, H7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['CL'] MAP_SIREN_TEMPLATE = ['CL']
MOVABLE_ENEMY_TURN = (2,) MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
STAR_REQUIRE_1 = 0 STAR_REQUIRE_1 = 0
STAR_REQUIRE_2 = 0 STAR_REQUIRE_2 = 0
STAR_REQUIRE_3 = 0 STAR_REQUIRE_3 = 0
# ===== End of generated config ===== # ===== End of generated config =====
MAP_IS_ONE_TIME_STAGE = True MAP_IS_ONE_TIME_STAGE = True
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,84 +1,84 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
MAP = CampaignMap('B1') MAP = CampaignMap('B1')
MAP.shape = 'H7' MAP.shape = 'H7'
MAP.camera_data = ['D2', 'D5', 'E2', 'E5'] MAP.camera_data = ['D2', 'D5', 'E2', 'E5']
MAP.camera_data_spawn_point = ['D5'] MAP.camera_data_spawn_point = ['D5']
MAP.map_data = """ MAP.map_data = """
-- -- -- MS -- -- -- -- -- -- -- MS -- -- -- --
-- ME -- ++ ++ ME -- ++ -- ME -- ++ ++ ME -- ++
++ -- MB ++ ++ -- -- ++ ++ -- MB ++ ++ -- -- ++
MS ME -- __ -- ME -- Me MS ME -- __ -- ME -- Me
-- -- MS -- ME -- -- -- -- -- MS -- ME -- -- --
ME ME -- -- -- ++ ++ ++ ME ME -- -- -- ++ ++ ++
-- -- SP SP -- -- Me -- -- -- SP SP -- -- Me --
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2, 'boss': 1}, {'battle': 4, 'enemy': 2, 'boss': 1},
{'battle': 5, 'enemy': 1}, {'battle': 5, 'enemy': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
A7, B7, C7, D7, E7, F7, G7, H7, \ A7, B7, C7, D7, E7, F7, G7, H7, \
= MAP.flatten() = MAP.flatten()
class Config: class Config:
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['Carabiniere', 'Trento'] MAP_SIREN_TEMPLATE = ['Carabiniere', 'Trento']
MOVABLE_ENEMY_TURN = (2, 3) MOVABLE_ENEMY_TURN = (2, 3)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
MAP_SWIPE_MULTIPLY = 1.519 MAP_SWIPE_MULTIPLY = 1.519
MAP_SWIPE_MULTIPLY_MINITOUCH = 1.469 MAP_SWIPE_MULTIPLY_MINITOUCH = 1.469
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (80, 255 - 24), 'height': (80, 255 - 24),
'width': (0.9, 10), 'width': (0.9, 10),
'prominence': 10, 'prominence': 10,
'distance': 35, 'distance': 35,
} }
EDGE_LINES_FIND_PEAKS_PARAMETERS = { EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 24, 255), 'height': (255 - 24, 255),
'prominence': 10, 'prominence': 10,
'distance': 50, 'distance': 50,
# 'width': (0, 7), # 'width': (0, 7),
'wlen': 1000 'wlen': 1000
} }
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_4(self): def battle_4(self):
return self.clear_boss() return self.clear_boss()

View File

@@ -1,69 +1,69 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .b1 import Config as ConfigBase from .b1 import Config as ConfigBase
MAP = CampaignMap('B2') MAP = CampaignMap('B2')
MAP.shape = 'I7' MAP.shape = 'I7'
MAP.camera_data = ['D2', 'D5', 'F2', 'F5'] MAP.camera_data = ['D2', 'D5', 'F2', 'F5']
MAP.camera_data_spawn_point = ['F2', 'D2'] MAP.camera_data_spawn_point = ['F2', 'D2']
MAP.map_data = """ MAP.map_data = """
-- -- -- -- SP SP ME -- -- -- -- -- -- SP SP ME -- --
-- -- MS Me -- -- -- ME -- -- -- MS Me -- -- -- ME --
ME ++ ++ ++ -- -- -- ++ ME ME ++ ++ ++ -- -- -- ++ ME
-- -- ME -- -- MS -- ++ -- -- -- ME -- -- MS -- ++ --
-- -- Me __ -- ++ -- -- ME -- -- Me __ -- ++ -- -- ME
++ ME ME -- -- -- Me -- -- ++ ME ME -- -- -- Me -- --
-- -- -- MB -- MB -- Me -- -- -- -- MB -- MB -- Me --
""" """
MAP.weight_data = """ 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 50 50
50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 0, 'enemy': 2, 'siren': 1},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'enemy': 1, 'boss': 1}, {'battle': 5, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A1, B1, C1, D1, E1, F1, G1, H1, I1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \
A7, B7, C7, D7, E7, F7, G7, H7, I7, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['Carabiniere', 'Trento'] MAP_SIREN_TEMPLATE = ['Carabiniere', 'Trento']
MOVABLE_ENEMY_TURN = (2, 3) MOVABLE_ENEMY_TURN = (2, 3)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

View File

@@ -1,69 +1,69 @@
from .campaign_base import CampaignBase from .campaign_base import CampaignBase
from module.map.map_base import CampaignMap from module.map.map_base import CampaignMap
from module.map.map_grids import SelectedGrids, RoadGrids from module.map.map_grids import SelectedGrids, RoadGrids
from module.logger import logger from module.logger import logger
from .b1 import Config as ConfigBase from .b1 import Config as ConfigBase
MAP = CampaignMap('B3') MAP = CampaignMap('B3')
MAP.shape = 'H7' MAP.shape = 'H7'
MAP.camera_data = ['D2', 'D5', 'E2', 'E5'] MAP.camera_data = ['D2', 'D5', 'E2', 'E5']
MAP.camera_data_spawn_point = ['D2', 'D5'] MAP.camera_data_spawn_point = ['D2', 'D5']
MAP.map_data = """ MAP.map_data = """
-- -- MS -- ME -- -- -- -- -- MS -- ME -- -- --
-- Me ++ MS -- Me ME ME -- Me ++ MS -- Me ME ME
SP -- ME -- Me ++ ++ ++ SP -- ME -- Me ++ ++ ++
-- -- -- __ -- -- MB -- -- -- -- __ -- -- MB --
SP -- -- -- -- ++ ++ ++ SP -- -- -- -- ++ ++ ++
-- Me ++ ++ MS -- -- ME -- Me ++ ++ MS -- -- ME
Me ME ++ ++ ME ME -- -- Me ME ++ ++ ME ME -- --
""" """
MAP.weight_data = """ 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 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 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 = [ MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 2}, {'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 1}, {'battle': 1, 'enemy': 1},
{'battle': 2, 'enemy': 2}, {'battle': 2, 'enemy': 2},
{'battle': 3, 'enemy': 1}, {'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 2}, {'battle': 4, 'enemy': 2},
{'battle': 5, 'enemy': 1, 'boss': 1}, {'battle': 5, 'enemy': 1, 'boss': 1},
] ]
A1, B1, C1, D1, E1, F1, G1, H1, \ A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \ A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \ A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \ A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \ A5, B5, C5, D5, E5, F5, G5, H5, \
A6, B6, C6, D6, E6, F6, G6, H6, \ A6, B6, C6, D6, E6, F6, G6, H6, \
A7, B7, C7, D7, E7, F7, G7, H7, \ A7, B7, C7, D7, E7, F7, G7, H7, \
= MAP.flatten() = MAP.flatten()
class Config(ConfigBase): class Config(ConfigBase):
# ===== Start of generated config ===== # ===== Start of generated config =====
MAP_SIREN_TEMPLATE = ['Carabiniere', 'Trento', 'Littorio'] MAP_SIREN_TEMPLATE = ['Carabiniere', 'Trento', 'Littorio']
MOVABLE_ENEMY_TURN = (2, 3) MOVABLE_ENEMY_TURN = (2, 3)
MAP_HAS_SIREN = True MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = False MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False MAP_HAS_AMBUSH = False
# ===== End of generated config ===== # ===== End of generated config =====
class Campaign(CampaignBase): class Campaign(CampaignBase):
MAP = MAP MAP = MAP
def battle_0(self): def battle_0(self):
if self.clear_siren(): if self.clear_siren():
return True return True
return self.battle_default() return self.battle_default()
def battle_5(self): def battle_5(self):
return self.fleet_boss.clear_boss() return self.fleet_boss.clear_boss()

Some files were not shown because too many files have changed in this diff Show More