mirror of
https://github.com/LmeSzinc/AzurLaneAutoScript.git
synced 2025-01-07 07:26:46 +08:00
Add new wararchives 20221117
新增作战档案:微层混合和峡湾间的星辰
This commit is contained in:
parent
e6cd0043cf
commit
29b180c8c7
BIN
assets/cn/war_archives/TEMPLATE_MICROLAYER_MEDLEY.png
Normal file
BIN
assets/cn/war_archives/TEMPLATE_MICROLAYER_MEDLEY.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
Binary file not shown.
After Width: | Height: | Size: 32 KiB |
@ -29,6 +29,8 @@ To add a new event, add a new row in here, and run `python -m dev_tools.event_ex
|
||||
| 20220721 | war archives 20210624 cn | Swirling Cherry Blossoms | 浮樱影华 | Swirling Cherry Blossoms | 翳りし満ちる影の華 | - |
|
||||
| 20220901 | war archives 20200806 cn | The Enigma and the Shark | 最重要的宝物 | The Enigma and the Shark | 鉄血鮫とエニグマ | - |
|
||||
| 20221013 | war archives 20201029 cn | Universe in Unison | 激唱的UNIVERSE | Universe in Unison | 激唱のユニバース | - |
|
||||
| 20221117 | war archives 20200903 cn | Stars of the Shimmering Fjord | 峡湾间的星辰 | Stars of the Shimmering Fjord | 輝ける峡湾の星 | - |
|
||||
| 20221117 | war archives 20210819 cn | Microlayer Medley | 微层混合 | Microlayer Medley | 闇靄払う銀翼 | - |
|
||||
| 20200227 | event 20200227 cn | Northern Overture | 北境序曲 | Northern Overture | 凍絶の北海 | - |
|
||||
| 20200312 | event 20200312 cn | The Solomon Ranger | 复刻斯图尔特的硝烟 | The Solomon Ranger Rerun | 南洋に靡く硝煙(復刻) | - |
|
||||
| 20200326 | event 20200326 cn | Microlayer Medley | 微层混合 | Microlayer Medley | 闇靄払う銀翼 | - |
|
||||
|
10
campaign/war_archives_20200903_cn/campaign_base.py
Normal file
10
campaign/war_archives_20200903_cn/campaign_base.py
Normal file
@ -0,0 +1,10 @@
|
||||
from ..campaign_war_archives.campaign_base import CampaignBase as CampaignBase_
|
||||
from module.exception import CampaignNameError
|
||||
from module.logger import logger
|
||||
|
||||
|
||||
class CampaignBase(CampaignBase_):
|
||||
|
||||
STAGE_INCREASE = [
|
||||
'SP0 > SP1 > SP2 > SP3',
|
||||
]
|
65
campaign/war_archives_20200903_cn/sp0.py
Normal file
65
campaign/war_archives_20200903_cn/sp0.py
Normal file
@ -0,0 +1,65 @@
|
||||
from .campaign_base import CampaignBase
|
||||
from module.logger import logger
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import RoadGrids, SelectedGrids
|
||||
|
||||
MAP = CampaignMap('SP0')
|
||||
MAP.shape = 'J6'
|
||||
MAP.camera_data = ['D2', 'D4', 'G2', 'G4']
|
||||
MAP.camera_data_spawn_point = ['D2', 'D4']
|
||||
MAP.map_data = """
|
||||
-- -- ++ ++ ++ ++ -- -- ++ ++
|
||||
-- ++ -- -- -- ++ -- -- -- ++
|
||||
SP -- -- -- -- -- ++ -- -- --
|
||||
SP -- -- -- -- -- -- -- -- MB
|
||||
-- -- -- -- ++ -- -- ++ -- --
|
||||
-- -- -- ++ ++ -- ++ ++ ++ --
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50 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.spawn_data = [
|
||||
{'battle': 0, 'boss': 1},
|
||||
# {'battle': 1, 'enemy': 2},
|
||||
# {'battle': 2, 'enemy': 1},
|
||||
# {'battle': 3, 'enemy': 1, 'mystery': 1},
|
||||
# {'battle': 4, 'enemy': 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, \
|
||||
= MAP.flatten()
|
||||
|
||||
mechanism = SelectedGrids([C6, E2, G5])
|
||||
|
||||
|
||||
class Config:
|
||||
# ===== Start of generated config =====
|
||||
MAP_HAS_MAP_STORY = False
|
||||
MAP_HAS_FLEET_STEP = True
|
||||
MAP_HAS_AMBUSH = False
|
||||
MAP_HAS_LAND_BASED = True
|
||||
# ===== End of generated config =====
|
||||
|
||||
STAR_REQUIRE_1 = 0
|
||||
STAR_REQUIRE_2 = 0
|
||||
STAR_REQUIRE_3 = 0
|
||||
MAP_IS_ONE_TIME_STAGE = True
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
self.clear_mechanism(mechanism)
|
||||
|
||||
return self.clear_boss()
|
85
campaign/war_archives_20200903_cn/sp1.py
Normal file
85
campaign/war_archives_20200903_cn/sp1.py
Normal file
@ -0,0 +1,85 @@
|
||||
from .campaign_base import CampaignBase
|
||||
from module.logger import logger
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import RoadGrids, SelectedGrids
|
||||
|
||||
MAP = CampaignMap('SP1')
|
||||
MAP.shape = 'K7'
|
||||
MAP.camera_data = ['D3', 'D5', 'H3', 'H5']
|
||||
MAP.camera_data_spawn_point = ['D2']
|
||||
MAP.map_data = """
|
||||
++ ++ ++ -- MS -- -- -- ME ++ --
|
||||
-- ME -- ++ -- ++ ++ -- ME ++ MB
|
||||
SP -- ME -- -- ME ++ -- Me ++ Me
|
||||
SP -- __ -- -- ++ ME -- ME -- --
|
||||
ME -- -- -- ME -- -- -- -- -- --
|
||||
ME -- -- ++ -- -- -- -- -- -- --
|
||||
-- -- -- ++ -- -- -- ++ ++ ++ ++
|
||||
"""
|
||||
MAP.map_data_loop = """
|
||||
++ ++ ++ -- MS -- -- -- ME ++ --
|
||||
-- ME -- -- -- ++ ++ -- ME ++ MB
|
||||
SP -- ME -- -- ME ++ -- Me -- Me
|
||||
SP -- __ -- -- -- ME -- ME -- --
|
||||
ME -- -- -- ME -- -- -- -- -- --
|
||||
ME -- -- ++ -- -- -- -- -- -- --
|
||||
-- -- -- ++ -- -- -- -- ++ ++ ++
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 50 50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 55 50 50 50 50 30
|
||||
50 50 50 50 50 50 50 50 50 50 40
|
||||
50 50 50 50 50 50 50 50 50 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 = [['H7', 'up'], ['F4', 'down'], ['J3', 'down'], ['D2', 'down']]
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2, 'siren': 1},
|
||||
{'battle': 1, 'enemy': 1},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'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 =====
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_siren():
|
||||
return True
|
||||
|
||||
self.clear_mechanism()
|
||||
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_4(self):
|
||||
return self.clear_boss()
|
95
campaign/war_archives_20200903_cn/sp2.py
Normal file
95
campaign/war_archives_20200903_cn/sp2.py
Normal file
@ -0,0 +1,95 @@
|
||||
from .campaign_base import CampaignBase
|
||||
from module.logger import logger
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import RoadGrids, SelectedGrids
|
||||
|
||||
from .sp1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('SP2')
|
||||
MAP.shape = 'K7'
|
||||
MAP.camera_data = ['D3', 'D5', 'H3', 'H5']
|
||||
MAP.camera_data_spawn_point = ['D2', 'D5']
|
||||
MAP.map_data = """
|
||||
++ ++ ++ -- -- -- -- ME ++ ++ --
|
||||
ME -- ++ -- -- ++ -- -- MS ++ --
|
||||
SP -- -- MS -- ++ -- -- -- Me --
|
||||
-- ME -- ME ++ ++ ME __ -- -- ++
|
||||
SP -- -- ME ++ ++ ME -- ME Me --
|
||||
ME ++ ++ -- -- -- -- -- ++ ME MB
|
||||
-- ++ -- ME ME -- -- ME ++ ++ ++
|
||||
"""
|
||||
MAP.map_data_loop = """
|
||||
++ ++ ++ -- -- -- -- ME ++ ++ --
|
||||
ME -- -- -- -- ++ -- -- MS ++ --
|
||||
SP -- -- MS -- -- -- -- -- Me --
|
||||
-- ME -- ME ++ ++ ME __ -- -- ++
|
||||
SP -- -- ME ++ ++ ME -- ME Me --
|
||||
ME ++ -- -- -- -- -- -- -- ME MB
|
||||
-- ++ -- ME ME -- -- ME ++ ++ ++
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 50 50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50 50 40 30
|
||||
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 = [['I6', 'up'], ['C6', 'right'], ['F3', 'right'], ['C2', 'down']]
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2, 'siren': 2},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
# {'battle': 2, 'enemy': 1, 'mystery': 1},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4},
|
||||
{'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 =====
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if not self.config.MAP_HAS_MOVABLE_ENEMY:
|
||||
self.fleet_2_push_forward()
|
||||
|
||||
if self.clear_siren():
|
||||
return True
|
||||
|
||||
self.clear_mechanism()
|
||||
|
||||
if self.config.MAP_HAS_MOVABLE_ENEMY:
|
||||
self.fleet_2_push_forward()
|
||||
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_5(self):
|
||||
return self.fleet_boss.clear_boss()
|
95
campaign/war_archives_20200903_cn/sp3.py
Normal file
95
campaign/war_archives_20200903_cn/sp3.py
Normal file
@ -0,0 +1,95 @@
|
||||
from .campaign_base import CampaignBase
|
||||
from module.logger import logger
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import RoadGrids, SelectedGrids
|
||||
|
||||
from .sp1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('SP3')
|
||||
MAP.shape = 'K7'
|
||||
MAP.camera_data = ['D2', 'D5', 'H2', 'H5']
|
||||
MAP.camera_data_spawn_point = ['D2']
|
||||
MAP.map_data = """
|
||||
ME -- -- MS -- ME ME -- ME ME --
|
||||
-- -- ++ -- -- -- ++ -- ME ME ME
|
||||
SP -- ++ ++ ME -- ++ -- ++ ++ ++
|
||||
SP -- ++ ++ ME -- -- -- Me Me MB
|
||||
-- -- -- ++ ME ME -- -- ++ ++ ++
|
||||
ME ME -- __ -- -- -- -- -- ME --
|
||||
ME ME ++ ME ME ME -- ++ -- MS ME
|
||||
"""
|
||||
MAP.map_data_loop = """
|
||||
ME -- -- MS -- ME ME -- ME ME --
|
||||
-- -- -- -- -- -- ++ -- ME ME ME
|
||||
SP -- ++ ++ ME -- -- -- ++ ++ ++
|
||||
SP -- ++ ++ ME -- -- -- Me Me MB
|
||||
-- -- -- -- ME ME -- -- ++ ++ ++
|
||||
ME ME -- __ -- -- -- -- -- ME --
|
||||
ME ME ++ ME ME ME -- -- -- MS ME
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 50 50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50 40 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.land_based_data = [['H7', 'up'], ['D5', 'left'], ['G3', 'down'], ['C2', 'right']]
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2, 'siren': 2},
|
||||
{'battle': 1, 'enemy': 2},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
# {'battle': 3, 'enemy': 1, 'mystery': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'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 =====
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if not self.config.MAP_HAS_MOVABLE_ENEMY:
|
||||
self.fleet_2_push_forward()
|
||||
|
||||
if self.clear_siren():
|
||||
return True
|
||||
|
||||
self.clear_mechanism()
|
||||
|
||||
if self.config.MAP_HAS_MOVABLE_ENEMY:
|
||||
self.fleet_2_push_forward()
|
||||
|
||||
if self.clear_roadblocks([road_main]):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_5(self):
|
||||
return self.fleet_boss.clear_boss()
|
83
campaign/war_archives_20210819_cn/a1.py
Normal file
83
campaign/war_archives_20210819_cn/a1.py
Normal file
@ -0,0 +1,83 @@
|
||||
from ..campaign_war_archives.campaign_base import CampaignBase
|
||||
from module.logger import logger
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import RoadGrids, SelectedGrids
|
||||
|
||||
MAP = CampaignMap('A1')
|
||||
MAP.shape = 'F7'
|
||||
MAP.camera_data = ['C2', 'C5']
|
||||
MAP.camera_data_spawn_point = ['C5', 'C2']
|
||||
MAP.map_data = """
|
||||
-- -- ME -- -- ++
|
||||
ME ++ ++ ME -- ME
|
||||
-- ++ MS -- SP --
|
||||
MB MB __ -- -- ME
|
||||
ME MB MS -- SP --
|
||||
-- ++ ME ME -- --
|
||||
Me ++ Me Me ++ Me
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2, 'siren': 1},
|
||||
{'battle': 1, 'enemy': 1},
|
||||
{'battle': 2, 'enemy': 1},
|
||||
{'battle': 3, 'enemy': 1, 'boss': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, \
|
||||
A2, B2, C2, D2, E2, F2, \
|
||||
A3, B3, C3, D3, E3, F3, \
|
||||
A4, B4, C4, D4, E4, F4, \
|
||||
A5, B5, C5, D5, E5, F5, \
|
||||
A6, B6, C6, D6, E6, F6, \
|
||||
A7, B7, C7, D7, E7, F7, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config:
|
||||
# ===== Start of generated config =====
|
||||
MAP_SIREN_TEMPLATE = ['DD']
|
||||
MOVABLE_ENEMY_TURN = (2,)
|
||||
MAP_HAS_SIREN = True
|
||||
MAP_HAS_MOVABLE_ENEMY = True
|
||||
MAP_HAS_MAP_STORY = True
|
||||
MAP_HAS_FLEET_STEP = True
|
||||
MAP_HAS_AMBUSH = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
DETECTION_BACKEND = 'perspective'
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 5
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (50, 255 - 80),
|
||||
'width': (0, 7),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 80, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
# 'width': (0, 7),
|
||||
'wlen': 1000
|
||||
}
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_siren():
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_3(self):
|
||||
return self.clear_boss()
|
72
campaign/war_archives_20210819_cn/a2.py
Normal file
72
campaign/war_archives_20210819_cn/a2.py
Normal file
@ -0,0 +1,72 @@
|
||||
from ..campaign_war_archives.campaign_base import CampaignBase
|
||||
from module.logger import logger
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import RoadGrids, SelectedGrids
|
||||
|
||||
from .a1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('A2')
|
||||
MAP.shape = 'F8'
|
||||
MAP.camera_data = ['C2', 'C6']
|
||||
MAP.camera_data_spawn_point = ['C2']
|
||||
MAP.map_data = """
|
||||
-- ME -- ME Me ME
|
||||
-- ME -- -- MS --
|
||||
++ ++ ++ ME -- --
|
||||
SP -- -- -- -- SP
|
||||
ME -- -- -- ++ ++
|
||||
-- MS ME __ ++ ++
|
||||
Me -- ++ -- -- MB
|
||||
-- Me -- ME MB MB
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2, '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, \
|
||||
A2, B2, C2, D2, E2, F2, \
|
||||
A3, B3, C3, D3, E3, F3, \
|
||||
A4, B4, C4, D4, E4, F4, \
|
||||
A5, B5, C5, D5, E5, F5, \
|
||||
A6, B6, C6, D6, E6, F6, \
|
||||
A7, B7, C7, D7, E7, F7, \
|
||||
A8, B8, C8, D8, E8, F8, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
# ===== Start of generated config =====
|
||||
MAP_SIREN_TEMPLATE = ['CL']
|
||||
MOVABLE_ENEMY_TURN = (2,)
|
||||
MAP_HAS_SIREN = True
|
||||
MAP_HAS_MOVABLE_ENEMY = True
|
||||
MAP_HAS_MAP_STORY = True
|
||||
MAP_HAS_FLEET_STEP = True
|
||||
MAP_HAS_AMBUSH = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_siren():
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_4(self):
|
||||
return self.clear_boss()
|
69
campaign/war_archives_20210819_cn/a3.py
Normal file
69
campaign/war_archives_20210819_cn/a3.py
Normal file
@ -0,0 +1,69 @@
|
||||
from ..campaign_war_archives.campaign_base import CampaignBase
|
||||
from module.logger import logger
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import RoadGrids, SelectedGrids
|
||||
|
||||
from .a1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('A3')
|
||||
MAP.shape = 'G7'
|
||||
MAP.camera_data = ['D2', 'D5']
|
||||
MAP.camera_data_spawn_point = ['D5']
|
||||
MAP.map_data = """
|
||||
++ ++ ME Me ME ++ --
|
||||
++ MS -- ME -- MS ++
|
||||
ME -- -- __ -- -- ME
|
||||
Me -- SP MB SP -- Me
|
||||
ME -- -- MB -- -- ME
|
||||
-- MS -- MB ++ ++ ++
|
||||
++ -- ME -- ME -- --
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'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, \
|
||||
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()
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
# ===== Start of generated config =====
|
||||
MAP_SIREN_TEMPLATE = ['CA']
|
||||
MOVABLE_ENEMY_TURN = (2,)
|
||||
MAP_HAS_SIREN = True
|
||||
MAP_HAS_MOVABLE_ENEMY = True
|
||||
MAP_HAS_MAP_STORY = True
|
||||
MAP_HAS_FLEET_STEP = True
|
||||
MAP_HAS_AMBUSH = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_siren():
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_4(self):
|
||||
return self.clear_boss()
|
86
campaign/war_archives_20210819_cn/b1.py
Normal file
86
campaign/war_archives_20210819_cn/b1.py
Normal file
@ -0,0 +1,86 @@
|
||||
from ..campaign_war_archives.campaign_base import CampaignBase
|
||||
from module.logger import logger
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import RoadGrids, SelectedGrids
|
||||
|
||||
MAP = CampaignMap('B1')
|
||||
MAP.shape = 'H7'
|
||||
MAP.camera_data = ['D2', 'D5', 'E2', 'E5']
|
||||
MAP.camera_data_spawn_point = ['E2']
|
||||
MAP.map_data = """
|
||||
-- Me -- ME ++ ++ SP SP
|
||||
Me -- MS -- ME -- -- SP
|
||||
++ ME -- -- -- -- -- --
|
||||
++ ME -- -- MS -- ME ++
|
||||
Me -- __ ME ++ -- -- --
|
||||
MB -- -- MS ++ -- ME ME
|
||||
MB MB Me -- ME -- ME --
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2, 'siren': 1},
|
||||
{'battle': 1, 'enemy': 1},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 2, 'boss': 1},
|
||||
{'battle': 5, 'enemy': 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()
|
||||
|
||||
|
||||
class Config:
|
||||
# ===== Start of generated config =====
|
||||
MAP_SIREN_TEMPLATE = ['SS', 'CL']
|
||||
MOVABLE_ENEMY_TURN = (2,)
|
||||
MAP_HAS_SIREN = True
|
||||
MAP_HAS_MOVABLE_ENEMY = True
|
||||
MAP_HAS_MAP_STORY = True
|
||||
MAP_HAS_FLEET_STEP = True
|
||||
MAP_HAS_AMBUSH = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
DETECTION_BACKEND = 'perspective'
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 40
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 5
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (50, 255 - 80),
|
||||
'width': (0, 7),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 80, 255),
|
||||
'prominence': 10,
|
||||
'distance': 50,
|
||||
# 'width': (0, 7),
|
||||
'wlen': 1000
|
||||
}
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_siren():
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_4(self):
|
||||
return self.clear_boss()
|
76
campaign/war_archives_20210819_cn/b2.py
Normal file
76
campaign/war_archives_20210819_cn/b2.py
Normal file
@ -0,0 +1,76 @@
|
||||
from ..campaign_war_archives.campaign_base import CampaignBase
|
||||
from module.logger import logger
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import RoadGrids, SelectedGrids
|
||||
|
||||
from .b1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('B2')
|
||||
MAP.shape = 'F9'
|
||||
MAP.camera_data = ['C2', 'C6', 'C7']
|
||||
MAP.camera_data_spawn_point = ['C2']
|
||||
MAP.map_data = """
|
||||
Me ME MS MS ME Me
|
||||
ME -- -- -- -- ME
|
||||
++ ++ -- -- ++ ++
|
||||
++ ++ SP SP Me ++
|
||||
MS -- -- -- -- MS
|
||||
ME -- MB MB __ ME
|
||||
-- ME ++ ++ -- ME
|
||||
-- Me ++ Me -- ME
|
||||
-- -- ME -- -- Me
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2, 'siren': 1},
|
||||
{'battle': 1, 'enemy': 1},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 2},
|
||||
{'battle': 5, 'enemy': 1, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, \
|
||||
A2, B2, C2, D2, E2, F2, \
|
||||
A3, B3, C3, D3, E3, F3, \
|
||||
A4, B4, C4, D4, E4, F4, \
|
||||
A5, B5, C5, D5, E5, F5, \
|
||||
A6, B6, C6, D6, E6, F6, \
|
||||
A7, B7, C7, D7, E7, F7, \
|
||||
A8, B8, C8, D8, E8, F8, \
|
||||
A9, B9, C9, D9, E9, F9, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
# ===== Start of generated config =====
|
||||
MAP_SIREN_TEMPLATE = ['SS', 'CL']
|
||||
MOVABLE_ENEMY_TURN = (2,)
|
||||
MAP_HAS_SIREN = True
|
||||
MAP_HAS_MOVABLE_ENEMY = True
|
||||
MAP_HAS_MAP_STORY = True
|
||||
MAP_HAS_FLEET_STEP = True
|
||||
MAP_HAS_AMBUSH = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_siren():
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_5(self):
|
||||
return self.fleet_boss.clear_boss()
|
76
campaign/war_archives_20210819_cn/b3.py
Normal file
76
campaign/war_archives_20210819_cn/b3.py
Normal file
@ -0,0 +1,76 @@
|
||||
from ..campaign_war_archives.campaign_base import CampaignBase
|
||||
from module.logger import logger
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import RoadGrids, SelectedGrids
|
||||
|
||||
from .b1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('B3')
|
||||
MAP.shape = 'G9'
|
||||
MAP.camera_data = ['D2', 'D6', 'D7']
|
||||
MAP.camera_data_spawn_point = ['D6']
|
||||
MAP.map_data = """
|
||||
ME -- ME -- ME -- ME
|
||||
++ -- -- Me -- -- ++
|
||||
++ -- ++ ++ ++ -- ++
|
||||
MS -- MB MB MB -- MS
|
||||
Me ME -- __ -- ME Me
|
||||
++ ++ SP -- SP ++ ++
|
||||
++ ME -- -- -- ME ++
|
||||
Me -- -- ME -- -- Me
|
||||
-- MS ME -- ME MS --
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2, 'siren': 2},
|
||||
{'battle': 1, 'enemy': 1},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 2},
|
||||
{'battle': 5, '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, \
|
||||
A8, B8, C8, D8, E8, F8, G8, \
|
||||
A9, B9, C9, D9, E9, F9, G9, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
# ===== Start of generated config =====
|
||||
MAP_SIREN_TEMPLATE = ['SS', 'CA']
|
||||
MOVABLE_ENEMY_TURN = (2,)
|
||||
MAP_HAS_SIREN = True
|
||||
MAP_HAS_MOVABLE_ENEMY = True
|
||||
MAP_HAS_MAP_STORY = True
|
||||
MAP_HAS_FLEET_STEP = True
|
||||
MAP_HAS_AMBUSH = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_siren():
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_5(self):
|
||||
return self.fleet_boss.clear_boss()
|
89
campaign/war_archives_20210819_cn/c1.py
Normal file
89
campaign/war_archives_20210819_cn/c1.py
Normal file
@ -0,0 +1,89 @@
|
||||
from ..campaign_war_archives.campaign_base import CampaignBase
|
||||
from module.logger import logger
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import RoadGrids, SelectedGrids
|
||||
|
||||
MAP = CampaignMap('C1')
|
||||
MAP.shape = 'F7'
|
||||
MAP.camera_data = ['C2', 'C5']
|
||||
MAP.camera_data_spawn_point = ['C5', 'C2']
|
||||
MAP.map_data = """
|
||||
-- -- ME -- -- ++
|
||||
ME ++ ++ ME -- ME
|
||||
-- ++ MS -- SP --
|
||||
MB MB __ -- -- ME
|
||||
ME MB MS -- SP --
|
||||
-- ++ ME ME -- --
|
||||
Me ++ Me Me ++ Me
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2, 'siren': 2},
|
||||
{'battle': 1, 'enemy': 1},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, \
|
||||
A2, B2, C2, D2, E2, F2, \
|
||||
A3, B3, C3, D3, E3, F3, \
|
||||
A4, B4, C4, D4, E4, F4, \
|
||||
A5, B5, C5, D5, E5, F5, \
|
||||
A6, B6, C6, D6, E6, F6, \
|
||||
A7, B7, C7, D7, E7, F7, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config:
|
||||
# ===== Start of generated config =====
|
||||
MAP_SIREN_TEMPLATE = ['CL', 'CA']
|
||||
MOVABLE_ENEMY_TURN = (2,)
|
||||
MAP_HAS_SIREN = True
|
||||
MAP_HAS_MOVABLE_ENEMY = True
|
||||
MAP_HAS_MAP_STORY = True
|
||||
MAP_HAS_FLEET_STEP = True
|
||||
MAP_HAS_AMBUSH = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
DETECTION_BACKEND = 'perspective'
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 40
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 5
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (100, 255 - 60),
|
||||
'width': (0, 7),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 60, 255),
|
||||
'prominence': 2,
|
||||
'distance': 50,
|
||||
# 'width': (0, 7),
|
||||
'wlen': 1000
|
||||
}
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_siren():
|
||||
return True
|
||||
if self.clear_enemy(scale=(2,)):
|
||||
return True
|
||||
if self.clear_enemy(scale=(3,)):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_4(self):
|
||||
return self.clear_boss()
|
78
campaign/war_archives_20210819_cn/c2.py
Normal file
78
campaign/war_archives_20210819_cn/c2.py
Normal file
@ -0,0 +1,78 @@
|
||||
from ..campaign_war_archives.campaign_base import CampaignBase
|
||||
from module.logger import logger
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import RoadGrids, SelectedGrids
|
||||
|
||||
from .c1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('C2')
|
||||
MAP.shape = 'F8'
|
||||
MAP.camera_data = ['C2', 'C6']
|
||||
MAP.camera_data_spawn_point = ['C2']
|
||||
MAP.map_data = """
|
||||
-- ME -- ME Me ME
|
||||
-- ME -- -- MS --
|
||||
++ ++ ++ ME -- --
|
||||
SP -- -- -- -- SP
|
||||
ME -- -- -- ++ ++
|
||||
-- MS ME __ ++ ++
|
||||
Me -- ++ -- -- MB
|
||||
-- Me -- ME MB MB
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2, 'siren': 2},
|
||||
{'battle': 1, 'enemy': 1},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, \
|
||||
A2, B2, C2, D2, E2, F2, \
|
||||
A3, B3, C3, D3, E3, F3, \
|
||||
A4, B4, C4, D4, E4, F4, \
|
||||
A5, B5, C5, D5, E5, F5, \
|
||||
A6, B6, C6, D6, E6, F6, \
|
||||
A7, B7, C7, D7, E7, F7, \
|
||||
A8, B8, C8, D8, E8, F8, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
# ===== Start of generated config =====
|
||||
MAP_SIREN_TEMPLATE = ['CL', 'CA']
|
||||
MOVABLE_ENEMY_TURN = (2,)
|
||||
MAP_HAS_SIREN = True
|
||||
MAP_HAS_MOVABLE_ENEMY = True
|
||||
MAP_HAS_MAP_STORY = True
|
||||
MAP_HAS_FLEET_STEP = True
|
||||
MAP_HAS_AMBUSH = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_siren():
|
||||
return True
|
||||
if self.clear_enemy(scale=(1,)):
|
||||
return True
|
||||
if self.clear_enemy(scale=(2,), genre=['light', 'main', 'enemy', 'carrier']):
|
||||
return True
|
||||
if self.clear_enemy(genre=['light', 'main']):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_4(self):
|
||||
return self.clear_boss()
|
74
campaign/war_archives_20210819_cn/c3.py
Normal file
74
campaign/war_archives_20210819_cn/c3.py
Normal file
@ -0,0 +1,74 @@
|
||||
from ..campaign_war_archives.campaign_base import CampaignBase
|
||||
from module.logger import logger
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import RoadGrids, SelectedGrids
|
||||
|
||||
from .c1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('C3')
|
||||
MAP.shape = 'G7'
|
||||
MAP.camera_data = ['D2', 'D5']
|
||||
MAP.camera_data_spawn_point = ['D5']
|
||||
MAP.map_data = """
|
||||
++ ++ ME Me ME ++ --
|
||||
++ MS -- ME -- MS ++
|
||||
ME -- -- __ -- -- ME
|
||||
Me -- SP MB SP -- Me
|
||||
ME -- -- MB -- -- ME
|
||||
-- MS -- MB ++ ++ ++
|
||||
++ -- ME -- ME -- --
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2, 'siren': 2},
|
||||
{'battle': 1, 'enemy': 1},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 1},
|
||||
{'battle': 5, '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()
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
# ===== Start of generated config =====
|
||||
MAP_SIREN_TEMPLATE = ['CLpurple', 'CApurple', 'BBpurple']
|
||||
MOVABLE_ENEMY_TURN = (2,)
|
||||
MAP_HAS_SIREN = True
|
||||
MAP_HAS_MOVABLE_ENEMY = True
|
||||
MAP_HAS_MAP_STORY = True
|
||||
MAP_HAS_FLEET_STEP = True
|
||||
MAP_HAS_AMBUSH = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_siren():
|
||||
return True
|
||||
if self.clear_enemy(scale=(2,)):
|
||||
return True
|
||||
if self.clear_enemy(scale=(3,)):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_5(self):
|
||||
return self.fleet_boss.clear_boss()
|
90
campaign/war_archives_20210819_cn/d1.py
Normal file
90
campaign/war_archives_20210819_cn/d1.py
Normal file
@ -0,0 +1,90 @@
|
||||
from ..campaign_war_archives.campaign_base import CampaignBase
|
||||
from module.logger import logger
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import RoadGrids, SelectedGrids
|
||||
|
||||
MAP = CampaignMap('D1')
|
||||
MAP.shape = 'H7'
|
||||
MAP.camera_data = ['D2', 'D5', 'E2', 'E5']
|
||||
MAP.camera_data_spawn_point = ['E2']
|
||||
MAP.map_data = """
|
||||
-- Me -- ME ++ ++ SP SP
|
||||
Me -- MS -- ME -- -- SP
|
||||
++ ME -- -- -- -- -- --
|
||||
++ ME -- -- MS -- ME ++
|
||||
Me -- __ ME ++ -- -- --
|
||||
MB -- -- MS ++ -- ME ME
|
||||
MB MB Me -- ME -- ME --
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2, 'siren': 2},
|
||||
{'battle': 1, 'enemy': 1},
|
||||
{'battle': 2, 'enemy': 2},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 2},
|
||||
{'battle': 5, '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, \
|
||||
A7, B7, C7, D7, E7, F7, G7, H7, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config:
|
||||
# ===== Start of generated config =====
|
||||
MAP_SIREN_TEMPLATE = ['SS', 'CA', 'BB']
|
||||
MOVABLE_ENEMY_TURN = (2,)
|
||||
MAP_HAS_SIREN = True
|
||||
MAP_HAS_MOVABLE_ENEMY = True
|
||||
MAP_HAS_MAP_STORY = True
|
||||
MAP_HAS_FLEET_STEP = True
|
||||
MAP_HAS_AMBUSH = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
DETECTION_BACKEND = 'perspective'
|
||||
INTERNAL_LINES_HOUGHLINES_THRESHOLD = 40
|
||||
EDGE_LINES_HOUGHLINES_THRESHOLD = 40
|
||||
COINCIDENT_POINT_ENCOURAGE_DISTANCE = 5
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (100, 255 - 60),
|
||||
'width': (0, 7),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (255 - 60, 255),
|
||||
'prominence': 2,
|
||||
'distance': 50,
|
||||
# 'width': (0, 7),
|
||||
'wlen': 1000
|
||||
}
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_siren():
|
||||
return True
|
||||
if self.clear_enemy(scale=(2,)):
|
||||
return True
|
||||
if self.clear_enemy(scale=(3,)):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_5(self):
|
||||
return self.fleet_boss.clear_boss()
|
91
campaign/war_archives_20210819_cn/d2.py
Normal file
91
campaign/war_archives_20210819_cn/d2.py
Normal file
@ -0,0 +1,91 @@
|
||||
from ..campaign_war_archives.campaign_base import CampaignBase
|
||||
from module.logger import logger
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import RoadGrids, SelectedGrids
|
||||
|
||||
from .d1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('D2')
|
||||
MAP.shape = 'F9'
|
||||
MAP.camera_data = ['C2', 'C6', 'C7']
|
||||
MAP.camera_data_spawn_point = ['C2']
|
||||
MAP.map_data = """
|
||||
Me ME MS MS ME Me
|
||||
ME -- -- -- -- ME
|
||||
++ ++ -- -- ++ ++
|
||||
++ ++ SP SP Me ++
|
||||
MS -- -- -- -- MS
|
||||
ME -- MB MB __ ME
|
||||
-- ME ++ ++ -- ME
|
||||
-- Me ++ Me -- ME
|
||||
-- -- ME -- -- Me
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
50 50 50 50 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2, 'siren': 2},
|
||||
{'battle': 1, 'enemy': 1},
|
||||
{'battle': 2, 'enemy': 2, 'siren': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 2},
|
||||
{'battle': 5, 'enemy': 1},
|
||||
{'battle': 6, 'boss': 1},
|
||||
]
|
||||
A1, B1, C1, D1, E1, F1, \
|
||||
A2, B2, C2, D2, E2, F2, \
|
||||
A3, B3, C3, D3, E3, F3, \
|
||||
A4, B4, C4, D4, E4, F4, \
|
||||
A5, B5, C5, D5, E5, F5, \
|
||||
A6, B6, C6, D6, E6, F6, \
|
||||
A7, B7, C7, D7, E7, F7, \
|
||||
A8, B8, C8, D8, E8, F8, \
|
||||
A9, B9, C9, D9, E9, F9, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
# ===== Start of generated config =====
|
||||
MAP_SIREN_TEMPLATE = ['SS', 'BB', 'CV']
|
||||
MOVABLE_ENEMY_TURN = (2,)
|
||||
MAP_HAS_SIREN = True
|
||||
MAP_HAS_MOVABLE_ENEMY = True
|
||||
MAP_HAS_MAP_STORY = True
|
||||
MAP_HAS_FLEET_STEP = True
|
||||
MAP_HAS_AMBUSH = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_siren():
|
||||
return True
|
||||
if self.clear_enemy(scale=(2,)):
|
||||
return True
|
||||
if self.clear_enemy(scale=(3,)):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_5(self):
|
||||
if self.clear_siren():
|
||||
return True
|
||||
if self.clear_enemy(scale=(1,)):
|
||||
return True
|
||||
if self.clear_enemy(scale=(2,)):
|
||||
return True
|
||||
if self.clear_enemy(scale=(3,)):
|
||||
return True
|
||||
|
||||
def battle_6(self):
|
||||
return self.fleet_boss.clear_boss()
|
91
campaign/war_archives_20210819_cn/d3.py
Normal file
91
campaign/war_archives_20210819_cn/d3.py
Normal file
@ -0,0 +1,91 @@
|
||||
from ..campaign_war_archives.campaign_base import CampaignBase
|
||||
from module.logger import logger
|
||||
from module.map.map_base import CampaignMap
|
||||
from module.map.map_grids import RoadGrids, SelectedGrids
|
||||
|
||||
from .d1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('D3')
|
||||
MAP.shape = 'G9'
|
||||
MAP.camera_data = ['D2', 'D6', 'D7']
|
||||
MAP.camera_data_spawn_point = ['D6']
|
||||
MAP.map_data = """
|
||||
ME -- ME -- ME -- ME
|
||||
++ -- -- Me -- -- ++
|
||||
++ -- ++ ++ ++ -- ++
|
||||
MS -- MB MB MB -- MS
|
||||
Me ME -- __ -- ME Me
|
||||
++ ++ SP -- SP ++ ++
|
||||
++ ME -- -- -- ME ++
|
||||
Me -- -- ME -- -- Me
|
||||
-- MS ME -- ME MS --
|
||||
"""
|
||||
MAP.weight_data = """
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
50 50 50 50 50 50 50
|
||||
"""
|
||||
MAP.spawn_data = [
|
||||
{'battle': 0, 'enemy': 2, 'siren': 2},
|
||||
{'battle': 1, 'enemy': 1},
|
||||
{'battle': 2, 'enemy': 2, 'siren': 1},
|
||||
{'battle': 3, 'enemy': 1},
|
||||
{'battle': 4, 'enemy': 2},
|
||||
{'battle': 5, 'enemy': 1},
|
||||
{'battle': 6, '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, \
|
||||
A8, B8, C8, D8, E8, F8, G8, \
|
||||
A9, B9, C9, D9, E9, F9, G9, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
# ===== Start of generated config =====
|
||||
MAP_SIREN_TEMPLATE = ['SS', 'BBpurple', 'CVpurple']
|
||||
MOVABLE_ENEMY_TURN = (2,)
|
||||
MAP_HAS_SIREN = True
|
||||
MAP_HAS_MOVABLE_ENEMY = True
|
||||
MAP_HAS_MAP_STORY = True
|
||||
MAP_HAS_FLEET_STEP = True
|
||||
MAP_HAS_AMBUSH = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
|
||||
class Campaign(CampaignBase):
|
||||
MAP = MAP
|
||||
|
||||
def battle_0(self):
|
||||
if self.clear_siren():
|
||||
return True
|
||||
if self.clear_enemy(scale=(2,)):
|
||||
return True
|
||||
if self.clear_enemy(scale=(3,)):
|
||||
return True
|
||||
|
||||
return self.battle_default()
|
||||
|
||||
def battle_5(self):
|
||||
if self.clear_siren():
|
||||
return True
|
||||
if self.clear_enemy(scale=(1,)):
|
||||
return True
|
||||
if self.clear_enemy(scale=(2,)):
|
||||
return True
|
||||
if self.clear_enemy(scale=(3,)):
|
||||
return True
|
||||
|
||||
def battle_6(self):
|
||||
return self.fleet_boss.clear_boss()
|
@ -7048,6 +7048,8 @@
|
||||
"type": "select",
|
||||
"value": "campaign_main",
|
||||
"option": [
|
||||
"war_archives_20210819_cn",
|
||||
"war_archives_20200903_cn",
|
||||
"war_archives_20201029_cn",
|
||||
"war_archives_20200806_cn",
|
||||
"war_archives_20210624_cn",
|
||||
@ -7066,7 +7068,7 @@
|
||||
"war_archives_20191031_en",
|
||||
"war_archives_20181020_en"
|
||||
],
|
||||
"cn": "war_archives_20201029_cn",
|
||||
"cn": "war_archives_20210819_cn",
|
||||
"en": "war_archives_20201029_cn",
|
||||
"jp": "war_archives_20201029_cn",
|
||||
"tw": "war_archives_20181227_cn"
|
||||
|
@ -647,6 +647,8 @@
|
||||
"event_20200423_cn": "Crimson Echoes Rerun",
|
||||
"event_20200326_cn": "Microlayer Medley",
|
||||
"event_20200227_cn": "Northern Overture",
|
||||
"war_archives_20210819_cn": "archives Microlayer Medley",
|
||||
"war_archives_20200903_cn": "archives Stars of the Shimmering Fjord",
|
||||
"war_archives_20201029_cn": "archives Universe in Unison",
|
||||
"war_archives_20200806_cn": "archives The Enigma and the Shark",
|
||||
"war_archives_20210624_cn": "archives Swirling Cherry Blossoms",
|
||||
|
@ -647,6 +647,8 @@
|
||||
"event_20200423_cn": "縹映る深緋の残響(復刻)",
|
||||
"event_20200326_cn": "闇靄払う銀翼",
|
||||
"event_20200227_cn": "凍絶の北海",
|
||||
"war_archives_20210819_cn": "檔案 闇靄払う銀翼",
|
||||
"war_archives_20200903_cn": "檔案 輝ける峡湾の星",
|
||||
"war_archives_20201029_cn": "檔案 激唱のユニバース",
|
||||
"war_archives_20200806_cn": "檔案 鉄血鮫とエニグマ",
|
||||
"war_archives_20210624_cn": "檔案 翳りし満ちる影の華",
|
||||
|
@ -647,6 +647,8 @@
|
||||
"event_20200423_cn": "复刻苍红的回响",
|
||||
"event_20200326_cn": "微层混合",
|
||||
"event_20200227_cn": "北境序曲",
|
||||
"war_archives_20210819_cn": "档案 微层混合",
|
||||
"war_archives_20200903_cn": "档案 峡湾间的星辰",
|
||||
"war_archives_20201029_cn": "档案 激唱的UNIVERSE",
|
||||
"war_archives_20200806_cn": "档案 最重要的宝物",
|
||||
"war_archives_20210624_cn": "档案 浮樱影华",
|
||||
|
@ -647,6 +647,8 @@
|
||||
"event_20200423_cn": "Crimson Echoes Rerun",
|
||||
"event_20200326_cn": "Microlayer Medley",
|
||||
"event_20200227_cn": "Northern Overture",
|
||||
"war_archives_20210819_cn": "archives Microlayer Medley",
|
||||
"war_archives_20200903_cn": "archives Stars of the Shimmering Fjord",
|
||||
"war_archives_20201029_cn": "archives Universe in Unison",
|
||||
"war_archives_20200806_cn": "archives The Enigma and the Shark",
|
||||
"war_archives_20210624_cn": "archives Swirling Cherry Blossoms",
|
||||
|
@ -15,7 +15,9 @@ TEMPLATE_FALLEN_WINGS = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_
|
||||
TEMPLATE_GLORIOUS_BATTLE = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_GLORIOUS_BATTLE.png', 'en': './assets/en/war_archives/TEMPLATE_GLORIOUS_BATTLE.png', 'jp': './assets/jp/war_archives/TEMPLATE_GLORIOUS_BATTLE.png', 'tw': './assets/tw/war_archives/TEMPLATE_GLORIOUS_BATTLE.png'})
|
||||
TEMPLATE_INK_STAINED_STEEL_SAKURA = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_INK_STAINED_STEEL_SAKURA.png', 'en': './assets/en/war_archives/TEMPLATE_INK_STAINED_STEEL_SAKURA.png', 'jp': './assets/jp/war_archives/TEMPLATE_INK_STAINED_STEEL_SAKURA.png', 'tw': './assets/cn/war_archives/TEMPLATE_INK_STAINED_STEEL_SAKURA.png'})
|
||||
TEMPLATE_IRIS_OF_LIGHT_AND_DARK = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_IRIS_OF_LIGHT_AND_DARK.png', 'en': './assets/en/war_archives/TEMPLATE_IRIS_OF_LIGHT_AND_DARK.png', 'jp': './assets/jp/war_archives/TEMPLATE_IRIS_OF_LIGHT_AND_DARK.png', 'tw': './assets/cn/war_archives/TEMPLATE_IRIS_OF_LIGHT_AND_DARK.png'})
|
||||
TEMPLATE_MICROLAYER_MEDLEY = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_MICROLAYER_MEDLEY.png', 'en': './assets/cn/war_archives/TEMPLATE_MICROLAYER_MEDLEY.png', 'jp': './assets/cn/war_archives/TEMPLATE_MICROLAYER_MEDLEY.png', 'tw': './assets/cn/war_archives/TEMPLATE_MICROLAYER_MEDLEY.png'})
|
||||
TEMPLATE_SCHERZO_OF_IRON_AND_BLOOD = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_SCHERZO_OF_IRON_AND_BLOOD.png', 'en': './assets/en/war_archives/TEMPLATE_SCHERZO_OF_IRON_AND_BLOOD.png', 'jp': './assets/cn/war_archives/TEMPLATE_SCHERZO_OF_IRON_AND_BLOOD.png', 'tw': './assets/cn/war_archives/TEMPLATE_SCHERZO_OF_IRON_AND_BLOOD.png'})
|
||||
TEMPLATE_STARS_OF_THE_SHIMMERING_FJORD = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_STARS_OF_THE_SHIMMERING_FJORD.png', 'en': './assets/cn/war_archives/TEMPLATE_STARS_OF_THE_SHIMMERING_FJORD.png', 'jp': './assets/cn/war_archives/TEMPLATE_STARS_OF_THE_SHIMMERING_FJORD.png', 'tw': './assets/cn/war_archives/TEMPLATE_STARS_OF_THE_SHIMMERING_FJORD.png'})
|
||||
TEMPLATE_STRIVE_WISH_AND_STRATEGIZE = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_STRIVE_WISH_AND_STRATEGIZE.png', 'en': './assets/en/war_archives/TEMPLATE_STRIVE_WISH_AND_STRATEGIZE.png', 'jp': './assets/jp/war_archives/TEMPLATE_STRIVE_WISH_AND_STRATEGIZE.png', 'tw': './assets/tw/war_archives/TEMPLATE_STRIVE_WISH_AND_STRATEGIZE.png'})
|
||||
TEMPLATE_SWIRLING_CHERRY_BLOSSOMS = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_SWIRLING_CHERRY_BLOSSOMS.png', 'en': './assets/en/war_archives/TEMPLATE_SWIRLING_CHERRY_BLOSSOMS.png', 'jp': './assets/cn/war_archives/TEMPLATE_SWIRLING_CHERRY_BLOSSOMS.png', 'tw': './assets/cn/war_archives/TEMPLATE_SWIRLING_CHERRY_BLOSSOMS.png'})
|
||||
TEMPLATE_THE_ENIGMA_AND_THE_SHARK = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_THE_ENIGMA_AND_THE_SHARK.png', 'en': './assets/cn/war_archives/TEMPLATE_THE_ENIGMA_AND_THE_SHARK.png', 'jp': './assets/cn/war_archives/TEMPLATE_THE_ENIGMA_AND_THE_SHARK.png', 'tw': './assets/cn/war_archives/TEMPLATE_THE_ENIGMA_AND_THE_SHARK.png'})
|
||||
|
@ -18,4 +18,6 @@ dic_archives_template = {
|
||||
'war_archives_20210624_cn': TEMPLATE_SWIRLING_CHERRY_BLOSSOMS,
|
||||
'war_archives_20200806_cn': TEMPLATE_THE_ENIGMA_AND_THE_SHARK,
|
||||
'war_archives_20201029_cn': TEMPLATE_UNIVERSE_IN_UNISON,
|
||||
'war_archives_20200903_cn': TEMPLATE_STARS_OF_THE_SHIMMERING_FJORD,
|
||||
'war_archives_20210819_cn': TEMPLATE_MICROLAYER_MEDLEY,
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user