Add: War Archives Prelude under the Moon

This commit is contained in:
guoh064 2024-03-11 22:26:33 +08:00
parent caeb091ce6
commit 0ddd253514
12 changed files with 213 additions and 16 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@ -22,6 +22,7 @@ To add a new event, add a new row in here, and run `python -m module.config.conf
| 20180119 | war archives 20191010 en | Encircling Graf Spee | 围剿斯佩伯爵 | Encircling Graf Spee | アドミラル・グラーフ・シュペー追撃戦 | 圍剿斯佩伯爵 |
| 20180226 | war archives 20190221 en | Winter\'s Crown | 凛冬王冠 | Winter\'s Crown | 凛冽なりし冬の王冠 | 凜冬王冠 |
| 20180607 | war archives 20180607 cn | Ink Stained Steel Sakura | 墨染的钢铁之花 | Ink Stained Steel Sakura | 墨染まりし鋼の桜 | 墨染的鋼鐵之花 |
| 20180717 | war archives 20190314 en | Prelude under the Moon | 月光下的序曲 | Prelude under the Moon | 月夜の開幕曲 | 月光下的序曲 |
| 20180726 | war archives 20180726 cn | Iris of Light and Dark | 光与影的鸢尾之华 | Iris of Light and Dark | 光と影のアイリス | 光與影的鳶尾之華 |
| 20210121 | war archives 20181227 cn | Crimson Echoes | 苍红的回响 | Crimson Echoes | 縹映る深緋の残響 | 蒼紅的迴響 |
| 20210513 | war archives 20200820 cn | Scherzo of Iron and Blood | 铁血音符誓言 | Scherzo of Iron and Blood | 黒鉄の楽章 誓いの海 | 鐵血音符誓言 |

View File

@ -0,0 +1,59 @@
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 = 'H5'
MAP.camera_data = ['D2', 'D3', 'E2', 'E3']
MAP.camera_data_spawn_point = ['D3']
MAP.map_data = """
++ ++ ++ -- ME ME MB ++
-- -- -- Me -- ME -- --
-- -- ++ -- Me ++ MB --
SP SP -- 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
"""
MAP.spawn_data = [
{'battle': 0, 'enemy': 3},
{'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, \
A2, B2, C2, D2, E2, F2, G2, H2, \
A3, B3, C3, D3, E3, F3, G3, H3, \
A4, B4, C4, D4, E4, F4, G4, H4, \
A5, B5, C5, D5, E5, F5, G5, H5, \
= MAP.flatten()
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,66 @@
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 = 'G7'
MAP.camera_data = ['D2', 'D5']
MAP.camera_data_spawn_point = ['D5']
MAP.map_data = """
++ ++ -- ME -- ME MB
MM ++ -- -- ME -- MB
ME -- Me -- ++ ++ ++
-- -- -- Me -- ME MB
-- -- ++ -- ++ ME --
SP 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
"""
MAP.spawn_data = [
{'battle': 0, 'enemy': 3, 'mystery': 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_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = False
MAP_HAS_AMBUSH = False
MAP_HAS_MYSTERY = True
# ===== End of generated config =====
class Campaign(CampaignBase):
MAP = MAP
ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C'
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,64 @@
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 = 'I6'
MAP.camera_data = ['D2', 'D4', 'F2', 'F4']
MAP.camera_data_spawn_point = ['F4']
MAP.map_data = """
++ MB -- ME -- Me -- ++ ++
MB -- ME -- ++ -- ME ++ ++
MB ME -- Me -- ME -- ME --
++ ++ ++ -- ME -- Me ++ --
MB -- ME Me -- ++ -- -- SP
-- ME -- -- -- ++ -- SP SP
"""
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},
{'battle': 1, 'enemy': 2},
{'battle': 2, 'enemy': 1},
{'battle': 3, 'enemy': 1},
{'battle': 4, 'enemy': 1},
{'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, \
= 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

@ -1681,8 +1681,8 @@
],
"display": "hide",
"option_bold": [
"event_20230223_cn",
"event_20240229_cn"
"event_20240229_cn",
"event_20230223_cn"
],
"cn": "event_20240229_cn",
"en": "event_20240229_cn",
@ -2014,8 +2014,8 @@
"event_20240229_cn"
],
"option_bold": [
"event_20230223_cn",
"event_20240229_cn"
"event_20240229_cn",
"event_20230223_cn"
],
"cn": "event_20240229_cn",
"en": "event_20240229_cn",
@ -2462,8 +2462,8 @@
"event_20240229_cn"
],
"option_bold": [
"event_20230223_cn",
"event_20240229_cn"
"event_20240229_cn",
"event_20230223_cn"
],
"cn": "event_20240229_cn",
"en": "event_20240229_cn",
@ -3371,6 +3371,7 @@
"war_archives_20181026_en",
"war_archives_20181227_cn",
"war_archives_20190221_en",
"war_archives_20190314_en",
"war_archives_20190321_en",
"war_archives_20190620_en",
"war_archives_20190911_cn",
@ -3852,8 +3853,8 @@
"event_20240229_cn"
],
"option_bold": [
"event_20230223_cn",
"event_20240229_cn"
"event_20240229_cn",
"event_20230223_cn"
],
"cn": "event_20240229_cn",
"en": "event_20240229_cn",
@ -4317,8 +4318,8 @@
"event_20240229_cn"
],
"option_bold": [
"event_20230223_cn",
"event_20240229_cn"
"event_20240229_cn",
"event_20230223_cn"
],
"cn": "event_20240229_cn",
"en": "event_20240229_cn",
@ -4782,8 +4783,8 @@
"event_20240229_cn"
],
"option_bold": [
"event_20230223_cn",
"event_20240229_cn"
"event_20240229_cn",
"event_20230223_cn"
],
"cn": "event_20240229_cn",
"en": "event_20240229_cn",
@ -5247,8 +5248,8 @@
"event_20240229_cn"
],
"option_bold": [
"event_20230223_cn",
"event_20240229_cn"
"event_20240229_cn",
"event_20230223_cn"
],
"cn": "event_20240229_cn",
"en": "event_20240229_cn",
@ -5702,8 +5703,8 @@
"event_20240229_cn"
],
"option_bold": [
"event_20230223_cn",
"event_20240229_cn"
"event_20240229_cn",
"event_20230223_cn"
],
"cn": "event_20240229_cn",
"en": "event_20240229_cn",

View File

@ -726,6 +726,7 @@
"war_archives_20181026_en": "archives Fallen Wings",
"war_archives_20181227_cn": "archives Crimson Echoes",
"war_archives_20190221_en": "archives Winters Crown",
"war_archives_20190314_en": "archives Prelude under the Moon",
"war_archives_20190321_en": "archives Visitors Dyed in Red",
"war_archives_20190620_en": "archives Glorious Battle",
"war_archives_20190911_cn": "archives Empyreal Tragicomedy",

View File

@ -726,6 +726,7 @@
"war_archives_20181026_en": "檔案 闇に堕ちた青き翼",
"war_archives_20181227_cn": "檔案 縹映る深緋の残響",
"war_archives_20190221_en": "檔案 凛冽なりし冬の王冠",
"war_archives_20190314_en": "檔案 月夜の開幕曲",
"war_archives_20190321_en": "檔案 紅染の来訪者",
"war_archives_20190620_en": "檔案 栄光なる最終戦",
"war_archives_20190911_cn": "檔案 悲歎せし焔海の詩",

View File

@ -726,6 +726,7 @@
"war_archives_20181026_en": "档案 坠落之翼",
"war_archives_20181227_cn": "档案 苍红的回响",
"war_archives_20190221_en": "档案 凛冬王冠",
"war_archives_20190314_en": "档案 月光下的序曲",
"war_archives_20190321_en": "档案 红染的参访者",
"war_archives_20190620_en": "档案 光荣的一战",
"war_archives_20190911_cn": "档案 神圣的悲喜剧",

View File

@ -726,6 +726,7 @@
"war_archives_20181026_en": "檔案 墜落之翼",
"war_archives_20181227_cn": "檔案 蒼紅的迴響",
"war_archives_20190221_en": "檔案 凜冬王冠",
"war_archives_20190314_en": "檔案 月光下的序曲",
"war_archives_20190321_en": "檔案 紅染的參訪者",
"war_archives_20190620_en": "檔案 光榮的一戰",
"war_archives_20190911_cn": "檔案 神聖的悲喜劇",

View File

@ -23,6 +23,7 @@ TEMPLATE_KHOROVOD_OF_DAWNS_RIME = Template(file={'cn': './assets/cn/war_archives
TEMPLATE_MICROLAYER_MEDLEY = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_MICROLAYER_MEDLEY.png', 'en': './assets/en/war_archives/TEMPLATE_MICROLAYER_MEDLEY.png', 'jp': './assets/cn/war_archives/TEMPLATE_MICROLAYER_MEDLEY.png', 'tw': './assets/tw/war_archives/TEMPLATE_MICROLAYER_MEDLEY.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_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_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_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_SKYBOUND_ORATORIO = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_SKYBOUND_ORATORIO.png', 'en': './assets/en/war_archives/TEMPLATE_SKYBOUND_ORATORIO.png', 'jp': './assets/cn/war_archives/TEMPLATE_SKYBOUND_ORATORIO.png', 'tw': './assets/cn/war_archives/TEMPLATE_SKYBOUND_ORATORIO.png'})
TEMPLATE_STARS_OF_THE_SHIMMERING_FJORD = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_STARS_OF_THE_SHIMMERING_FJORD.png', 'en': './assets/en/war_archives/TEMPLATE_STARS_OF_THE_SHIMMERING_FJORD.png', 'jp': './assets/cn/war_archives/TEMPLATE_STARS_OF_THE_SHIMMERING_FJORD.png', 'tw': './assets/tw/war_archives/TEMPLATE_STARS_OF_THE_SHIMMERING_FJORD.png'})

View File

@ -28,4 +28,5 @@ dic_archives_template = {
'war_archives_20210527_cn': TEMPLATE_MIRROR_INVOLUTION,
'war_archives_20210225_cn': TEMPLATE_KHOROVOD_OF_DAWNS_RIME,
'war_archives_20200603_cn': TEMPLATE_COUNTERATTACK_WITHIN_THE_FJORD,
'war_archives_20190314_en': TEMPLATE_PRELUDE_UNDER_THE_MOON,
}