Add: War Archives The Way Home in the Night

This commit is contained in:
guoh064 2024-03-11 22:57:37 +08:00
parent 4ba1d50ec7
commit b0b54a4b68
12 changed files with 210 additions and 4 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -36,6 +36,7 @@ To add a new event, add a new row in here, and run `python -m module.config.conf
| 20221117 | war archives 20200903 cn | Stars of the Shimmering Fjord | 峡湾间的星辰 | Stars of the Shimmering Fjord | 輝ける峡湾の星 | 峽灣間的星辰 |
| 20221117 | war archives 20210819 cn | Microlayer Medley | 微层混合 | Microlayer Medley | 闇靄払う銀翼 | 微層混合 |
| 20211028 | war archives 20211028 cn | Skybound Oratorio | 穹顶下的圣咏曲 | Skybound Oratorio | 神穹を衝く聖歌 | 穹頂下的聖詠曲 |
| 20230309 | war archives 20200507 cn | The Way Home in the Night | 夜幕下的归途 | The Way Home in the Night | 帰路は海色の陰りへと | 夜幕下的歸途 |
| 20230420 | war archives 20220210 cn | Northern Overture | 北境序曲 | Northern Overture | 凍絶の北海 | 北境序曲 |
| 20230511 | war archives 20220414 cn | Aurora Noctis | 永夜幻光 | Aurora Noctis | 極夜照らす幻光 | 永夜幻光 |
| 20230713 | war archives 20200603 cn | Counterattack Within the Fjord | 峡湾间的反击 | Counterattack Within the Fjord | 峡湾間の反撃 | 峽灣間的反擊 |

View File

@ -0,0 +1,65 @@
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('SP1')
MAP.shape = 'H7'
MAP.camera_data = ['D2', 'D5', 'E2', 'E5']
MAP.camera_data_spawn_point = ['E5', 'D5']
MAP.map_data = """
-- ++ ++ MB MB ++ ++ ++
ME ++ Me -- -- ME Me --
-- -- __ -- ME __ -- --
ME -- ME -- -- -- ME --
-- -- ++ ME -- Me ++ ME
ME -- -- SP 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
"""
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, \
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_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False
MAP_HAS_MYSTERY = False
# ===== End of generated config =====
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_filter_enemy(self.ENEMY_FILTER, preserve=0):
return True
return self.battle_default()
def battle_4(self):
return self.clear_boss()

View File

@ -0,0 +1,63 @@
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 .sp1 import Config as ConfigBase
MAP = CampaignMap('SP2')
MAP.shape = 'K6'
MAP.camera_data = ['D2', 'D4', 'H2', 'H4']
MAP.camera_data_spawn_point = ['D4']
MAP.map_data = """
-- -- ++ ++ -- Me -- ++ ++ ME --
Me ME ++ ++ ME -- ME -- ME -- ME
-- -- MB -- MB -- -- -- -- -- --
++ -- -- MB -- __ Me ++ ++ ME ++
SP -- Me -- ME -- -- ++ ME -- ME
SP SP ++ ++ ++ ME -- -- -- -- ME
"""
MAP.weight_data = """
50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50 50 50 50
"""
MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 2},
{'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, \
= MAP.flatten()
class Config(ConfigBase):
# ===== Start of generated config =====
MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False
MAP_HAS_MYSTERY = False
# ===== End of generated config =====
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_filter_enemy(self.ENEMY_FILTER, preserve=0):
return True
return self.battle_default()
def battle_4(self):
return self.clear_boss()

View File

@ -0,0 +1,70 @@
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 .sp1 import Config as ConfigBase
MAP = CampaignMap('SP3')
MAP.shape = 'H8'
MAP.camera_data = ['D2', 'D6', 'E2', 'E6']
MAP.camera_data_spawn_point = ['D6']
MAP.map_data = """
++ ++ ++ ME ME ++ MB MB
ME -- -- -- -- ME -- MB
-- -- Me Me -- __ -- ++
ME -- ++ ++ -- Me -- ME
-- -- SP SP -- ++ -- ME
ME -- -- -- ME ++ ME --
++ ++ Me -- -- -- -- ME
++ ME Me -- ME ++ ME --
"""
MAP.weight_data = """
50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50
"""
MAP.spawn_data = [
{'battle': 0, 'enemy': 2, 'siren': 2},
{'battle': 1, 'enemy': 2, 'siren': 1},
{'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1},
{'battle': 5, 'boss': 1},
]
A1, B1, C1, D1, E1, F1, G1, H1, \
A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \
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(ConfigBase):
# ===== Start of generated config =====
MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False
MAP_HAS_MYSTERY = False
# ===== End of generated config =====
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_filter_enemy(self.ENEMY_FILTER, preserve=0):
return True
return self.battle_default()
def battle_5(self):
return self.fleet_boss.clear_boss()

View File

@ -2872,8 +2872,8 @@
"raid_20240130"
],
"option_bold": [
"raid_20240130",
"raid_20230118"
"raid_20230118",
"raid_20240130"
],
"cn": "raid_20240130",
"en": "raid_20240130",
@ -3378,6 +3378,7 @@
"war_archives_20191010_en",
"war_archives_20191031_en",
"war_archives_20200312_cn",
"war_archives_20200507_cn",
"war_archives_20200603_cn",
"war_archives_20200806_cn",
"war_archives_20200820_cn",
@ -6111,8 +6112,8 @@
"raid_20240130"
],
"option_bold": [
"raid_20240130",
"raid_20230118"
"raid_20230118",
"raid_20240130"
],
"cn": "raid_20240130",
"en": "raid_20240130",

View File

@ -733,6 +733,7 @@
"war_archives_20191010_en": "archives Encircling Graf Spee",
"war_archives_20191031_en": "archives Divergent Chessboard",
"war_archives_20200312_cn": "archives The Solomon Ranger",
"war_archives_20200507_cn": "archives The Way Home in the Night",
"war_archives_20200603_cn": "archives Counterattack Within the Fjord",
"war_archives_20200806_cn": "archives The Enigma and the Shark",
"war_archives_20200820_cn": "archives Scherzo of Iron and Blood",

View File

@ -733,6 +733,7 @@
"war_archives_20191010_en": "檔案 アドミラル・グラーフ・シュペー追撃戦",
"war_archives_20191031_en": "檔案 鏡写されし異色",
"war_archives_20200312_cn": "檔案 南洋に靡く硝煙",
"war_archives_20200507_cn": "檔案 帰路は海色の陰りへと",
"war_archives_20200603_cn": "檔案 峡湾間の反撃",
"war_archives_20200806_cn": "檔案 鉄血鮫とエニグマ",
"war_archives_20200820_cn": "檔案 黒鉄の楽章 誓いの海",

View File

@ -733,6 +733,7 @@
"war_archives_20191010_en": "档案 围剿斯佩伯爵",
"war_archives_20191031_en": "档案 异色格",
"war_archives_20200312_cn": "档案 斯图尔特的硝烟",
"war_archives_20200507_cn": "档案 夜幕下的归途",
"war_archives_20200603_cn": "档案 峡湾间的反击",
"war_archives_20200806_cn": "档案 最重要的宝物",
"war_archives_20200820_cn": "档案 铁血音符誓言",

View File

@ -733,6 +733,7 @@
"war_archives_20191010_en": "檔案 圍剿斯佩伯爵",
"war_archives_20191031_en": "檔案 異色格",
"war_archives_20200312_cn": "檔案 斯圖爾特的硝煙",
"war_archives_20200507_cn": "檔案 夜幕下的歸途",
"war_archives_20200603_cn": "檔案 峽灣間的反擊",
"war_archives_20200806_cn": "檔案 最重要的寶物",
"war_archives_20200820_cn": "檔案 鐵血音符誓言",

View File

@ -31,6 +31,7 @@ TEMPLATE_STRIVE_WISH_AND_STRATEGIZE = Template(file={'cn': './assets/cn/war_arch
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/en/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'})
TEMPLATE_THE_SOLOMON_RANGER = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_THE_SOLOMON_RANGER.png', 'en': './assets/en/war_archives/TEMPLATE_THE_SOLOMON_RANGER.png', 'jp': './assets/cn/war_archives/TEMPLATE_THE_SOLOMON_RANGER.png', 'tw': './assets/cn/war_archives/TEMPLATE_THE_SOLOMON_RANGER.png'})
TEMPLATE_THE_WAY_HOME_IN_THE_NIGHT = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_THE_WAY_HOME_IN_THE_NIGHT.png', 'en': './assets/en/war_archives/TEMPLATE_THE_WAY_HOME_IN_THE_NIGHT.png', 'jp': './assets/cn/war_archives/TEMPLATE_THE_WAY_HOME_IN_THE_NIGHT.png', 'tw': './assets/cn/war_archives/TEMPLATE_THE_WAY_HOME_IN_THE_NIGHT.png'})
TEMPLATE_UNIVERSE_IN_UNISON = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png', 'en': './assets/en/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png', 'jp': './assets/jp/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png', 'tw': './assets/cn/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png'})
TEMPLATE_VISITORS_DYED_IN_RED = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_VISITORS_DYED_IN_RED.png', 'en': './assets/en/war_archives/TEMPLATE_VISITORS_DYED_IN_RED.png', 'jp': './assets/jp/war_archives/TEMPLATE_VISITORS_DYED_IN_RED.png', 'tw': './assets/tw/war_archives/TEMPLATE_VISITORS_DYED_IN_RED.png'})
TEMPLATE_WINTERS_CROWN = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_WINTERS_CROWN.png', 'en': './assets/en/war_archives/TEMPLATE_WINTERS_CROWN.png', 'jp': './assets/jp/war_archives/TEMPLATE_WINTERS_CROWN.png', 'tw': './assets/tw/war_archives/TEMPLATE_WINTERS_CROWN.png'})

View File

@ -30,4 +30,5 @@ dic_archives_template = {
'war_archives_20200603_cn': TEMPLATE_COUNTERATTACK_WITHIN_THE_FJORD,
'war_archives_20190314_en': TEMPLATE_PRELUDE_UNDER_THE_MOON,
'war_archives_20200312_cn': TEMPLATE_THE_SOLOMON_RANGER,
'war_archives_20200507_cn': TEMPLATE_THE_WAY_HOME_IN_THE_NIGHT,
}