mirror of
https://gitee.com/sui-feng-cb/AzurLaneAutoScript1
synced 2026-03-23 20:15:57 +08:00
Add: war_archives_20221222_cn
This commit is contained in:
BIN
assets/cn/war_archives/TEMPLATE_PARALLEL_SUPERIMPOSITION.png
Normal file
BIN
assets/cn/war_archives/TEMPLATE_PARALLEL_SUPERIMPOSITION.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.2 KiB |
@@ -56,6 +56,7 @@ To add a new event, add a new row in here, and run `python -m module.config.conf
|
|||||||
| 20250717 | war archives 20220428 cn | Rondo at Rainbow's End | 虹彩的终幕曲 | Rondo at Rainbow's End | 吟ずる瑠璃の楽章 | 虹彩的終幕曲 |
|
| 20250717 | war archives 20220428 cn | Rondo at Rainbow's End | 虹彩的终幕曲 | Rondo at Rainbow's End | 吟ずる瑠璃の楽章 | 虹彩的終幕曲 |
|
||||||
| 20251016 | war archives 20231026 cn | Tempesta and the Fountain of Youth | 飓风与青春之泉 | Tempesta and the Fountain of Youth | テンペスタと若返りの泉 | 飓風與青春之泉 |
|
| 20251016 | war archives 20231026 cn | Tempesta and the Fountain of Youth | 飓风与青春之泉 | Tempesta and the Fountain of Youth | テンペスタと若返りの泉 | 飓風與青春之泉 |
|
||||||
| 20251106 | war archives 20220915 cn | Violet Tempest Blooming Lycoris | 紫绛槿岚 | Violet Tempest Blooming Lycoris | 赫の涙月 菫の暁風 | 紫絳槿嵐 |
|
| 20251106 | war archives 20220915 cn | Violet Tempest Blooming Lycoris | 紫绛槿岚 | Violet Tempest Blooming Lycoris | 赫の涙月 菫の暁風 | 紫絳槿嵐 |
|
||||||
|
| 20251218 | war archives 20221222 cn | Parallel Superimposition | 定向折叠 | Parallel Superimposition | 積重なる事象の幻界 | 定向折疊 |
|
||||||
| 20200227 | event 20200227 cn | Northern Overture | 北境序曲 | Northern Overture | 凍絶の北海 | - |
|
| 20200227 | event 20200227 cn | Northern Overture | 北境序曲 | Northern Overture | 凍絶の北海 | - |
|
||||||
| 20200312 | event 20200312 cn | The Solomon Ranger | 复刻斯图尔特的硝烟 | The Solomon Ranger Rerun | 南洋に靡く硝煙(復刻) | - |
|
| 20200312 | event 20200312 cn | The Solomon Ranger | 复刻斯图尔特的硝烟 | The Solomon Ranger Rerun | 南洋に靡く硝煙(復刻) | - |
|
||||||
| 20200326 | event 20200326 cn | Microlayer Medley | 微层混合 | Microlayer Medley | 闇靄払う銀翼 | - |
|
| 20200326 | event 20200326 cn | Microlayer Medley | 微层混合 | Microlayer Medley | 闇靄払う銀翼 | - |
|
||||||
|
|||||||
95
campaign/war_archives_20221222_cn/a1.py
Normal file
95
campaign/war_archives_20221222_cn/a1.py
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
from .campaign_base import CampaignBase
|
||||||
|
from module.map.map_base import CampaignMap
|
||||||
|
from module.map.map_grids import SelectedGrids, RoadGrids
|
||||||
|
from module.logger import logger
|
||||||
|
|
||||||
|
MAP = CampaignMap('A1')
|
||||||
|
MAP.shape = 'H8'
|
||||||
|
MAP.camera_data = ['D2', 'E3', 'E6']
|
||||||
|
MAP.camera_data_spawn_point = ['D6']
|
||||||
|
MAP.map_data = """
|
||||||
|
-- -- ME -- -- -- ++ ++
|
||||||
|
-- ME -- ME -- Me ++ ++
|
||||||
|
-- -- ++ -- ++ -- MB --
|
||||||
|
ME -- ++ MS -- Me -- --
|
||||||
|
-- ME -- -- __ -- -- ME
|
||||||
|
-- -- -- -- -- MS ++ --
|
||||||
|
SP -- -- Me ME -- -- ME
|
||||||
|
-- SP ++ ++ ++ ME -- --
|
||||||
|
"""
|
||||||
|
MAP.weight_data = """
|
||||||
|
50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50
|
||||||
|
"""
|
||||||
|
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, 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, \
|
||||||
|
A8, B8, C8, D8, E8, F8, G8, H8, \
|
||||||
|
= MAP.flatten()
|
||||||
|
|
||||||
|
|
||||||
|
class Config:
|
||||||
|
# ===== Start of generated config =====
|
||||||
|
MAP_SIREN_TEMPLATE = []
|
||||||
|
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
|
||||||
|
MAP_HAS_MYSTERY = False
|
||||||
|
# ===== End of generated config =====
|
||||||
|
|
||||||
|
MAP_SIREN_HAS_BOSS_ICON_SMALL = True
|
||||||
|
MAP_ENEMY_TEMPLATE = ['Light20221222', 'Main20221222', 'Carrier20221222']
|
||||||
|
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||||
|
'height': (80, 255 - 33),
|
||||||
|
'width': (1.5, 10),
|
||||||
|
'prominence': 10,
|
||||||
|
'distance': 35,
|
||||||
|
}
|
||||||
|
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||||
|
'height': (255 - 33, 255),
|
||||||
|
'prominence': 10,
|
||||||
|
'distance': 50,
|
||||||
|
'wlen': 1000
|
||||||
|
}
|
||||||
|
HOMO_EDGE_COLOR_RANGE = (0, 33)
|
||||||
|
HOMO_EDGE_HOUGHLINES_THRESHOLD = 300
|
||||||
|
MAP_ENSURE_EDGE_INSIGHT_CORNER = 'bottom'
|
||||||
|
MAP_SWIPE_MULTIPLY = (1.040, 1.060)
|
||||||
|
MAP_SWIPE_MULTIPLY_MINITOUCH = (1.006, 1.025)
|
||||||
|
MAP_SWIPE_MULTIPLY_MAATOUCH = (0.977, 0.994)
|
||||||
|
|
||||||
|
|
||||||
|
class Campaign(CampaignBase):
|
||||||
|
MAP = MAP
|
||||||
|
ENEMY_FILTER = '1L > 1M > 2L > 2M > 3L > 3M > 1E > 2E > 3E > 1C > 2C > 3C'
|
||||||
|
|
||||||
|
def battle_0(self):
|
||||||
|
if self.clear_siren():
|
||||||
|
return True
|
||||||
|
if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0):
|
||||||
|
return True
|
||||||
|
|
||||||
|
return self.battle_default()
|
||||||
|
|
||||||
|
def battle_3(self):
|
||||||
|
return self.clear_boss()
|
||||||
76
campaign/war_archives_20221222_cn/a2.py
Normal file
76
campaign/war_archives_20221222_cn/a2.py
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
from .campaign_base import CampaignBase
|
||||||
|
from module.map.map_base import CampaignMap
|
||||||
|
from module.map.map_grids import SelectedGrids, RoadGrids
|
||||||
|
from module.logger import logger
|
||||||
|
from .a1 import Config as ConfigBase
|
||||||
|
|
||||||
|
MAP = CampaignMap('A2')
|
||||||
|
MAP.shape = 'I7'
|
||||||
|
MAP.camera_data = ['D2', 'D5', 'F2', 'F5']
|
||||||
|
MAP.camera_data_spawn_point = ['D5']
|
||||||
|
MAP.map_data = """
|
||||||
|
ME -- -- ME ++ Me -- ++ ++
|
||||||
|
-- -- Me -- MS -- -- -- Me
|
||||||
|
-- ++ -- -- -- __ MS -- --
|
||||||
|
SP -- -- ++ ME ++ ++ MB --
|
||||||
|
SP -- ME -- MS ++ ++ MB Me
|
||||||
|
-- ME -- -- ME -- ME -- --
|
||||||
|
++ ++ ++ ME -- -- ME -- --
|
||||||
|
"""
|
||||||
|
MAP.weight_data = """
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
"""
|
||||||
|
MAP.spawn_data = [
|
||||||
|
{'battle': 0, 'enemy': 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()
|
||||||
|
|
||||||
|
|
||||||
|
class Config(ConfigBase):
|
||||||
|
# ===== Start of generated config =====
|
||||||
|
MAP_SIREN_TEMPLATE = []
|
||||||
|
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
|
||||||
|
MAP_HAS_MYSTERY = False
|
||||||
|
# ===== End of generated config =====
|
||||||
|
|
||||||
|
MAP_SWIPE_MULTIPLY = (1.074, 1.095)
|
||||||
|
MAP_SWIPE_MULTIPLY_MINITOUCH = (1.039, 1.058)
|
||||||
|
MAP_SWIPE_MULTIPLY_MAATOUCH = (1.009, 1.027)
|
||||||
|
|
||||||
|
|
||||||
|
class Campaign(CampaignBase):
|
||||||
|
MAP = MAP
|
||||||
|
ENEMY_FILTER = '1L > 1M > 2L > 2M > 3L > 3M > 1E > 2E > 3E > 1C > 2C > 3C'
|
||||||
|
|
||||||
|
def battle_0(self):
|
||||||
|
if self.clear_siren():
|
||||||
|
return True
|
||||||
|
if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0):
|
||||||
|
return True
|
||||||
|
|
||||||
|
return self.battle_default()
|
||||||
|
|
||||||
|
def battle_4(self):
|
||||||
|
return self.clear_boss()
|
||||||
79
campaign/war_archives_20221222_cn/a3.py
Normal file
79
campaign/war_archives_20221222_cn/a3.py
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
from .campaign_base import CampaignBase
|
||||||
|
from module.map.map_base import CampaignMap
|
||||||
|
from module.map.map_grids import SelectedGrids, RoadGrids
|
||||||
|
from module.logger import logger
|
||||||
|
from .a1 import Config as ConfigBase
|
||||||
|
|
||||||
|
MAP = CampaignMap('A3')
|
||||||
|
MAP.shape = 'I8'
|
||||||
|
MAP.camera_data = ['D2', 'D6', 'F2', 'F6']
|
||||||
|
MAP.camera_data_spawn_point = ['F2']
|
||||||
|
MAP.map_data = """
|
||||||
|
++ ++ ++ -- -- ME -- SP --
|
||||||
|
-- Me -- MS ME -- -- -- SP
|
||||||
|
-- ME -- ++ -- -- -- -- --
|
||||||
|
ME -- ME -- -- ME ME Me --
|
||||||
|
Me -- MS -- ++ -- ++ ++ ME
|
||||||
|
++ -- __ -- -- MS ++ ++ --
|
||||||
|
-- -- -- ++ Me -- -- ME --
|
||||||
|
MB MB -- ++ -- ME ++ ++ ++
|
||||||
|
"""
|
||||||
|
MAP.weight_data = """
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 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, 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, \
|
||||||
|
A8, B8, C8, D8, E8, F8, G8, H8, I8, \
|
||||||
|
= MAP.flatten()
|
||||||
|
|
||||||
|
|
||||||
|
class Config(ConfigBase):
|
||||||
|
# ===== Start of generated config =====
|
||||||
|
MAP_SIREN_TEMPLATE = []
|
||||||
|
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
|
||||||
|
MAP_HAS_MYSTERY = False
|
||||||
|
# ===== End of generated config =====
|
||||||
|
|
||||||
|
MAP_SWIPE_MULTIPLY = (1.095, 1.116)
|
||||||
|
MAP_SWIPE_MULTIPLY_MINITOUCH = (1.059, 1.079)
|
||||||
|
MAP_SWIPE_MULTIPLY_MAATOUCH = (1.028, 1.047)
|
||||||
|
|
||||||
|
|
||||||
|
class Campaign(CampaignBase):
|
||||||
|
MAP = MAP
|
||||||
|
ENEMY_FILTER = '1L > 1M > 2L > 2M > 3L > 3M > 1E > 2E > 3E > 1C > 2C > 3C'
|
||||||
|
|
||||||
|
def battle_0(self):
|
||||||
|
if self.clear_siren():
|
||||||
|
return True
|
||||||
|
if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0):
|
||||||
|
return True
|
||||||
|
|
||||||
|
return self.battle_default()
|
||||||
|
|
||||||
|
def battle_4(self):
|
||||||
|
return self.clear_boss()
|
||||||
96
campaign/war_archives_20221222_cn/b1.py
Normal file
96
campaign/war_archives_20221222_cn/b1.py
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
from .campaign_base import CampaignBase
|
||||||
|
from module.map.map_base import CampaignMap
|
||||||
|
from module.map.map_grids import SelectedGrids, RoadGrids
|
||||||
|
from module.logger import logger
|
||||||
|
|
||||||
|
MAP = CampaignMap('B1')
|
||||||
|
MAP.shape = 'I8'
|
||||||
|
MAP.camera_data = ['D2', 'D6', 'F2', 'F6']
|
||||||
|
MAP.camera_data_spawn_point = ['D6']
|
||||||
|
MAP.map_data = """
|
||||||
|
-- ME ++ -- Me -- Me ++ ++
|
||||||
|
ME -- -- -- -- ME -- MB ++
|
||||||
|
-- -- MS -- -- -- __ -- Me
|
||||||
|
Me -- ME ++ MS Me -- -- Me
|
||||||
|
-- -- -- ++ ++ ++ -- ME --
|
||||||
|
-- -- -- ME -- ME MS -- --
|
||||||
|
SP -- -- -- MS -- ME -- ME
|
||||||
|
++ SP -- ME ++ ++ ++ ME --
|
||||||
|
"""
|
||||||
|
MAP.weight_data = """
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 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, 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, \
|
||||||
|
A8, B8, C8, D8, E8, F8, G8, H8, I8, \
|
||||||
|
= MAP.flatten()
|
||||||
|
|
||||||
|
|
||||||
|
class Config:
|
||||||
|
# ===== Start of generated config =====
|
||||||
|
MAP_SIREN_TEMPLATE = []
|
||||||
|
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
|
||||||
|
MAP_HAS_MYSTERY = False
|
||||||
|
# ===== End of generated config =====
|
||||||
|
|
||||||
|
MAP_SIREN_HAS_BOSS_ICON_SMALL = True
|
||||||
|
MAP_ENEMY_TEMPLATE = ['Light20221222', 'Main20221222', 'Carrier20221222']
|
||||||
|
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||||
|
'height': (80, 255 - 33),
|
||||||
|
'width': (1.5, 10),
|
||||||
|
'prominence': 10,
|
||||||
|
'distance': 35,
|
||||||
|
}
|
||||||
|
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||||
|
'height': (255 - 33, 255),
|
||||||
|
'prominence': 10,
|
||||||
|
'distance': 50,
|
||||||
|
'wlen': 1000
|
||||||
|
}
|
||||||
|
HOMO_EDGE_COLOR_RANGE = (0, 33)
|
||||||
|
HOMO_EDGE_HOUGHLINES_THRESHOLD = 300
|
||||||
|
MAP_ENSURE_EDGE_INSIGHT_CORNER = 'bottom'
|
||||||
|
MAP_SWIPE_MULTIPLY = (1.028, 1.047)
|
||||||
|
MAP_SWIPE_MULTIPLY_MINITOUCH = (0.994, 1.013)
|
||||||
|
MAP_SWIPE_MULTIPLY_MAATOUCH = (0.965, 0.983)
|
||||||
|
|
||||||
|
|
||||||
|
class Campaign(CampaignBase):
|
||||||
|
MAP = MAP
|
||||||
|
ENEMY_FILTER = '1L > 1M > 2L > 2M > 3L > 3M > 1E > 2E > 3E > 1C > 2C > 3C'
|
||||||
|
|
||||||
|
def battle_0(self):
|
||||||
|
if self.clear_siren():
|
||||||
|
return True
|
||||||
|
if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0):
|
||||||
|
return True
|
||||||
|
|
||||||
|
return self.battle_default()
|
||||||
|
|
||||||
|
def battle_4(self):
|
||||||
|
return self.clear_boss()
|
||||||
84
campaign/war_archives_20221222_cn/b2.py
Normal file
84
campaign/war_archives_20221222_cn/b2.py
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
from .campaign_base import CampaignBase
|
||||||
|
from module.map.map_base import CampaignMap
|
||||||
|
from module.map.map_grids import SelectedGrids, RoadGrids
|
||||||
|
from module.logger import logger
|
||||||
|
from .b1 import Config as ConfigBase
|
||||||
|
|
||||||
|
MAP = CampaignMap('B2')
|
||||||
|
MAP.shape = 'I9'
|
||||||
|
MAP.camera_data = ['D2', 'D5', 'D7', 'F2', 'F5', 'F7']
|
||||||
|
MAP.camera_data_spawn_point = ['F2']
|
||||||
|
MAP.map_data = """
|
||||||
|
ME -- -- ME -- ++ ++ -- --
|
||||||
|
-- Me ME -- -- SP SP -- --
|
||||||
|
-- -- ++ ++ ME -- -- -- ME
|
||||||
|
ME -- ++ ++ ME -- -- MS ++
|
||||||
|
ME -- -- MS -- -- ME ME --
|
||||||
|
-- Me -- __ -- MS ++ -- ME
|
||||||
|
++ -- -- -- ME -- -- MS ++
|
||||||
|
-- MB 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 50 50 50 50 50
|
||||||
|
50 50 50 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, 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, \
|
||||||
|
A8, B8, C8, D8, E8, F8, G8, H8, I8, \
|
||||||
|
A9, B9, C9, D9, E9, F9, G9, H9, I9, \
|
||||||
|
= MAP.flatten()
|
||||||
|
|
||||||
|
|
||||||
|
class Config(ConfigBase):
|
||||||
|
# ===== Start of generated config =====
|
||||||
|
MAP_SIREN_TEMPLATE = []
|
||||||
|
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
|
||||||
|
MAP_HAS_MYSTERY = False
|
||||||
|
# ===== End of generated config =====
|
||||||
|
|
||||||
|
MAP_ENSURE_EDGE_INSIGHT_CORNER = ''
|
||||||
|
MAP_SWIPE_MULTIPLY = (1.056, 1.076)
|
||||||
|
MAP_SWIPE_MULTIPLY_MINITOUCH = (1.021, 1.040)
|
||||||
|
MAP_SWIPE_MULTIPLY_MAATOUCH = (0.992, 1.009)
|
||||||
|
|
||||||
|
|
||||||
|
class Campaign(CampaignBase):
|
||||||
|
MAP = MAP
|
||||||
|
ENEMY_FILTER = '1L > 1M > 2L > 2M > 3L > 3M > 1E > 2E > 3E > 1C > 2C > 3C'
|
||||||
|
|
||||||
|
def battle_0(self):
|
||||||
|
if self.clear_siren():
|
||||||
|
return True
|
||||||
|
if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0):
|
||||||
|
return True
|
||||||
|
|
||||||
|
return self.battle_default()
|
||||||
|
|
||||||
|
def battle_5(self):
|
||||||
|
return self.fleet_boss.clear_boss()
|
||||||
87
campaign/war_archives_20221222_cn/b3.py
Normal file
87
campaign/war_archives_20221222_cn/b3.py
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
from .campaign_base import CampaignBase
|
||||||
|
from module.map.map_base import CampaignMap
|
||||||
|
from module.map.map_grids import SelectedGrids, RoadGrids
|
||||||
|
from module.logger import logger
|
||||||
|
from .b1 import Config as ConfigBase
|
||||||
|
|
||||||
|
MAP = CampaignMap('B3')
|
||||||
|
MAP.shape = 'I9'
|
||||||
|
MAP.camera_data = ['D3', 'F3', 'F5', 'F7']
|
||||||
|
MAP.camera_data_spawn_point = ['D7']
|
||||||
|
MAP.map_data = """
|
||||||
|
-- ++ ++ ME -- ME -- ++ ++
|
||||||
|
++ ME -- -- -- -- -- MB ++
|
||||||
|
-- -- -- Me -- ME __ -- --
|
||||||
|
ME -- Me -- MS ++ ME -- ME
|
||||||
|
-- -- ++ MS -- MS -- -- --
|
||||||
|
++ -- -- -- MS -- Me -- ME
|
||||||
|
++ SP -- -- ++ Me -- -- --
|
||||||
|
++ -- SP -- -- -- -- ME ++
|
||||||
|
-- ++ ++ ++ -- ME ++ ++ --
|
||||||
|
"""
|
||||||
|
MAP.weight_data = """
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 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, 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, \
|
||||||
|
A8, B8, C8, D8, E8, F8, G8, H8, I8, \
|
||||||
|
A9, B9, C9, D9, E9, F9, G9, H9, I9, \
|
||||||
|
= MAP.flatten()
|
||||||
|
MAP.ignore_prediction(C5, is_siren=True)
|
||||||
|
MAP.ignore_prediction(E7, is_siren=True)
|
||||||
|
MAP.ignore_prediction(G4, is_siren=True)
|
||||||
|
|
||||||
|
|
||||||
|
class Config(ConfigBase):
|
||||||
|
# ===== Start of generated config =====
|
||||||
|
MAP_SIREN_TEMPLATE = ['SirenBoss15', 'SirenBoss16']
|
||||||
|
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
|
||||||
|
MAP_HAS_MYSTERY = False
|
||||||
|
# ===== End of generated config =====
|
||||||
|
|
||||||
|
MAP_SIREN_HAS_BOSS_ICON_SMALL = False
|
||||||
|
MAP_SWIPE_MULTIPLY = (0.997, 1.015)
|
||||||
|
MAP_SWIPE_MULTIPLY_MINITOUCH = (0.964, 0.982)
|
||||||
|
MAP_SWIPE_MULTIPLY_MAATOUCH = (0.936, 0.953)
|
||||||
|
|
||||||
|
|
||||||
|
class Campaign(CampaignBase):
|
||||||
|
MAP = MAP
|
||||||
|
ENEMY_FILTER = '1L > 1M > 2L > 2M > 3L > 3M > 1E > 2E > 3E > 1C > 2C > 3C'
|
||||||
|
|
||||||
|
def battle_0(self):
|
||||||
|
if self.clear_siren():
|
||||||
|
return True
|
||||||
|
if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0):
|
||||||
|
return True
|
||||||
|
|
||||||
|
return self.battle_default()
|
||||||
|
|
||||||
|
def battle_5(self):
|
||||||
|
return self.fleet_boss.clear_boss()
|
||||||
94
campaign/war_archives_20221222_cn/c1.py
Normal file
94
campaign/war_archives_20221222_cn/c1.py
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
from ..campaign_war_archives.campaign_base import CampaignBase
|
||||||
|
from module.map.map_base import CampaignMap
|
||||||
|
from module.map.map_grids import SelectedGrids, RoadGrids
|
||||||
|
from module.logger import logger
|
||||||
|
|
||||||
|
MAP = CampaignMap('C1')
|
||||||
|
MAP.shape = 'H8'
|
||||||
|
MAP.camera_data = ['D2', 'E3', 'E6']
|
||||||
|
MAP.camera_data_spawn_point = ['D6']
|
||||||
|
MAP.map_data = """
|
||||||
|
-- -- ME -- -- -- ++ ++
|
||||||
|
-- ME -- ME -- Me ++ ++
|
||||||
|
-- -- ++ -- ++ -- MB --
|
||||||
|
ME -- ++ MS -- Me -- --
|
||||||
|
-- ME -- -- __ -- -- ME
|
||||||
|
-- -- -- -- -- MS ++ --
|
||||||
|
SP -- -- Me ME -- -- ME
|
||||||
|
-- SP ++ ++ ++ ME -- --
|
||||||
|
"""
|
||||||
|
MAP.weight_data = """
|
||||||
|
50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50
|
||||||
|
"""
|
||||||
|
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, 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, \
|
||||||
|
A8, B8, C8, D8, E8, F8, G8, H8, \
|
||||||
|
= MAP.flatten()
|
||||||
|
|
||||||
|
|
||||||
|
class Config:
|
||||||
|
# ===== Start of generated config =====
|
||||||
|
MAP_SIREN_TEMPLATE = []
|
||||||
|
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
|
||||||
|
MAP_HAS_MYSTERY = False
|
||||||
|
# ===== End of generated config =====
|
||||||
|
|
||||||
|
MAP_SIREN_HAS_BOSS_ICON_SMALL = True
|
||||||
|
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||||
|
'height': (80, 255 - 24),
|
||||||
|
'width': (1.5, 10),
|
||||||
|
'prominence': 10,
|
||||||
|
'distance': 35,
|
||||||
|
}
|
||||||
|
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||||
|
'height': (255 - 24, 255),
|
||||||
|
'prominence': 10,
|
||||||
|
'distance': 50,
|
||||||
|
'wlen': 1000
|
||||||
|
}
|
||||||
|
HOMO_EDGE_COLOR_RANGE = (0, 24)
|
||||||
|
HOMO_EDGE_HOUGHLINES_THRESHOLD = 300
|
||||||
|
MAP_ENSURE_EDGE_INSIGHT_CORNER = 'bottom'
|
||||||
|
MAP_SWIPE_MULTIPLY = (1.040, 1.060)
|
||||||
|
MAP_SWIPE_MULTIPLY_MINITOUCH = (1.006, 1.025)
|
||||||
|
MAP_SWIPE_MULTIPLY_MAATOUCH = (0.977, 0.994)
|
||||||
|
|
||||||
|
|
||||||
|
class Campaign(CampaignBase):
|
||||||
|
MAP = MAP
|
||||||
|
ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C'
|
||||||
|
|
||||||
|
def battle_0(self):
|
||||||
|
if self.clear_siren():
|
||||||
|
return True
|
||||||
|
if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0):
|
||||||
|
return True
|
||||||
|
|
||||||
|
return self.battle_default()
|
||||||
|
|
||||||
|
def battle_4(self):
|
||||||
|
return self.clear_boss()
|
||||||
76
campaign/war_archives_20221222_cn/c2.py
Normal file
76
campaign/war_archives_20221222_cn/c2.py
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
from ..campaign_war_archives.campaign_base import CampaignBase
|
||||||
|
from module.map.map_base import CampaignMap
|
||||||
|
from module.map.map_grids import SelectedGrids, RoadGrids
|
||||||
|
from module.logger import logger
|
||||||
|
from .c1 import Config as ConfigBase
|
||||||
|
|
||||||
|
MAP = CampaignMap('C2')
|
||||||
|
MAP.shape = 'I7'
|
||||||
|
MAP.camera_data = ['D2', 'D5', 'F2', 'F5']
|
||||||
|
MAP.camera_data_spawn_point = ['D5']
|
||||||
|
MAP.map_data = """
|
||||||
|
ME -- -- ME ++ Me -- ++ ++
|
||||||
|
-- -- Me -- MS -- -- -- Me
|
||||||
|
-- ++ -- -- -- __ MS -- --
|
||||||
|
SP -- -- ++ ME ++ ++ MB --
|
||||||
|
SP -- ME -- MS ++ ++ MB Me
|
||||||
|
-- ME -- -- ME -- ME -- --
|
||||||
|
++ ++ ++ ME -- -- ME -- --
|
||||||
|
"""
|
||||||
|
MAP.weight_data = """
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
"""
|
||||||
|
MAP.spawn_data = [
|
||||||
|
{'battle': 0, 'enemy': 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, G1, H1, I1, \
|
||||||
|
A2, B2, C2, D2, E2, F2, G2, H2, I2, \
|
||||||
|
A3, B3, C3, D3, E3, F3, G3, H3, I3, \
|
||||||
|
A4, B4, C4, D4, E4, F4, G4, H4, I4, \
|
||||||
|
A5, B5, C5, D5, E5, F5, G5, H5, I5, \
|
||||||
|
A6, B6, C6, D6, E6, F6, G6, H6, I6, \
|
||||||
|
A7, B7, C7, D7, E7, F7, G7, H7, I7, \
|
||||||
|
= MAP.flatten()
|
||||||
|
|
||||||
|
|
||||||
|
class Config(ConfigBase):
|
||||||
|
# ===== Start of generated config =====
|
||||||
|
MAP_SIREN_TEMPLATE = []
|
||||||
|
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
|
||||||
|
MAP_HAS_MYSTERY = False
|
||||||
|
# ===== End of generated config =====
|
||||||
|
|
||||||
|
MAP_SWIPE_MULTIPLY = (1.074, 1.095)
|
||||||
|
MAP_SWIPE_MULTIPLY_MINITOUCH = (1.039, 1.058)
|
||||||
|
MAP_SWIPE_MULTIPLY_MAATOUCH = (1.009, 1.027)
|
||||||
|
|
||||||
|
|
||||||
|
class Campaign(CampaignBase):
|
||||||
|
MAP = MAP
|
||||||
|
ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C'
|
||||||
|
|
||||||
|
def battle_0(self):
|
||||||
|
if self.clear_siren():
|
||||||
|
return True
|
||||||
|
if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0):
|
||||||
|
return True
|
||||||
|
|
||||||
|
return self.battle_default()
|
||||||
|
|
||||||
|
def battle_4(self):
|
||||||
|
return self.clear_boss()
|
||||||
80
campaign/war_archives_20221222_cn/c3.py
Normal file
80
campaign/war_archives_20221222_cn/c3.py
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
from ..campaign_war_archives.campaign_base import CampaignBase
|
||||||
|
from module.map.map_base import CampaignMap
|
||||||
|
from module.map.map_grids import SelectedGrids, RoadGrids
|
||||||
|
from module.logger import logger
|
||||||
|
from .c1 import Config as ConfigBase
|
||||||
|
|
||||||
|
MAP = CampaignMap('C3')
|
||||||
|
MAP.shape = 'I8'
|
||||||
|
MAP.camera_data = ['D2', 'D6', 'F2', 'F6']
|
||||||
|
MAP.camera_data_spawn_point = ['F2']
|
||||||
|
MAP.map_data = """
|
||||||
|
++ ++ ++ -- -- ME -- SP --
|
||||||
|
-- Me -- MS ME -- -- -- SP
|
||||||
|
-- ME -- ++ -- -- -- -- --
|
||||||
|
ME -- ME -- -- ME ME Me --
|
||||||
|
Me -- MS -- ++ -- ++ ++ ME
|
||||||
|
++ -- __ -- -- MS ++ ++ --
|
||||||
|
-- -- -- ++ Me -- -- ME --
|
||||||
|
MB MB -- ++ -- ME ++ ++ ++
|
||||||
|
"""
|
||||||
|
MAP.weight_data = """
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 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, 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, \
|
||||||
|
A8, B8, C8, D8, E8, F8, G8, H8, I8, \
|
||||||
|
= MAP.flatten()
|
||||||
|
|
||||||
|
|
||||||
|
class Config(ConfigBase):
|
||||||
|
# ===== Start of generated config =====
|
||||||
|
MAP_SIREN_TEMPLATE = []
|
||||||
|
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
|
||||||
|
MAP_HAS_MYSTERY = False
|
||||||
|
# ===== End of generated config =====
|
||||||
|
|
||||||
|
MAP_SWIPE_MULTIPLY = (1.095, 1.116)
|
||||||
|
MAP_SWIPE_MULTIPLY_MINITOUCH = (1.059, 1.079)
|
||||||
|
MAP_SWIPE_MULTIPLY_MAATOUCH = (1.028, 1.047)
|
||||||
|
|
||||||
|
|
||||||
|
class Campaign(CampaignBase):
|
||||||
|
MAP = MAP
|
||||||
|
ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C'
|
||||||
|
|
||||||
|
def battle_0(self):
|
||||||
|
if self.clear_siren():
|
||||||
|
return True
|
||||||
|
if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0):
|
||||||
|
return True
|
||||||
|
|
||||||
|
return self.battle_default()
|
||||||
|
|
||||||
|
def battle_5(self):
|
||||||
|
return self.fleet_boss.clear_boss()
|
||||||
14
campaign/war_archives_20221222_cn/campaign_base.py
Normal file
14
campaign/war_archives_20221222_cn/campaign_base.py
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
from ..campaign_war_archives.campaign_base import CampaignBase as CampaignBase_
|
||||||
|
from module.ui.page import page_event
|
||||||
|
|
||||||
|
|
||||||
|
class CampaignBase(CampaignBase_):
|
||||||
|
def handle_exp_info(self):
|
||||||
|
# Random background of hits EXP_INFO_B
|
||||||
|
if self.ui_page_appear(page_event):
|
||||||
|
return False
|
||||||
|
return super().handle_exp_info()
|
||||||
|
|
||||||
|
def map_data_init(self, map_):
|
||||||
|
super().map_data_init(map_)
|
||||||
|
self.config.override(EnemyPriority_EnemyScaleBalanceWeight='default_mode')
|
||||||
95
campaign/war_archives_20221222_cn/d1.py
Normal file
95
campaign/war_archives_20221222_cn/d1.py
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
from ..campaign_war_archives.campaign_base import CampaignBase
|
||||||
|
from module.map.map_base import CampaignMap
|
||||||
|
from module.map.map_grids import SelectedGrids, RoadGrids
|
||||||
|
from module.logger import logger
|
||||||
|
|
||||||
|
MAP = CampaignMap('D1')
|
||||||
|
MAP.shape = 'I8'
|
||||||
|
MAP.camera_data = ['D2', 'D6', 'F2', 'F6']
|
||||||
|
MAP.camera_data_spawn_point = ['D6']
|
||||||
|
MAP.map_data = """
|
||||||
|
-- ME ++ -- Me -- Me ++ ++
|
||||||
|
ME -- -- -- -- ME -- MB ++
|
||||||
|
-- -- MS -- -- -- __ -- Me
|
||||||
|
Me -- ME ++ MS Me -- -- Me
|
||||||
|
-- -- -- ++ ++ ++ -- ME --
|
||||||
|
-- -- -- ME -- ME MS -- --
|
||||||
|
SP -- -- -- MS -- ME -- ME
|
||||||
|
++ SP -- ME ++ ++ ++ ME --
|
||||||
|
"""
|
||||||
|
MAP.weight_data = """
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 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, 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, \
|
||||||
|
A8, B8, C8, D8, E8, F8, G8, H8, I8, \
|
||||||
|
= MAP.flatten()
|
||||||
|
|
||||||
|
|
||||||
|
class Config:
|
||||||
|
# ===== Start of generated config =====
|
||||||
|
MAP_SIREN_TEMPLATE = []
|
||||||
|
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
|
||||||
|
MAP_HAS_MYSTERY = False
|
||||||
|
# ===== End of generated config =====
|
||||||
|
|
||||||
|
MAP_SIREN_HAS_BOSS_ICON_SMALL = True
|
||||||
|
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||||
|
'height': (80, 255 - 24),
|
||||||
|
'width': (1.5, 10),
|
||||||
|
'prominence': 10,
|
||||||
|
'distance': 35,
|
||||||
|
}
|
||||||
|
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||||
|
'height': (255 - 24, 255),
|
||||||
|
'prominence': 10,
|
||||||
|
'distance': 50,
|
||||||
|
'wlen': 1000
|
||||||
|
}
|
||||||
|
HOMO_EDGE_COLOR_RANGE = (0, 24)
|
||||||
|
HOMO_EDGE_HOUGHLINES_THRESHOLD = 300
|
||||||
|
MAP_ENSURE_EDGE_INSIGHT_CORNER = 'bottom'
|
||||||
|
MAP_SWIPE_MULTIPLY = (1.028, 1.047)
|
||||||
|
MAP_SWIPE_MULTIPLY_MINITOUCH = (0.994, 1.013)
|
||||||
|
MAP_SWIPE_MULTIPLY_MAATOUCH = (0.965, 0.983)
|
||||||
|
|
||||||
|
|
||||||
|
class Campaign(CampaignBase):
|
||||||
|
MAP = MAP
|
||||||
|
ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C'
|
||||||
|
|
||||||
|
def battle_0(self):
|
||||||
|
if self.clear_siren():
|
||||||
|
return True
|
||||||
|
if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0):
|
||||||
|
return True
|
||||||
|
|
||||||
|
return self.battle_default()
|
||||||
|
|
||||||
|
def battle_5(self):
|
||||||
|
return self.fleet_boss.clear_boss()
|
||||||
93
campaign/war_archives_20221222_cn/d2.py
Normal file
93
campaign/war_archives_20221222_cn/d2.py
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
from ..campaign_war_archives.campaign_base import CampaignBase
|
||||||
|
from module.map.map_base import CampaignMap
|
||||||
|
from module.map.map_grids import SelectedGrids, RoadGrids
|
||||||
|
from module.logger import logger
|
||||||
|
from .d1 import Config as ConfigBase
|
||||||
|
|
||||||
|
MAP = CampaignMap('D2')
|
||||||
|
MAP.shape = 'I9'
|
||||||
|
MAP.camera_data = ['D2', 'D5', 'D7', 'F2', 'F5', 'F7']
|
||||||
|
MAP.camera_data_spawn_point = ['F2']
|
||||||
|
MAP.map_data = """
|
||||||
|
ME -- -- ME -- ++ ++ -- --
|
||||||
|
-- Me ME -- -- SP SP -- --
|
||||||
|
-- -- ++ ++ ME -- -- -- ME
|
||||||
|
ME -- ++ ++ ME -- -- MS ++
|
||||||
|
ME -- -- MS -- -- ME ME --
|
||||||
|
-- Me -- __ -- MS ++ -- ME
|
||||||
|
++ -- -- -- ME -- -- MS ++
|
||||||
|
-- MB 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 50 50 50 50 50
|
||||||
|
50 50 50 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, 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, \
|
||||||
|
A8, B8, C8, D8, E8, F8, G8, H8, I8, \
|
||||||
|
A9, B9, C9, D9, E9, F9, G9, H9, I9, \
|
||||||
|
= MAP.flatten()
|
||||||
|
|
||||||
|
|
||||||
|
class Config(ConfigBase):
|
||||||
|
# ===== Start of generated config =====
|
||||||
|
MAP_SIREN_TEMPLATE = []
|
||||||
|
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
|
||||||
|
MAP_HAS_MYSTERY = False
|
||||||
|
# ===== End of generated config =====
|
||||||
|
|
||||||
|
MAP_ENSURE_EDGE_INSIGHT_CORNER = ''
|
||||||
|
MAP_SWIPE_MULTIPLY = (1.056, 1.076)
|
||||||
|
MAP_SWIPE_MULTIPLY_MINITOUCH = (1.021, 1.040)
|
||||||
|
MAP_SWIPE_MULTIPLY_MAATOUCH = (0.992, 1.009)
|
||||||
|
|
||||||
|
|
||||||
|
class Campaign(CampaignBase):
|
||||||
|
MAP = MAP
|
||||||
|
ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C'
|
||||||
|
|
||||||
|
def battle_0(self):
|
||||||
|
if self.clear_siren():
|
||||||
|
return True
|
||||||
|
if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=1):
|
||||||
|
return True
|
||||||
|
|
||||||
|
return self.battle_default()
|
||||||
|
|
||||||
|
def battle_5(self):
|
||||||
|
if self.clear_siren():
|
||||||
|
return True
|
||||||
|
if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0):
|
||||||
|
return True
|
||||||
|
|
||||||
|
return self.battle_default()
|
||||||
|
|
||||||
|
def battle_6(self):
|
||||||
|
return self.fleet_boss.clear_boss()
|
||||||
96
campaign/war_archives_20221222_cn/d3.py
Normal file
96
campaign/war_archives_20221222_cn/d3.py
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
from ..campaign_war_archives.campaign_base import CampaignBase
|
||||||
|
from module.map.map_base import CampaignMap
|
||||||
|
from module.map.map_grids import SelectedGrids, RoadGrids
|
||||||
|
from module.logger import logger
|
||||||
|
from .d1 import Config as ConfigBase
|
||||||
|
|
||||||
|
MAP = CampaignMap('D3')
|
||||||
|
MAP.shape = 'I9'
|
||||||
|
MAP.camera_data = ['D3', 'F3', 'F5', 'F7']
|
||||||
|
MAP.camera_data_spawn_point = ['D7']
|
||||||
|
MAP.map_data = """
|
||||||
|
-- ++ ++ ME -- ME -- ++ ++
|
||||||
|
++ ME -- -- -- -- -- MB ++
|
||||||
|
-- -- -- Me -- ME __ -- --
|
||||||
|
ME -- Me -- MS ++ ME -- ME
|
||||||
|
-- -- ++ MS -- MS -- -- --
|
||||||
|
++ -- -- -- MS -- Me -- ME
|
||||||
|
++ SP -- -- ++ Me -- -- --
|
||||||
|
++ -- SP -- -- -- -- ME ++
|
||||||
|
-- ++ ++ ++ -- ME ++ ++ --
|
||||||
|
"""
|
||||||
|
MAP.weight_data = """
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 50 50
|
||||||
|
50 50 50 50 50 50 50 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, 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, \
|
||||||
|
A8, B8, C8, D8, E8, F8, G8, H8, I8, \
|
||||||
|
A9, B9, C9, D9, E9, F9, G9, H9, I9, \
|
||||||
|
= MAP.flatten()
|
||||||
|
MAP.ignore_prediction(C5, is_siren=True)
|
||||||
|
MAP.ignore_prediction(E7, is_siren=True)
|
||||||
|
MAP.ignore_prediction(G4, is_siren=True)
|
||||||
|
|
||||||
|
|
||||||
|
class Config(ConfigBase):
|
||||||
|
# ===== Start of generated config =====
|
||||||
|
MAP_SIREN_TEMPLATE = ['SirenBoss15', 'SirenBoss16']
|
||||||
|
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
|
||||||
|
MAP_HAS_MYSTERY = False
|
||||||
|
# ===== End of generated config =====
|
||||||
|
|
||||||
|
MAP_SIREN_HAS_BOSS_ICON_SMALL = False
|
||||||
|
MAP_SWIPE_MULTIPLY = (0.997, 1.015)
|
||||||
|
MAP_SWIPE_MULTIPLY_MINITOUCH = (0.964, 0.982)
|
||||||
|
MAP_SWIPE_MULTIPLY_MAATOUCH = (0.936, 0.953)
|
||||||
|
|
||||||
|
|
||||||
|
class Campaign(CampaignBase):
|
||||||
|
MAP = MAP
|
||||||
|
ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C'
|
||||||
|
|
||||||
|
def battle_0(self):
|
||||||
|
if self.clear_siren():
|
||||||
|
return True
|
||||||
|
if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=1):
|
||||||
|
return True
|
||||||
|
|
||||||
|
return self.battle_default()
|
||||||
|
|
||||||
|
def battle_5(self):
|
||||||
|
if self.clear_siren():
|
||||||
|
return True
|
||||||
|
if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0):
|
||||||
|
return True
|
||||||
|
|
||||||
|
return self.battle_default()
|
||||||
|
|
||||||
|
def battle_6(self):
|
||||||
|
return self.fleet_boss.clear_boss()
|
||||||
@@ -783,7 +783,7 @@
|
|||||||
},
|
},
|
||||||
"Campaign": {
|
"Campaign": {
|
||||||
"Name": "D3",
|
"Name": "D3",
|
||||||
"Event": "war_archives_20220915_cn",
|
"Event": "war_archives_20221222_cn",
|
||||||
"Mode": "normal",
|
"Mode": "normal",
|
||||||
"UseClearMode": true,
|
"UseClearMode": true,
|
||||||
"UseFleetLock": true,
|
"UseFleetLock": true,
|
||||||
|
|||||||
@@ -3935,9 +3935,11 @@
|
|||||||
"war_archives_20220526_cn",
|
"war_archives_20220526_cn",
|
||||||
"war_archives_20220728_cn",
|
"war_archives_20220728_cn",
|
||||||
"war_archives_20220915_cn",
|
"war_archives_20220915_cn",
|
||||||
|
"war_archives_20221222_cn",
|
||||||
"war_archives_20231026_cn"
|
"war_archives_20231026_cn"
|
||||||
],
|
],
|
||||||
"option_cn": [
|
"option_cn": [
|
||||||
|
"war_archives_20221222_cn",
|
||||||
"war_archives_20220915_cn",
|
"war_archives_20220915_cn",
|
||||||
"war_archives_20231026_cn",
|
"war_archives_20231026_cn",
|
||||||
"war_archives_20220428_cn",
|
"war_archives_20220428_cn",
|
||||||
@@ -3982,6 +3984,7 @@
|
|||||||
"war_archives_20181020_en"
|
"war_archives_20181020_en"
|
||||||
],
|
],
|
||||||
"option_en": [
|
"option_en": [
|
||||||
|
"war_archives_20221222_cn",
|
||||||
"war_archives_20220915_cn",
|
"war_archives_20220915_cn",
|
||||||
"war_archives_20231026_cn",
|
"war_archives_20231026_cn",
|
||||||
"war_archives_20220428_cn",
|
"war_archives_20220428_cn",
|
||||||
@@ -4026,6 +4029,7 @@
|
|||||||
"war_archives_20181020_en"
|
"war_archives_20181020_en"
|
||||||
],
|
],
|
||||||
"option_jp": [
|
"option_jp": [
|
||||||
|
"war_archives_20221222_cn",
|
||||||
"war_archives_20220915_cn",
|
"war_archives_20220915_cn",
|
||||||
"war_archives_20231026_cn",
|
"war_archives_20231026_cn",
|
||||||
"war_archives_20220428_cn",
|
"war_archives_20220428_cn",
|
||||||
@@ -4070,6 +4074,7 @@
|
|||||||
"war_archives_20181020_en"
|
"war_archives_20181020_en"
|
||||||
],
|
],
|
||||||
"option_tw": [
|
"option_tw": [
|
||||||
|
"war_archives_20221222_cn",
|
||||||
"war_archives_20220915_cn",
|
"war_archives_20220915_cn",
|
||||||
"war_archives_20231026_cn",
|
"war_archives_20231026_cn",
|
||||||
"war_archives_20220428_cn",
|
"war_archives_20220428_cn",
|
||||||
|
|||||||
@@ -833,6 +833,7 @@
|
|||||||
"war_archives_20220526_cn": "archives Pledge of the Radiant Court",
|
"war_archives_20220526_cn": "archives Pledge of the Radiant Court",
|
||||||
"war_archives_20220728_cn": "archives Aquilifers Ballade",
|
"war_archives_20220728_cn": "archives Aquilifers Ballade",
|
||||||
"war_archives_20220915_cn": "archives Violet Tempest Blooming Lycoris",
|
"war_archives_20220915_cn": "archives Violet Tempest Blooming Lycoris",
|
||||||
|
"war_archives_20221222_cn": "archives Parallel Superimposition",
|
||||||
"war_archives_20231026_cn": "archives Tempesta and the Fountain of Youth"
|
"war_archives_20231026_cn": "archives Tempesta and the Fountain of Youth"
|
||||||
},
|
},
|
||||||
"Mode": {
|
"Mode": {
|
||||||
|
|||||||
@@ -833,6 +833,7 @@
|
|||||||
"war_archives_20220526_cn": "檔案 诚閃の剣 搖光の城",
|
"war_archives_20220526_cn": "檔案 诚閃の剣 搖光の城",
|
||||||
"war_archives_20220728_cn": "檔案 鋼鷲の冒険譚",
|
"war_archives_20220728_cn": "檔案 鋼鷲の冒険譚",
|
||||||
"war_archives_20220915_cn": "檔案 赫の涙月 菫の暁風",
|
"war_archives_20220915_cn": "檔案 赫の涙月 菫の暁風",
|
||||||
|
"war_archives_20221222_cn": "檔案 積重なる事象の幻界",
|
||||||
"war_archives_20231026_cn": "檔案 テンペスタと若返りの泉"
|
"war_archives_20231026_cn": "檔案 テンペスタと若返りの泉"
|
||||||
},
|
},
|
||||||
"Mode": {
|
"Mode": {
|
||||||
|
|||||||
@@ -833,6 +833,7 @@
|
|||||||
"war_archives_20220526_cn": "档案 泠誓光庭",
|
"war_archives_20220526_cn": "档案 泠誓光庭",
|
||||||
"war_archives_20220728_cn": "档案 雄鹰的叙事歌",
|
"war_archives_20220728_cn": "档案 雄鹰的叙事歌",
|
||||||
"war_archives_20220915_cn": "档案 紫绛槿岚",
|
"war_archives_20220915_cn": "档案 紫绛槿岚",
|
||||||
|
"war_archives_20221222_cn": "档案 定向折叠",
|
||||||
"war_archives_20231026_cn": "档案 飓风与青春之泉"
|
"war_archives_20231026_cn": "档案 飓风与青春之泉"
|
||||||
},
|
},
|
||||||
"Mode": {
|
"Mode": {
|
||||||
|
|||||||
@@ -833,6 +833,7 @@
|
|||||||
"war_archives_20220526_cn": "檔案 泠誓光庭",
|
"war_archives_20220526_cn": "檔案 泠誓光庭",
|
||||||
"war_archives_20220728_cn": "檔案 雄鷹的敘事歌",
|
"war_archives_20220728_cn": "檔案 雄鷹的敘事歌",
|
||||||
"war_archives_20220915_cn": "檔案 紫絳槿嵐",
|
"war_archives_20220915_cn": "檔案 紫絳槿嵐",
|
||||||
|
"war_archives_20221222_cn": "檔案 定向折疊",
|
||||||
"war_archives_20231026_cn": "檔案 飓風與青春之泉"
|
"war_archives_20231026_cn": "檔案 飓風與青春之泉"
|
||||||
},
|
},
|
||||||
"Mode": {
|
"Mode": {
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ TEMPLATE_MICROLAYER_MEDLEY = Template(file={'cn': './assets/cn/war_archives/TEMP
|
|||||||
TEMPLATE_MIRROR_INVOLUTION = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_MIRROR_INVOLUTION.png', 'en': './assets/cn/war_archives/TEMPLATE_MIRROR_INVOLUTION.png', 'jp': './assets/cn/war_archives/TEMPLATE_MIRROR_INVOLUTION.png', 'tw': './assets/cn/war_archives/TEMPLATE_MIRROR_INVOLUTION.png'})
|
TEMPLATE_MIRROR_INVOLUTION = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_MIRROR_INVOLUTION.png', 'en': './assets/cn/war_archives/TEMPLATE_MIRROR_INVOLUTION.png', 'jp': './assets/cn/war_archives/TEMPLATE_MIRROR_INVOLUTION.png', 'tw': './assets/cn/war_archives/TEMPLATE_MIRROR_INVOLUTION.png'})
|
||||||
TEMPLATE_MOONLIT_OVERTURE = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_MOONLIT_OVERTURE.png', 'en': './assets/cn/war_archives/TEMPLATE_MOONLIT_OVERTURE.png', 'jp': './assets/cn/war_archives/TEMPLATE_MOONLIT_OVERTURE.png', 'tw': './assets/cn/war_archives/TEMPLATE_MOONLIT_OVERTURE.png'})
|
TEMPLATE_MOONLIT_OVERTURE = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_MOONLIT_OVERTURE.png', 'en': './assets/cn/war_archives/TEMPLATE_MOONLIT_OVERTURE.png', 'jp': './assets/cn/war_archives/TEMPLATE_MOONLIT_OVERTURE.png', 'tw': './assets/cn/war_archives/TEMPLATE_MOONLIT_OVERTURE.png'})
|
||||||
TEMPLATE_NORTHERN_OVERTURE = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_NORTHERN_OVERTURE.png', 'en': './assets/en/war_archives/TEMPLATE_NORTHERN_OVERTURE.png', 'jp': './assets/cn/war_archives/TEMPLATE_NORTHERN_OVERTURE.png', 'tw': './assets/cn/war_archives/TEMPLATE_NORTHERN_OVERTURE.png'})
|
TEMPLATE_NORTHERN_OVERTURE = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_NORTHERN_OVERTURE.png', 'en': './assets/en/war_archives/TEMPLATE_NORTHERN_OVERTURE.png', 'jp': './assets/cn/war_archives/TEMPLATE_NORTHERN_OVERTURE.png', 'tw': './assets/cn/war_archives/TEMPLATE_NORTHERN_OVERTURE.png'})
|
||||||
|
TEMPLATE_PARALLEL_SUPERIMPOSITION = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_PARALLEL_SUPERIMPOSITION.png', 'en': './assets/cn/war_archives/TEMPLATE_PARALLEL_SUPERIMPOSITION.png', 'jp': './assets/cn/war_archives/TEMPLATE_PARALLEL_SUPERIMPOSITION.png', 'tw': './assets/cn/war_archives/TEMPLATE_PARALLEL_SUPERIMPOSITION.png'})
|
||||||
TEMPLATE_PLEDGE_OF_THE_RADIANT_COURT = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_PLEDGE_OF_THE_RADIANT_COURT.png', 'en': './assets/cn/war_archives/TEMPLATE_PLEDGE_OF_THE_RADIANT_COURT.png', 'jp': './assets/cn/war_archives/TEMPLATE_PLEDGE_OF_THE_RADIANT_COURT.png', 'tw': './assets/cn/war_archives/TEMPLATE_PLEDGE_OF_THE_RADIANT_COURT.png'})
|
TEMPLATE_PLEDGE_OF_THE_RADIANT_COURT = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_PLEDGE_OF_THE_RADIANT_COURT.png', 'en': './assets/cn/war_archives/TEMPLATE_PLEDGE_OF_THE_RADIANT_COURT.png', 'jp': './assets/cn/war_archives/TEMPLATE_PLEDGE_OF_THE_RADIANT_COURT.png', 'tw': './assets/cn/war_archives/TEMPLATE_PLEDGE_OF_THE_RADIANT_COURT.png'})
|
||||||
TEMPLATE_PRELUDE_UNDER_THE_MOON = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_PRELUDE_UNDER_THE_MOON.png', 'en': './assets/cn/war_archives/TEMPLATE_PRELUDE_UNDER_THE_MOON.png', 'jp': './assets/cn/war_archives/TEMPLATE_PRELUDE_UNDER_THE_MOON.png', 'tw': './assets/cn/war_archives/TEMPLATE_PRELUDE_UNDER_THE_MOON.png'})
|
TEMPLATE_PRELUDE_UNDER_THE_MOON = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_PRELUDE_UNDER_THE_MOON.png', 'en': './assets/cn/war_archives/TEMPLATE_PRELUDE_UNDER_THE_MOON.png', 'jp': './assets/cn/war_archives/TEMPLATE_PRELUDE_UNDER_THE_MOON.png', 'tw': './assets/cn/war_archives/TEMPLATE_PRELUDE_UNDER_THE_MOON.png'})
|
||||||
TEMPLATE_RONDO_AT_RAINBOWS_END = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_RONDO_AT_RAINBOWS_END.png', 'en': './assets/en/war_archives/TEMPLATE_RONDO_AT_RAINBOWS_END.png', 'jp': './assets/cn/war_archives/TEMPLATE_RONDO_AT_RAINBOWS_END.png', 'tw': './assets/cn/war_archives/TEMPLATE_RONDO_AT_RAINBOWS_END.png'})
|
TEMPLATE_RONDO_AT_RAINBOWS_END = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_RONDO_AT_RAINBOWS_END.png', 'en': './assets/en/war_archives/TEMPLATE_RONDO_AT_RAINBOWS_END.png', 'jp': './assets/cn/war_archives/TEMPLATE_RONDO_AT_RAINBOWS_END.png', 'tw': './assets/cn/war_archives/TEMPLATE_RONDO_AT_RAINBOWS_END.png'})
|
||||||
|
|||||||
@@ -43,4 +43,5 @@ dic_archives_template = {
|
|||||||
'war_archives_20220428_cn': TEMPLATE_RONDO_AT_RAINBOWS_END,
|
'war_archives_20220428_cn': TEMPLATE_RONDO_AT_RAINBOWS_END,
|
||||||
'war_archives_20231026_cn': TEMPLATE_TEMPESTA_AND_THE_FOUNTAIN_OF_YOUTH,
|
'war_archives_20231026_cn': TEMPLATE_TEMPESTA_AND_THE_FOUNTAIN_OF_YOUTH,
|
||||||
'war_archives_20220915_cn': TEMPLATE_VIOLET_TEMPEST_BLOOMING_LYCORIS,
|
'war_archives_20220915_cn': TEMPLATE_VIOLET_TEMPEST_BLOOMING_LYCORIS,
|
||||||
|
'war_archives_20221222_cn': TEMPLATE_PARALLEL_SUPERIMPOSITION,
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user