'battle': 4, 'enemy': 1, 'boss': 1 }, ] A1, B1, C1, D1, E1, F1, G1, \ A2, B2, C2, D2, E2, F2, G2, \ A3, B3, C3, D3, E3, F3, G3, \ A4, B4, C4, D4, E4, F4, G4, \ A5, B5, C5, D5, E5, F5, G5, \ A6, B6, C6, D6, E6, F6, G6, \ A7, B7, C7, D7, E7, F7, G7, \ = MAP.flatten() ROAD_MAIN = RoadGrids([[E6, E7, F5, G5]]) class Config: MAP_HAS_AMBUSH = False CAMPAIGN_MODE = 'cd' # INTERNAL_LINES_HOUGHLINES_THRESHOLD = 60 INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { 'height': (150, 255 - 25), 'width': 1, 'prominence': 10, 'distance': 50, } class Campaign(CampaignBase):
A3, B3, C3, D3, E3, F3, G3, H3, \ A4, B4, C4, D4, E4, F4, G4, H4, \ A5, B5, C5, D5, E5, F5, G5, H5, \ = MAP.flatten() step_on = SelectedGrids([E4, G2, C3, C4, F3]) road_boss = RoadGrids([ A1, [B1, A2], B2, [C2, B3], [B3, C3], [B4, C3], [C3, C4], [C4, D3], D4, # A1 - D4 [G3, H4], [G3, G4], G3, [F3, G4], F4, [E4, F5], [E4, E5], [E4, D5] # H3 - D4 ]) road_in_map = RoadGrids([ A1, [B1, A2], B2, [C2, B3], [B3, C3],
A5, B5, C5, D5, E5, F5, G5, H5, \ A6, B6, C6, D6, E6, F6, G6, H6, \ = MAP.flatten() step_on = SelectedGrids([C2, C3, D4, F3, G4]) road_boss = RoadGrids([ [A5, B6], [A4, B5, B6], C4, C5, [C3, D4], D3, # A6 - D3 [C5, D3], # D5 - D3 [B1, B2], [B1, C2], [C1, C2], [C2, D1], [C2, D2], # A2 - D3 [H3, G4], [G3, G4], [F3, G4], [F3, F4], [F2, F3, E4], [E2, F3, E4], E3 # H4 - D3 ]) class Campaign(CampaignBase): MAP = MAP
}, { 'battle': 5, 'boss': 1 }, ] A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \ = MAP.flatten() road_main = RoadGrids([J5]) class Config(ConfigBase): # ===== Start of generated config ===== MAP_SIREN_TEMPLATE = ['Z18'] MOVABLE_ENEMY_TURN = (3, ) MAP_HAS_SIREN = True MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MAP_STORY = False MAP_HAS_FLEET_STEP = True MAP_HAS_AMBUSH = False MAP_HAS_LAND_BASED = True # ===== End of generated config =====
'boss': 1 }, ] A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \ A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, \ = MAP.flatten() step_on = SelectedGrids([C3]) road_boss = RoadGrids([C3, H4, [C5, C7], G6, G8]) class Config: pass # INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 # EDGE_LINES_HOUGHLINES_THRESHOLD = 40 # COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 # INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { # 'height': (150, 255 - 24), # 'width': (0.9, 10), # 'prominence': 10, # 'distance': 35, # } # EDGE_LINES_FIND_PEAKS_PARAMETERS = { # 'height': (255 - 24, 255),
{'battle': 0, 'enemy': 3}, {'battle': 1, 'enemy': 2}, {'battle': 2, 'enemy': 2}, {'battle': 3, 'enemy': 1}, {'battle': 4, 'enemy': 1}, {'battle': 5, 'boss': 1}, ] A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \ = MAP.flatten() road_main = RoadGrids([C3, C2, [C1, D2], F1, H1, H2, H3, H4]) class Config: SUBMARINE = 0 INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 EDGE_LINES_HOUGHLINES_THRESHOLD = 40 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { 'height': (150, 255 - 24), 'width': (0.9, 10), 'prominence': 10, 'distance': 35, } EDGE_LINES_FIND_PEAKS_PARAMETERS = { 'height': (255 - 24, 255),
'battle': 5 }, { 'battle': 6, 'boss': 1 }, ] A1, B1, C1, D1, E1, F1, G1, H1, \ A2, B2, C2, D2, E2, F2, G2, H2, \ A3, B3, C3, D3, E3, F3, G3, H3, \ A4, B4, C4, D4, E4, F4, G4, H4, \ A5, B5, C5, D5, E5, F5, G5, H5, \ A6, B6, C6, D6, E6, F6, G6, H6, \ = MAP.flatten() road_main = RoadGrids([B2, B3, E5, F4, G4, H3]) class Config: INTERNAL_LINES_HOUGHLINES_THRESHOLD = 30 EDGE_LINES_HOUGHLINES_THRESHOLD = 30 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.2 INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { 'height': (150, 255 - 24), 'width': (0.9, 10), 'prominence': 10, 'distance': 35, } EDGE_LINES_FIND_PEAKS_PARAMETERS = { 'height': (255 - 24, 255), 'prominence': 10,
{ 'battle': 6, 'boss': 1 }, ] A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \ A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, K8, \ = MAP.flatten() road_main = RoadGrids([[H3, B6, C5]]) class Campaign(CampaignBase): MAP = MAP def battle_0(self): if self.battle_count >= 3: self.pick_up_ammo() if self.clear_roadblocks([road_main]): return True if self.clear_potential_roadblocks([road_main]): return True return self.battle_default()
{'battle': 2, 'enemy': 1}, {'battle': 3, 'enemy': 1}, {'battle': 4, 'enemy': 1}, {'battle': 5}, {'battle': 6, 'boss': 1}, ] A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \ = MAP.flatten() road_main = RoadGrids([[C4, D5], B3]) class Campaign(CampaignBase): MAP = MAP def battle_0(self): if self.clear_roadblocks([road_main]): return True if self.clear_potential_roadblocks([road_main]): return True return self.battle_default() def battle_6(self): boss = self.map.select(is_boss=True)
}, { 'battle': 4, 'boss': 1 }, ] A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \ = MAP.flatten() road_main = RoadGrids([K3]) class Config: # ===== Start of generated config ===== MAP_SIREN_TEMPLATE = ['Z18'] MOVABLE_ENEMY_TURN = (3, ) MAP_HAS_SIREN = True MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MAP_STORY = False MAP_HAS_FLEET_STEP = True MAP_HAS_AMBUSH = False MAP_HAS_LAND_BASED = True # ===== End of generated config =====
{'battle': 2, 'enemy': 1}, {'battle': 3, 'enemy': 1}, {'battle': 4, 'enemy': 1}, {'battle': 5}, {'battle': 6, 'boss': 1}, ] A1, B1, C1, D1, E1, F1, G1, H1, \ A2, B2, C2, D2, E2, F2, G2, H2, \ A3, B3, C3, D3, E3, F3, G3, H3, \ A4, B4, C4, D4, E4, F4, G4, H4, \ A5, B5, C5, D5, E5, F5, G5, H5, \ A6, B6, C6, D6, E6, F6, G6, H6, \ = MAP.flatten() road_main = RoadGrids([B6, C6, D6, E5, F4, G2, [G1, H2], G3, G4, G5, [H5, G6]]) class Config: INTERNAL_LINES_HOUGHLINES_THRESHOLD = 30 EDGE_LINES_HOUGHLINES_THRESHOLD = 30 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.3 INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { 'height': (150, 255 - 24), 'width': (0.9, 10), 'prominence': 10, 'distance': 35, } EDGE_LINES_FIND_PEAKS_PARAMETERS = { 'height': (255 - 24, 255), 'prominence': 10, 'distance': 50,
'battle': 4, 'enemy': 1, 'mystery': 1, 'boss': 1 }, ] A1, B1, C1, D1, E1, F1, G1, H1, \ A2, B2, C2, D2, E2, F2, G2, H2, \ A3, B3, C3, D3, E3, F3, G3, H3, \ A4, B4, C4, D4, E4, F4, G4, H4, \ A5, B5, C5, D5, E5, F5, G5, H5, \ A6, B6, C6, D6, E6, F6, G6, H6, \ = MAP.flatten() step_on = SelectedGrids([C4, F4, A5, H4, F6]) road_boss = RoadGrids([B6, A6, A5, A4, B4, C4, D4, D5, E5, F5, F6, F4, G4, H4]) class Config: FLEET_BOSS = 1 MAP_MYSTERY_HAS_CARRIER = True INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 # EDGE_LINES_HOUGHLINES_THRESHOLD = 40 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 class Campaign(CampaignBase): MAP = MAP def battle_0(self):
}, { 'battle': 5, 'boss': 1 }, ] A1, B1, C1, D1, E1, F1, G1, H1, \ A2, B2, C2, D2, E2, F2, G2, H2, \ A3, B3, C3, D3, E3, F3, G3, H3, \ A4, B4, C4, D4, E4, F4, G4, H4, \ A5, B5, C5, D5, E5, F5, G5, H5, \ A6, B6, C6, D6, E6, F6, G6, H6, \ = MAP.flatten() # road_a1 = RoadGrids([[A2, B1], [A2, B3], [B3, A4], [A4, B3, D2, E1], [C4, B3, D2, E1]]) road_a1 = RoadGrids([[A2, B1], [A2, B3], [B3, A4], [B3, C4]])\ .combine(RoadGrids([A2, [E1, D2]])) road_c6 = RoadGrids([B6, A6, A4, [B3, C4]]) road_h1 = RoadGrids([[H2, G1], [G1, F2], [F2, E1]]) road_h5 = RoadGrids([H6, G6, [E6, F5]]) roads = [road_a1, road_c6, road_h1, road_h5] fleet_2_step_on = SelectedGrids([A4, B3, E1, F5]) class Config: INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 # EDGE_LINES_HOUGHLINES_THRESHOLD = 40 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 class Campaign(CampaignBase): MAP = MAP
'battle': 5 }, { 'battle': 6, 'boss': 1 }, ] A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ = MAP.flatten() road_main = RoadGrids([C6, F5, G5, H4, H6]) class Config: DETECTION_BACKEND = 'homography' HOMO_STORAGE = ((6, 6), [(579.064, 82.271), (1248.248, 82.271), (562.795, 616.581), (1438.283, 616.581)]) INTERNAL_LINES_HOUGHLINES_THRESHOLD = 30 EDGE_LINES_HOUGHLINES_THRESHOLD = 30 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.2 INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { 'height': (150, 255 - 24), 'width': (0.9, 10), 'prominence': 10, 'distance': 35, }
{'battle': 1, 'enemy': 2, 'mystery': 1}, {'battle': 2, 'enemy': 1}, {'battle': 3, 'enemy': 1}, {'battle': 4, 'enemy': 1}, {'battle': 5}, {'battle': 6, 'boss': 1}, ] A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \ = MAP.flatten() road_main = RoadGrids([E6, G6, H6, E5, H4, G4, F4, F3]) class Config: INTERNAL_LINES_HOUGHLINES_THRESHOLD = 35 EDGE_LINES_HOUGHLINES_THRESHOLD = 35 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.2 INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { 'height': (150, 255 - 24), 'width': (0.9, 10), 'prominence': 10, 'distance': 35, } EDGE_LINES_FIND_PEAKS_PARAMETERS = { 'height': (255 - 24, 255), 'prominence': 10,
}, { 'battle': 4, 'enemy': 1, 'boss': 1 }, ] A1, B1, C1, D1, E1, F1, G1, H1, \ A2, B2, C2, D2, E2, F2, G2, H2, \ A3, B3, C3, D3, E3, F3, G3, H3, \ A4, B4, C4, D4, E4, F4, G4, H4, \ A5, B5, C5, D5, E5, F5, G5, H5, \ A6, B6, C6, D6, E6, F6, G6, H6, \ = MAP.flatten() road_middle = RoadGrids([D5, F3]) step_on = SelectedGrids([D5, F3]) # There's one enemy spawn along with boss, so have to make sure there are multiple roads are cleared. # Here use separate roads instead of RoadGrids.combine(). road_H1 = RoadGrids([F3, [F1, G2, H3]]) road_A6 = RoadGrids([D5, [B5, C6]]) road_A1_left = RoadGrids([A4, A3]) road_A1_upper = RoadGrids([F1, E1, D1, C1]) road_H6_bottom = RoadGrids([D6, E6, F6]) road_H6_right = RoadGrids([[H3, G4], [G4, H4], [H4, G5]]) road_MY = RoadGrids([[B2, C1]]) class Config(ConfigBase): pass
{'battle': 1, 'enemy': 2}, {'battle': 2, 'enemy': 2}, {'battle': 3, 'enemy': 1}, {'battle': 4, 'enemy': 1}, {'battle': 5, 'boss': 1}, ] A1, B1, C1, D1, E1, F1, G1, H1, \ A2, B2, C2, D2, E2, F2, G2, H2, \ A3, B3, C3, D3, E3, F3, G3, H3, \ A4, B4, C4, D4, E4, F4, G4, H4, \ A5, B5, C5, D5, E5, F5, G5, H5, \ A6, B6, C6, D6, E6, F6, G6, H6, \ = MAP.flatten() road_main = RoadGrids([A2, A3, C5, D6, F2, F3, F6, G6, H4]) class Config: INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 EDGE_LINES_HOUGHLINES_THRESHOLD = 40 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { 'height': (150, 255 - 24), 'width': (0.9, 10), 'prominence': 10, 'distance': 35, } EDGE_LINES_FIND_PEAKS_PARAMETERS = { 'height': (255 - 24, 255), 'prominence': 10, 'distance': 50,
{'battle': 0, 'enemy': 2, 'siren': 1}, {'battle': 1, 'enemy': 1}, {'battle': 2, 'enemy': 1}, {'battle': 3, 'enemy': 1}, {'battle': 4, 'enemy': 1, 'boss': 1}, ] A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \ = MAP.flatten() road_main = RoadGrids([G5, H5, H6]) class Config(ConfigBase): pass class Campaign(CampaignBase): MAP = MAP def battle_0(self): if self.clear_siren(): return True if self.clear_roadblocks([road_main]): return True if self.clear_potential_roadblocks([road_main]):
}, { 'battle': 4, 'enemy': 1, 'boss': 1 }, ] A1, B1, C1, D1, E1, F1, G1, H1, \ A2, B2, C2, D2, E2, F2, G2, H2, \ A3, B3, C3, D3, E3, F3, G3, H3, \ A4, B4, C4, D4, E4, F4, G4, H4, \ A5, B5, C5, D5, E5, F5, G5, H5, \ = MAP.flatten() road_center = RoadGrids([C2, [E2, F1], C4, F5, [F3, G2, H3], [F3, G4, H3]]) road_ring = RoadGrids([[E2, F1], [F1, G2, H3], [F5, G4, H3], [F3, G2, H3], [F3, G4, H3]]) class Config(Config51): MAP_MYSTERY_HAS_CARRIER = False INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 EDGE_LINES_HOUGHLINES_THRESHOLD = 40 class Campaign(CampaignBase): MAP = MAP def battle_0(self): if self.clear_roadblocks([road_center]):
'battle': 4, 'enemy': 1, 'mystery': 1, 'boss': 1 }, ] A1, B1, C1, D1, E1, F1, G1, H1, \ A2, B2, C2, D2, E2, F2, G2, H2, \ A3, B3, C3, D3, E3, F3, G3, H3, \ A4, B4, C4, D4, E4, F4, G4, H4, \ A5, B5, C5, D5, E5, F5, G5, H5, \ = MAP.flatten() step_on = SelectedGrids([E3, C3, G4, D2]) road_boss = RoadGrids( [C1, C2, [C3, D2], D4, E4, [E3, F4], F3, G3, H3, [G4, H4]]) road_mystery = RoadGrids([[C4, D5], D4, G2, [G1, H2]]) class Config: FLEET_BOSS = 1 MAP_MYSTERY_HAS_CARRIER = True class Campaign(CampaignBase): MAP = MAP def battle_0(self): if self.fleet_2_step_on(step_on, roadblocks=[road_boss]): return True
}, { 'battle': 6, 'boss': 1 }, ] A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \ = MAP.flatten() step_on = SelectedGrids([E4, D3, G4, C3]) road_main = RoadGrids([D5, E4, D3, C3, A2, G4, H5, G3, G2]) roadblocks_d4 = RoadGrids([[D5, E6], E4, D3]) class Config: pass class Campaign(CampaignBase): MAP = MAP def battle_0(self): if self.fleet_2_step_on(step_on, roadblocks=[roadblocks_d4]): return True if self.clear_roadblocks([road_main]):
""" MAP.spawn_data = [ {'battle': 0, 'enemy': 3}, {'battle': 1, 'enemy': 2, 'mystery': 1}, {'battle': 2, 'enemy': 2, 'mystery': 1}, {'battle': 3, 'enemy': 1, 'mystery': 2}, {'battle': 4, 'enemy': 1}, {'battle': 5, 'boss': 1}, ] A1, B1, C1, D1, E1, F1, G1, H1, \ A2, B2, C2, D2, E2, F2, G2, H2, \ A3, B3, C3, D3, E3, F3, G3, H3, \ A4, B4, C4, D4, E4, F4, G4, H4, \ A5, B5, C5, D5, E5, F5, G5, H5 = MAP.flatten() ROAD_MAIN = RoadGrids([A3, [C3, B4, C5], [F1, G2, G3]]) GRIDS_FOR_FASTER = SelectedGrids([A3, C3, E3, G3]) FLEET_2_STEP_ON = SelectedGrids([A3, G3, C3, E3]) class Config: SUBMARINE = 0 class Campaign(CampaignBase): MAP = MAP def battle_0(self): if self.fleet_2_step_on(FLEET_2_STEP_ON, roadblocks=[ROAD_MAIN]): return True
'battle': 4, 'enemy': 2, 'boss': 1 }, ] A1, B1, C1, D1, E1, F1, G1, H1, \ A2, B2, C2, D2, E2, F2, G2, H2, \ A3, B3, C3, D3, E3, F3, G3, H3, \ A4, B4, C4, D4, E4, F4, G4, H4, \ A5, B5, C5, D5, E5, F5, G5, H5, \ A6, B6, C6, D6, E6, F6, G6, H6, \ A7, B7, C7, D7, E7, F7, G7, H7, \ = MAP.flatten() road_main = RoadGrids([C5, C3, D6, E7, [G7, H6]]) class Config: INTERNAL_LINES_HOUGHLINES_THRESHOLD = 35 EDGE_LINES_HOUGHLINES_THRESHOLD = 35 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.3 INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { 'height': (150, 255 - 24), 'width': (0.9, 10), 'prominence': 10, 'distance': 35, } EDGE_LINES_FIND_PEAKS_PARAMETERS = { 'height': (255 - 24, 255), 'prominence': 10,
}, { 'battle': 6, 'boss': 1 }, ] A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \ = MAP.flatten() road_main = RoadGrids([H1, J1]) class Campaign(CampaignBase): MAP = MAP def battle_0(self): if self.clear_roadblocks([road_main]): return True if self.clear_potential_roadblocks([road_main]): return True return self.battle_default() def battle_6(self): boss = self.map.select(is_boss=True)
# ['F2', 'G1', 'H2', 'K4', 'K5'] # ['C5', 'C6', 'D5'] # ['E8', 'G8'] OVERRIDE = CampaignMap('14-4') OVERRIDE.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 -- """ road_A8 = RoadGrids([B8]) road_H9 = RoadGrids([ [H8, I8, J9], ]) class Config(ConfigBase): # ===== Start of generated config ===== # MAP_SIREN_TEMPLATE = ['0'] # MOVABLE_ENEMY_TURN = (2,) # MAP_HAS_SIREN = True # MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MAP_STORY = False MAP_HAS_FLEET_STEP = False MAP_HAS_AMBUSH = True # MAP_HAS_MYSTERY = True
'enemy': 1 }, { 'battle': 5, 'boss': 1 }, ] A1, B1, C1, D1, E1, F1, G1, H1, \ A2, B2, C2, D2, E2, F2, G2, H2, \ A3, B3, C3, D3, E3, F3, G3, H3, \ A4, B4, C4, D4, E4, F4, G4, H4, \ A5, B5, C5, D5, E5, F5, G5, H5, \ A6, B6, C6, D6, E6, F6, G6, H6, \ = MAP.flatten() ROAD_MAIN = RoadGrids([[A2, C4], C2, E2, G2, H3, F5, E5]) class Config(ConfigBase): # ===== Start of generated config ===== MAP_HAS_MAP_STORY = True MAP_HAS_FLEET_STEP = False MAP_HAS_AMBUSH = True MAP_HAS_MYSTERY = True # ===== End of generated config ===== class Campaign(CampaignBase): MAP = MAP ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C'
}, { 'battle': 5, 'boss': 1 }, ] A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \ = MAP.flatten() road_main = RoadGrids([I4, J4]) class Config(ConfigBase): # ===== Start of generated config ===== MAP_SIREN_TEMPLATE = ['Z18'] MOVABLE_ENEMY_TURN = (3, ) MAP_HAS_SIREN = True MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_MAP_STORY = False MAP_HAS_FLEET_STEP = True MAP_HAS_AMBUSH = False MAP_HAS_LAND_BASED = True # ===== End of generated config =====
'enemy': 2 }, { 'battle': 5, 'boss': 1 }, ] A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \ = MAP.flatten() road_main = RoadGrids([A3, D6, [E5, F6], G4, I4]) class Config: INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40 EDGE_LINES_HOUGHLINES_THRESHOLD = 40 COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { 'height': (150, 255 - 24), 'width': (0.9, 10), 'prominence': 10, 'distance': 35, } EDGE_LINES_FIND_PEAKS_PARAMETERS = { 'height': (255 - 24, 255), 'prominence': 10,
}, { 'battle': 7, 'boss': 1 }, ] A1, B1, C1, D1, E1, F1, G1, H1, I1, \ A2, B2, C2, D2, E2, F2, G2, H2, I2, \ A3, B3, C3, D3, E3, F3, G3, H3, I3, \ A4, B4, C4, D4, E4, F4, G4, H4, I4, \ A5, B5, C5, D5, E5, F5, G5, H5, I5, \ A6, B6, C6, D6, E6, F6, G6, H6, I6, \ A7, B7, C7, D7, E7, F7, G7, H7, I7, \ = MAP.flatten() ROAD_MAIN = RoadGrids([D6, [G4, G5], H4, H3, F1, D1, C1, B2]) class Config(ConfigBase): # ===== Start of generated config ===== MAP_HAS_MAP_STORY = True MAP_HAS_FLEET_STEP = False MAP_HAS_AMBUSH = True MAP_HAS_MYSTERY = True # ===== End of generated config ===== class Campaign(CampaignBase): MAP = MAP ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C'
'enemy': 1 }, { 'battle': 4, 'enemy': 1, 'boss': 1 }, ] A1, B1, C1, D1, E1, F1, G1, H1, \ A2, B2, C2, D2, E2, F2, G2, H2, \ A3, B3, C3, D3, E3, F3, G3, H3, \ A4, B4, C4, D4, E4, F4, G4, H4, \ A5, B5, C5, D5, E5, F5, G5, H5, \ = MAP.flatten() road_A1 = RoadGrids([[A2, B1], [B1, B2, B3], [A2, B2, C2], [B3, C2], D3]) road_H1 = RoadGrids([[F1, G2, H3], [F1, G2, G3], [F2, G2, H3], [F2, G3], E3]) road_MY = RoadGrids([A4, [A2, B3]]) road_middle = RoadGrids([E5, [D5, E4], D3]) \ .combine(RoadGrids([H4, H3, [F1, G2, G3], [F2, G3], E3])) step_on = SelectedGrids([D3, E3]) class Config(ConfigBase): HOMO_EDGE_HOUGHLINES_THRESHOLD = 210 class Campaign(CampaignBase): MAP = MAP def battle_0(self):