Compare commits
52 Commits
68e19053c5
...
1e5a7d444b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1e5a7d444b | ||
|
|
7b48e1ac58 | ||
|
|
a136cbe1ff | ||
|
|
39ee794e41 | ||
|
|
e0b231bc58 | ||
|
|
44eb4dbcf2 | ||
|
|
95c1128c73 | ||
|
|
cc089b6223 | ||
|
|
7eb80ca6f4 | ||
|
|
9bb8e191ac | ||
|
|
efeb222764 | ||
|
|
11405cf0c3 | ||
|
|
3623d4c70a | ||
|
|
5ab18b27fd | ||
|
|
5fceeddcb1 | ||
|
|
c4961c80eb | ||
|
|
7e6b87bee8 | ||
|
|
fc0e4ce016 | ||
|
|
eb73b3cfd8 | ||
|
|
7118c30fea | ||
|
|
7d9e77e4fd | ||
|
|
5a32d9444c | ||
|
|
530efc628e | ||
|
|
f981ec614d | ||
|
|
054da57f5b | ||
|
|
3767be643a | ||
|
|
dfed4c9578 | ||
|
|
352f7412a6 | ||
|
|
10e302f37e | ||
|
|
5c7b2b695b | ||
|
|
cd1ef2cf95 | ||
|
|
0a0e41c07f | ||
|
|
18049bbc7d | ||
|
|
7e1a2322a6 | ||
|
|
701807ec9f | ||
|
|
6f1bdf1315 | ||
|
|
a4fec2e2a0 | ||
|
|
b8144ce41a | ||
|
|
ab18dfe420 | ||
|
|
eb33bdd747 | ||
|
|
b7c31e16e6 | ||
|
|
f20aab0463 | ||
|
|
b99311a001 | ||
|
|
bb349af001 | ||
|
|
87a031ed97 | ||
|
|
ebbecbd207 | ||
|
|
61e6a76644 | ||
|
|
52444569a4 | ||
|
|
5f2606dc92 | ||
|
|
9e75d03d91 | ||
|
|
f23d4fb681 | ||
|
|
912c74b8e1 |
BIN
assets/cn/combat_ui/PAUSE_Ancient.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
assets/cn/island/ISLAND_INFO_EXIT.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
assets/cn/island/PROJECT_ATAGO_CHECK.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
assets/cn/island/PROJECT_CHEN_HAI_CHECK.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
assets/cn/island/PROJECT_FRIEDRICH_DER_GROBE_CHECK.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
assets/cn/island/PROJECT_HELENA_CHECK.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
assets/cn/island/PROJECT_WILLIAM_D_PORTER_CHECK.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
assets/cn/island/ROLE_SELECT_TITLE_AREA.png
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
assets/cn/island/ROLE_SORTING_CLICK.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
assets/cn/island/ROLE_SORT_ASC.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
assets/cn/island/ROLE_SORT_DESC.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
assets/cn/island/TEMPLATE_ATAGO.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/cn/island/TEMPLATE_CHEN_HAI.png
Normal file
|
After Width: | Height: | Size: 9.4 KiB |
BIN
assets/cn/island/TEMPLATE_FRIEDRICH_DER_GROBE.png
Normal file
|
After Width: | Height: | Size: 9.4 KiB |
BIN
assets/cn/island/TEMPLATE_HELENA.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
assets/cn/island/TEMPLATE_WILLIAM_D_PORTER.png
Normal file
|
After Width: | Height: | Size: 9.8 KiB |
BIN
assets/cn/raid/CHANGWU_OCR_PT.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
assets/cn/raid/CHANGWU_OCR_REMAIN_EASY.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
assets/cn/raid/CHANGWU_OCR_REMAIN_EX.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
assets/cn/raid/CHANGWU_OCR_REMAIN_HARD.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
assets/cn/raid/CHANGWU_OCR_REMAIN_NORMAL.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
assets/cn/raid/CHANGWU_RAID_EASY.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
assets/cn/raid/CHANGWU_RAID_EX.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
assets/cn/raid/CHANGWU_RAID_HARD.png
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
assets/cn/raid/CHANGWU_RAID_NORMAL.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
assets/cn/raid/RPG_BACK.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 4.5 KiB |
BIN
assets/cn/war_archives/TEMPLATE_REVELATIONS_OF_DUST.png
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
assets/en/os_handler/MISSION_OVERVIEW_EMPTY.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
assets/en/raid/CHANGWU_OCR_PT.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
assets/en/raid/CHANGWU_OCR_REMAIN_EASY.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
assets/en/raid/CHANGWU_OCR_REMAIN_EX.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
assets/en/raid/CHANGWU_OCR_REMAIN_HARD.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
assets/en/raid/CHANGWU_OCR_REMAIN_NORMAL.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
assets/en/raid/CHANGWU_RAID_EASY.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
assets/en/raid/CHANGWU_RAID_EX.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
assets/en/raid/CHANGWU_RAID_HARD.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
assets/en/raid/CHANGWU_RAID_NORMAL.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
assets/en/raid/RPG_BACK.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 4.5 KiB |
BIN
assets/en/war_archives/TEMPLATE_REVELATIONS_OF_DUST.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
assets/jp/os_handler/MISSION_OVERVIEW_EMPTY.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
assets/jp/raid/CHANGWU_OCR_PT.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
assets/jp/raid/CHANGWU_OCR_REMAIN_EASY.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
assets/jp/raid/CHANGWU_OCR_REMAIN_EX.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
assets/jp/raid/CHANGWU_OCR_REMAIN_HARD.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
assets/jp/raid/CHANGWU_OCR_REMAIN_NORMAL.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
assets/jp/raid/CHANGWU_RAID_EASY.png
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
BIN
assets/jp/raid/CHANGWU_RAID_EX.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
assets/jp/raid/CHANGWU_RAID_HARD.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
assets/jp/raid/CHANGWU_RAID_NORMAL.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
assets/jp/raid/RPG_BACK.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 4.5 KiB |
BIN
assets/tw/coalition/FASHION_COALITION_CHECK.png
Normal file
|
After Width: | Height: | Size: 8.5 KiB |
BIN
assets/tw/coalition/FASHION_MODE_BATTLE.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
assets/tw/coalition/FASHION_MODE_STORY.png
Normal file
|
After Width: | Height: | Size: 8.7 KiB |
BIN
assets/tw/coalition/FASHION_SWITCH_MULTI.png
Normal file
|
After Width: | Height: | Size: 9.5 KiB |
BIN
assets/tw/coalition/FASHION_SWITCH_SINGLE.png
Normal file
|
After Width: | Height: | Size: 9.8 KiB |
BIN
assets/tw/os_handler/MISSION_OVERVIEW_EMPTY.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
assets/tw/raid/CHANGWU_OCR_PT.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
assets/tw/raid/CHANGWU_OCR_REMAIN_EASY.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
assets/tw/raid/CHANGWU_OCR_REMAIN_EX.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
assets/tw/raid/CHANGWU_OCR_REMAIN_HARD.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
assets/tw/raid/CHANGWU_OCR_REMAIN_NORMAL.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
assets/tw/raid/CHANGWU_RAID_EASY.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
assets/tw/raid/CHANGWU_RAID_EX.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
assets/tw/raid/CHANGWU_RAID_HARD.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
assets/tw/raid/CHANGWU_RAID_NORMAL.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
assets/tw/raid/RPG_BACK.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 4.5 KiB |
@ -57,6 +57,7 @@ To add a new event, add a new row in here, and run `python -m module.config.conf
|
||||
| 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 | 赫の涙月 菫の暁風 | 紫絳槿嵐 |
|
||||
| 20251218 | war archives 20221222 cn | Parallel Superimposition | 定向折叠 | Parallel Superimposition | 積重なる事象の幻界 | 定向折疊 |
|
||||
| 20260129 | war archives 20230223 cn | Revelations of Dust | 湮烬尘墟 | Revelations of Dust | 黙示の遺構 | 湮燼塵墟 |
|
||||
| 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 | 闇靄払う銀翼 | - |
|
||||
@ -278,3 +279,6 @@ To add a new event, add a new row in here, and run `python -m module.config.conf
|
||||
| 20260115 | event 20231221 cn | Light-Chasing Sea of Stars Rerun | 复刻星海逐光 | Light-Chasing Sea of Stars Rerun | 光追う星の海(復刻) | - |
|
||||
| 20260122 | coalition 20260122 | Light & Shadow Fashion Shoot! | 光影风尚-拍摄进行时 | Light & Shadow Fashion Shoot! | 特集写真-撮影進行中 | - |
|
||||
| 20260122 | event 20220526 cn | Pledge of the Radiant Court | - | - | - | 泠誓光庭 |
|
||||
| 20260129 | coalition 20260122 | Light & Shadow Fashion Shoot! | - | - | - | 光影風尚-拍攝進行時 |
|
||||
| 20260205 | raid 20240328 | From Zero to Hero | 复刻从零开始的魔王讨伐之旅 | From Zero to Hero Rerun | ゼロから頑張る魔王討伐(復刻) | - |
|
||||
| 20260212 | raid 20260212 | Spring Auction Adventure | 春宴怀玉香满庭 | Spring Auction Adventure | 新春玉逸品会 | 春宴懷玉香滿庭 |
|
||||
|
||||
78
campaign/war_archives_20230223_cn/a1.py
Normal file
@ -0,0 +1,78 @@
|
||||
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('A1')
|
||||
MAP.shape = 'H8'
|
||||
MAP.camera_data = ['D2', 'D5', 'E2', 'E5']
|
||||
MAP.camera_data_spawn_point = ['D6']
|
||||
MAP.map_data = """
|
||||
++ -- -- -- ME -- ME --
|
||||
-- MB -- ME ++ ME -- ++
|
||||
ME -- -- Me ++ Me -- ME
|
||||
ME -- -- -- MS -- -- --
|
||||
-- ME Me -- -- __ ++ ++
|
||||
-- ++ ++ ++ Me -- MS ++
|
||||
-- -- 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 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 = ['Joffre']
|
||||
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 = (0.993, 1.011)
|
||||
MAP_SWIPE_MULTIPLY_MINITOUCH = (0.960, 0.978)
|
||||
MAP_SWIPE_MULTIPLY_MAATOUCH = (0.932, 0.949)
|
||||
|
||||
|
||||
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_3(self):
|
||||
return self.clear_boss()
|
||||
76
campaign/war_archives_20230223_cn/a2.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 .a1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('A2')
|
||||
MAP.shape = 'I7'
|
||||
MAP.camera_data = ['F2', 'F5']
|
||||
MAP.camera_data_spawn_point = ['D5']
|
||||
MAP.map_data = """
|
||||
++ ++ -- Me -- ME ++ ++ ++
|
||||
++ ++ Me -- -- -- -- MB --
|
||||
SP -- MS -- Me ME __ -- ME
|
||||
-- -- MS ++ ++ ++ ME ME ++
|
||||
SP -- MS -- -- -- -- -- ++
|
||||
++ -- -- -- 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 = ['LeMars']
|
||||
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.053, 1.073)
|
||||
MAP_SWIPE_MULTIPLY_MINITOUCH = (1.018, 1.037)
|
||||
MAP_SWIPE_MULTIPLY_MAATOUCH = (0.989, 1.006)
|
||||
|
||||
|
||||
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()
|
||||
79
campaign/war_archives_20230223_cn/a3.py
Normal file
@ -0,0 +1,79 @@
|
||||
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 .a1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('A3')
|
||||
MAP.shape = 'I8'
|
||||
MAP.camera_data = ['D2', 'F2', 'F5']
|
||||
MAP.camera_data_spawn_point = ['D5']
|
||||
MAP.map_data = """
|
||||
ME -- ME -- -- -- -- ME --
|
||||
-- ME -- Me -- ME ME -- ++
|
||||
-- ++ ME __ -- ++ ++ ME ME
|
||||
-- ++ MS -- MB ++ ++ -- --
|
||||
-- -- -- MS -- Me -- -- ME
|
||||
-- SP -- -- MS -- -- 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': 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 = ['LaGalissonniere']
|
||||
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.016, 1.035)
|
||||
MAP_SWIPE_MULTIPLY_MINITOUCH = (0.982, 1.000)
|
||||
MAP_SWIPE_MULTIPLY_MAATOUCH = (0.954, 0.971)
|
||||
|
||||
|
||||
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()
|
||||
94
campaign/war_archives_20230223_cn/b1.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('B1')
|
||||
MAP.shape = 'I8'
|
||||
MAP.camera_data = ['D3', 'D6', 'F3', 'F6']
|
||||
MAP.camera_data_spawn_point = ['D2']
|
||||
MAP.map_data = """
|
||||
++ SP SP -- ++ -- -- ++ ++
|
||||
-- -- -- -- ++ ME ME ++ ++
|
||||
MS -- MS -- MS -- -- ME --
|
||||
-- Me ++ -- -- -- ME -- ME
|
||||
-- ++ ++ Me __ Me ++ ++ --
|
||||
-- ME -- -- -- -- ++ ++ --
|
||||
++ -- 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': 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 = ['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
|
||||
MAP_HAS_MYSTERY = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (80, 255 - 33),
|
||||
'width': (0.9, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
MAP_ENEMY_GENRE_DETECTION_SCALING = {
|
||||
'DD': 1.111,
|
||||
'CL': 1.111,
|
||||
'CA': 1.111,
|
||||
'CV': 1.111,
|
||||
'BB': 1.111,
|
||||
}
|
||||
MAP_ENSURE_EDGE_INSIGHT_CORNER = 'bottom'
|
||||
MAP_WALK_USE_CURRENT_FLEET = True
|
||||
MAP_SWIPE_MULTIPLY = (1.195, 1.217)
|
||||
MAP_SWIPE_MULTIPLY_MINITOUCH = (1.156, 1.177)
|
||||
MAP_SWIPE_MULTIPLY_MAATOUCH = (1.122, 1.142)
|
||||
|
||||
|
||||
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_20230223_cn/b2.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 .b1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('B2')
|
||||
MAP.shape = 'J8'
|
||||
MAP.camera_data = ['D2', 'D6']
|
||||
MAP.camera_data_spawn_point = ['F3']
|
||||
MAP.map_data = """
|
||||
-- -- ++ ++ -- ME -- ME -- --
|
||||
-- ME ++ ++ Me -- MS ++ ++ --
|
||||
ME -- -- __ -- -- -- -- SP --
|
||||
-- ME Me -- ME MS ME -- -- ++
|
||||
-- ++ ++ -- ++ -- -- -- SP --
|
||||
-- ++ ++ -- Me -- MS ++ ++ --
|
||||
-- MB MB -- -- 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 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, J1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
|
||||
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \
|
||||
A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
# ===== Start of generated config =====
|
||||
MAP_SIREN_TEMPLATE = ['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
|
||||
MAP_HAS_MYSTERY = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
MAP_SWIPE_MULTIPLY = (1.069, 1.089)
|
||||
MAP_SWIPE_MULTIPLY_MINITOUCH = (1.034, 1.053)
|
||||
MAP_SWIPE_MULTIPLY_MAATOUCH = (1.004, 1.022)
|
||||
|
||||
|
||||
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()
|
||||
83
campaign/war_archives_20230223_cn/b3.py
Normal file
@ -0,0 +1,83 @@
|
||||
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 .b1 import Config as ConfigBase
|
||||
|
||||
MAP = CampaignMap('B3')
|
||||
MAP.shape = 'J9'
|
||||
MAP.camera_data = ['E3', 'E7', 'F3', 'F7']
|
||||
MAP.camera_data_spawn_point = ['E7']
|
||||
MAP.map_data = """
|
||||
-- -- ++ -- -- -- -- ++ -- --
|
||||
-- -- -- ME ++ ++ ME -- -- --
|
||||
++ ++ Me -- ++ ++ -- Me ++ ++
|
||||
++ ++ -- -- MB MB -- -- ++ ++
|
||||
-- Me -- __ -- -- __ -- Me --
|
||||
-- -- ME MS ++ ++ MS ME -- --
|
||||
-- -- ME MS -- -- MS 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 50 50 50 50
|
||||
50 50 50 50 50 50 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, J1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
|
||||
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \
|
||||
A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, \
|
||||
A9, B9, C9, D9, E9, F9, G9, H9, I9, J9, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
# ===== Start of generated config =====
|
||||
MAP_SIREN_TEMPLATE = ['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
|
||||
MAP_HAS_MYSTERY = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
MAP_SWIPE_MULTIPLY = (0.969, 0.987)
|
||||
MAP_SWIPE_MULTIPLY_MINITOUCH = (0.937, 0.955)
|
||||
MAP_SWIPE_MULTIPLY_MAATOUCH = (0.910, 0.926)
|
||||
|
||||
|
||||
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()
|
||||
78
campaign/war_archives_20230223_cn/c1.py
Normal file
@ -0,0 +1,78 @@
|
||||
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', 'D5', 'E2', 'E5']
|
||||
MAP.camera_data_spawn_point = ['D6']
|
||||
MAP.map_data = """
|
||||
++ -- -- -- ME -- ME --
|
||||
-- MB -- ME ++ ME -- ++
|
||||
ME -- -- Me ++ Me -- ME
|
||||
ME -- -- -- MS -- -- --
|
||||
-- ME Me -- -- __ ++ ++
|
||||
-- ++ ++ ++ Me -- MS ++
|
||||
-- -- 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 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 = ['Joffre']
|
||||
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 = (0.993, 1.011)
|
||||
MAP_SWIPE_MULTIPLY_MINITOUCH = (0.960, 0.978)
|
||||
MAP_SWIPE_MULTIPLY_MAATOUCH = (0.932, 0.949)
|
||||
|
||||
|
||||
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_20230223_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 = ['F2', 'F5']
|
||||
MAP.camera_data_spawn_point = ['D5']
|
||||
MAP.map_data = """
|
||||
++ ++ -- Me -- ME ++ ++ ++
|
||||
++ ++ Me -- -- -- -- MB --
|
||||
SP -- MS -- Me ME __ -- ME
|
||||
-- -- MS ++ ++ ++ ME ME ++
|
||||
SP -- MS -- -- -- -- -- ++
|
||||
++ -- -- -- 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 = ['LeMars']
|
||||
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.053, 1.073)
|
||||
MAP_SWIPE_MULTIPLY_MINITOUCH = (1.018, 1.037)
|
||||
MAP_SWIPE_MULTIPLY_MAATOUCH = (0.989, 1.006)
|
||||
|
||||
|
||||
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_20230223_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', 'F2', 'F5']
|
||||
MAP.camera_data_spawn_point = ['D5']
|
||||
MAP.map_data = """
|
||||
ME -- ME -- -- -- -- ME --
|
||||
-- ME -- Me -- ME ME -- ++
|
||||
-- ++ ME __ -- ++ ++ ME ME
|
||||
-- ++ MS -- MB ++ ++ -- --
|
||||
-- -- -- MS -- Me -- -- ME
|
||||
-- SP -- -- MS -- -- 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': 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 = ['LaGalissonniere']
|
||||
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.016, 1.035)
|
||||
MAP_SWIPE_MULTIPLY_MINITOUCH = (0.982, 1.000)
|
||||
MAP_SWIPE_MULTIPLY_MAATOUCH = (0.954, 0.971)
|
||||
|
||||
|
||||
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()
|
||||
94
campaign/war_archives_20230223_cn/d1.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('D1')
|
||||
MAP.shape = 'I8'
|
||||
MAP.camera_data = ['D3', 'D6', 'F3', 'F6']
|
||||
MAP.camera_data_spawn_point = ['D2']
|
||||
MAP.map_data = """
|
||||
++ SP SP -- ++ -- -- ++ ++
|
||||
-- -- -- -- ++ ME ME ++ ++
|
||||
MS -- MS -- MS -- -- ME --
|
||||
-- Me ++ -- -- -- ME -- ME
|
||||
-- ++ ++ Me __ Me ++ ++ --
|
||||
-- ME -- -- -- -- ++ ++ --
|
||||
++ -- 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': 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 = ['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
|
||||
MAP_HAS_MYSTERY = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||
'height': (80, 255 - 33),
|
||||
'width': (0.9, 10),
|
||||
'prominence': 10,
|
||||
'distance': 35,
|
||||
}
|
||||
MAP_ENEMY_GENRE_DETECTION_SCALING = {
|
||||
'DD': 1.111,
|
||||
'CL': 1.111,
|
||||
'CA': 1.111,
|
||||
'CV': 1.111,
|
||||
'BB': 1.111,
|
||||
}
|
||||
MAP_ENSURE_EDGE_INSIGHT_CORNER = 'bottom'
|
||||
MAP_WALK_USE_CURRENT_FLEET = True
|
||||
MAP_SWIPE_MULTIPLY = (1.195, 1.217)
|
||||
MAP_SWIPE_MULTIPLY_MINITOUCH = (1.156, 1.177)
|
||||
MAP_SWIPE_MULTIPLY_MAATOUCH = (1.122, 1.142)
|
||||
|
||||
|
||||
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()
|
||||
89
campaign/war_archives_20230223_cn/d2.py
Normal file
@ -0,0 +1,89 @@
|
||||
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 = 'J8'
|
||||
MAP.camera_data = ['D2', 'D6']
|
||||
MAP.camera_data_spawn_point = ['F3']
|
||||
MAP.map_data = """
|
||||
-- -- ++ ++ -- ME -- ME -- --
|
||||
-- ME ++ ++ Me -- MS ++ ++ --
|
||||
ME -- -- __ -- -- -- -- SP --
|
||||
-- ME Me -- ME MS ME -- -- ++
|
||||
-- ++ ++ -- ++ -- -- -- SP --
|
||||
-- ++ ++ -- Me -- MS ++ ++ --
|
||||
-- MB MB -- -- 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 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, J1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
|
||||
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \
|
||||
A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
# ===== Start of generated config =====
|
||||
MAP_SIREN_TEMPLATE = ['CA', '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
|
||||
MAP_HAS_MYSTERY = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
MAP_SWIPE_MULTIPLY = (1.069, 1.089)
|
||||
MAP_SWIPE_MULTIPLY_MINITOUCH = (1.034, 1.053)
|
||||
MAP_SWIPE_MULTIPLY_MAATOUCH = (1.004, 1.022)
|
||||
|
||||
|
||||
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()
|
||||
92
campaign/war_archives_20230223_cn/d3.py
Normal file
@ -0,0 +1,92 @@
|
||||
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 = 'J9'
|
||||
MAP.camera_data = ['E3', 'E7', 'F3', 'F7']
|
||||
MAP.camera_data_spawn_point = ['E7']
|
||||
MAP.map_data = """
|
||||
-- -- ++ -- -- -- -- ++ -- --
|
||||
-- -- -- ME ++ ++ ME -- -- --
|
||||
++ ++ Me -- ++ ++ -- Me ++ ++
|
||||
++ ++ -- -- MB MB -- -- ++ ++
|
||||
-- Me -- __ -- -- __ -- Me --
|
||||
-- -- ME MS ++ ++ MS ME -- --
|
||||
-- -- ME MS -- -- MS 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 50 50 50 50
|
||||
50 50 50 50 50 50 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, J1, \
|
||||
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, \
|
||||
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, \
|
||||
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, \
|
||||
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, \
|
||||
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, \
|
||||
A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, \
|
||||
A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, \
|
||||
A9, B9, C9, D9, E9, F9, G9, H9, I9, J9, \
|
||||
= MAP.flatten()
|
||||
|
||||
|
||||
class Config(ConfigBase):
|
||||
# ===== Start of generated config =====
|
||||
MAP_SIREN_TEMPLATE = ['CA', '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
|
||||
MAP_HAS_MYSTERY = False
|
||||
# ===== End of generated config =====
|
||||
|
||||
MAP_SWIPE_MULTIPLY = (0.969, 0.987)
|
||||
MAP_SWIPE_MULTIPLY_MINITOUCH = (0.937, 0.955)
|
||||
MAP_SWIPE_MULTIPLY_MAATOUCH = (0.910, 0.926)
|
||||
|
||||
|
||||
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()
|
||||
@ -469,57 +469,6 @@
|
||||
"Storage": {}
|
||||
}
|
||||
},
|
||||
"Coalition": {
|
||||
"Scheduler": {
|
||||
"Enable": false,
|
||||
"NextRun": "2020-01-01 00:00:00",
|
||||
"Command": "Coalition",
|
||||
"SuccessInterval": 30,
|
||||
"FailureInterval": 30,
|
||||
"ServerUpdate": "00:00"
|
||||
},
|
||||
"Campaign": {
|
||||
"Name": "dynamic",
|
||||
"Event": "campaign_main",
|
||||
"Mode": "normal",
|
||||
"UseClearMode": true,
|
||||
"UseFleetLock": true,
|
||||
"UseAutoSearch": false,
|
||||
"Use2xBook": false,
|
||||
"AmbushEvade": true,
|
||||
"ClearAfterSinking": false
|
||||
},
|
||||
"Coalition": {
|
||||
"Mode": "hard",
|
||||
"Fleet": "single"
|
||||
},
|
||||
"StopCondition": {
|
||||
"OilLimit": 1000,
|
||||
"RunCount": 0,
|
||||
"MapAchievement": "non_stop",
|
||||
"StageIncrease": false,
|
||||
"GetNewShip": false,
|
||||
"ReachLevel": 0
|
||||
},
|
||||
"Emotion": {
|
||||
"Mode": "calculate",
|
||||
"Fleet1Value": 119,
|
||||
"Fleet1Record": "2020-01-01 00:00:00",
|
||||
"Fleet1Control": "prevent_yellow_face",
|
||||
"Fleet1Recover": "not_in_dormitory",
|
||||
"Fleet1Oath": false,
|
||||
"Fleet1Onsen": false,
|
||||
"Fleet2Value": 119,
|
||||
"Fleet2Record": "2020-01-01 00:00:00",
|
||||
"Fleet2Control": "prevent_yellow_face",
|
||||
"Fleet2Recover": "not_in_dormitory",
|
||||
"Fleet2Oath": false,
|
||||
"Fleet2Onsen": false
|
||||
},
|
||||
"Storage": {
|
||||
"Storage": {}
|
||||
}
|
||||
},
|
||||
"Event": {
|
||||
"Scheduler": {
|
||||
"Enable": false,
|
||||
@ -764,6 +713,57 @@
|
||||
"Storage": {}
|
||||
}
|
||||
},
|
||||
"Coalition": {
|
||||
"Scheduler": {
|
||||
"Enable": false,
|
||||
"NextRun": "2020-01-01 00:00:00",
|
||||
"Command": "Coalition",
|
||||
"SuccessInterval": 30,
|
||||
"FailureInterval": 30,
|
||||
"ServerUpdate": "00:00"
|
||||
},
|
||||
"Campaign": {
|
||||
"Name": "dynamic",
|
||||
"Event": "campaign_main",
|
||||
"Mode": "normal",
|
||||
"UseClearMode": true,
|
||||
"UseFleetLock": true,
|
||||
"UseAutoSearch": false,
|
||||
"Use2xBook": false,
|
||||
"AmbushEvade": true,
|
||||
"ClearAfterSinking": false
|
||||
},
|
||||
"Coalition": {
|
||||
"Mode": "hard",
|
||||
"Fleet": "single"
|
||||
},
|
||||
"StopCondition": {
|
||||
"OilLimit": 1000,
|
||||
"RunCount": 0,
|
||||
"MapAchievement": "non_stop",
|
||||
"StageIncrease": false,
|
||||
"GetNewShip": false,
|
||||
"ReachLevel": 0
|
||||
},
|
||||
"Emotion": {
|
||||
"Mode": "calculate",
|
||||
"Fleet1Value": 119,
|
||||
"Fleet1Record": "2020-01-01 00:00:00",
|
||||
"Fleet1Control": "prevent_yellow_face",
|
||||
"Fleet1Recover": "not_in_dormitory",
|
||||
"Fleet1Oath": false,
|
||||
"Fleet1Onsen": false,
|
||||
"Fleet2Value": 119,
|
||||
"Fleet2Record": "2020-01-01 00:00:00",
|
||||
"Fleet2Control": "prevent_yellow_face",
|
||||
"Fleet2Recover": "not_in_dormitory",
|
||||
"Fleet2Oath": false,
|
||||
"Fleet2Onsen": false
|
||||
},
|
||||
"Storage": {
|
||||
"Storage": {}
|
||||
}
|
||||
},
|
||||
"MaritimeEscort": {
|
||||
"Scheduler": {
|
||||
"Enable": false,
|
||||
@ -791,7 +791,7 @@
|
||||
},
|
||||
"Campaign": {
|
||||
"Name": "D3",
|
||||
"Event": "war_archives_20221222_cn",
|
||||
"Event": "war_archives_20230223_cn",
|
||||
"Mode": "normal",
|
||||
"UseClearMode": true,
|
||||
"UseFleetLock": true,
|
||||
@ -860,57 +860,6 @@
|
||||
"Storage": {}
|
||||
}
|
||||
},
|
||||
"CoalitionSp": {
|
||||
"Scheduler": {
|
||||
"Enable": false,
|
||||
"NextRun": "2020-01-01 00:00:00",
|
||||
"Command": "CoalitionSp",
|
||||
"SuccessInterval": 30,
|
||||
"FailureInterval": 30,
|
||||
"ServerUpdate": "00:00"
|
||||
},
|
||||
"Campaign": {
|
||||
"Name": "sp",
|
||||
"Event": "campaign_main",
|
||||
"Mode": "normal",
|
||||
"UseClearMode": true,
|
||||
"UseFleetLock": true,
|
||||
"UseAutoSearch": false,
|
||||
"Use2xBook": false,
|
||||
"AmbushEvade": true,
|
||||
"ClearAfterSinking": false
|
||||
},
|
||||
"Coalition": {
|
||||
"Mode": "sp",
|
||||
"Fleet": "single"
|
||||
},
|
||||
"StopCondition": {
|
||||
"OilLimit": 1000,
|
||||
"RunCount": 0,
|
||||
"MapAchievement": "non_stop",
|
||||
"StageIncrease": false,
|
||||
"GetNewShip": false,
|
||||
"ReachLevel": 0
|
||||
},
|
||||
"Emotion": {
|
||||
"Mode": "calculate",
|
||||
"Fleet1Value": 119,
|
||||
"Fleet1Record": "2020-01-01 00:00:00",
|
||||
"Fleet1Control": "prevent_yellow_face",
|
||||
"Fleet1Recover": "not_in_dormitory",
|
||||
"Fleet1Oath": false,
|
||||
"Fleet1Onsen": false,
|
||||
"Fleet2Value": 119,
|
||||
"Fleet2Record": "2020-01-01 00:00:00",
|
||||
"Fleet2Control": "prevent_yellow_face",
|
||||
"Fleet2Recover": "not_in_dormitory",
|
||||
"Fleet2Oath": false,
|
||||
"Fleet2Onsen": false
|
||||
},
|
||||
"Storage": {
|
||||
"Storage": {}
|
||||
}
|
||||
},
|
||||
"EventA": {
|
||||
"Scheduler": {
|
||||
"Enable": false,
|
||||
@ -1362,6 +1311,57 @@
|
||||
"Storage": {}
|
||||
}
|
||||
},
|
||||
"CoalitionSp": {
|
||||
"Scheduler": {
|
||||
"Enable": false,
|
||||
"NextRun": "2020-01-01 00:00:00",
|
||||
"Command": "CoalitionSp",
|
||||
"SuccessInterval": 30,
|
||||
"FailureInterval": 30,
|
||||
"ServerUpdate": "00:00"
|
||||
},
|
||||
"Campaign": {
|
||||
"Name": "sp",
|
||||
"Event": "campaign_main",
|
||||
"Mode": "normal",
|
||||
"UseClearMode": true,
|
||||
"UseFleetLock": true,
|
||||
"UseAutoSearch": false,
|
||||
"Use2xBook": false,
|
||||
"AmbushEvade": true,
|
||||
"ClearAfterSinking": false
|
||||
},
|
||||
"Coalition": {
|
||||
"Mode": "sp",
|
||||
"Fleet": "single"
|
||||
},
|
||||
"StopCondition": {
|
||||
"OilLimit": 1000,
|
||||
"RunCount": 0,
|
||||
"MapAchievement": "non_stop",
|
||||
"StageIncrease": false,
|
||||
"GetNewShip": false,
|
||||
"ReachLevel": 0
|
||||
},
|
||||
"Emotion": {
|
||||
"Mode": "calculate",
|
||||
"Fleet1Value": 119,
|
||||
"Fleet1Record": "2020-01-01 00:00:00",
|
||||
"Fleet1Control": "prevent_yellow_face",
|
||||
"Fleet1Recover": "not_in_dormitory",
|
||||
"Fleet1Oath": false,
|
||||
"Fleet1Onsen": false,
|
||||
"Fleet2Value": 119,
|
||||
"Fleet2Record": "2020-01-01 00:00:00",
|
||||
"Fleet2Control": "prevent_yellow_face",
|
||||
"Fleet2Recover": "not_in_dormitory",
|
||||
"Fleet2Oath": false,
|
||||
"Fleet2Onsen": false
|
||||
},
|
||||
"Storage": {
|
||||
"Storage": {}
|
||||
}
|
||||
},
|
||||
"Commission": {
|
||||
"Scheduler": {
|
||||
"Enable": false,
|
||||
@ -1578,9 +1578,7 @@
|
||||
"Option2": 0,
|
||||
"Character2": "manjuu",
|
||||
"Option3": 0,
|
||||
"Character3": "manjuu",
|
||||
"Option4": 0,
|
||||
"Character4": "manjuu"
|
||||
"Character3": "manjuu"
|
||||
},
|
||||
"Island4": {
|
||||
"Receive": false,
|
||||
@ -1609,7 +1607,11 @@
|
||||
"Option1": 0,
|
||||
"Character1": "manjuu",
|
||||
"Option2": 0,
|
||||
"Character2": "manjuu"
|
||||
"Character2": "manjuu",
|
||||
"Option3": 0,
|
||||
"Character3": "manjuu",
|
||||
"Option4": 0,
|
||||
"Character4": "manjuu"
|
||||
},
|
||||
"Island7": {
|
||||
"Receive": false,
|
||||
@ -1674,6 +1676,13 @@
|
||||
"Option2": 0,
|
||||
"Character2": "manjuu"
|
||||
},
|
||||
"Island16": {
|
||||
"Receive": false,
|
||||
"Option1": 0,
|
||||
"Character1": "manjuu",
|
||||
"Option2": 0,
|
||||
"Character2": "manjuu"
|
||||
},
|
||||
"Storage": {
|
||||
"Storage": {}
|
||||
}
|
||||
|
||||
@ -265,7 +265,7 @@ if __name__ == '__main__':
|
||||
# input strings in YYYYMMDD format for event time, or input event name
|
||||
# use 'recent' for the latest CN enent, use a list to input multiple values,
|
||||
# such as '20220428', '虹彩的终幕曲', 'recent', ['雄鹰的叙事歌' , '20220428', 'recent']
|
||||
WarArchivesUpdater.event = '飓风与青春之泉'
|
||||
WarArchivesUpdater.event = '湮烬尘墟'
|
||||
|
||||
updater = WarArchivesUpdater()
|
||||
|
||||
|
||||
@ -36,17 +36,17 @@ DAL_SWITCH_MULTI = Button(area={'cn': (1060, 473, 1204, 500), 'en': (1061, 474,
|
||||
DAL_SWITCH_SINGLE = Button(area={'cn': (910, 473, 1055, 500), 'en': (915, 475, 1051, 499), 'jp': (917, 474, 1035, 499), 'tw': (945, 478, 1013, 495)}, color={'cn': (223, 223, 223), 'en': (193, 193, 193), 'jp': (215, 215, 215), 'tw': (168, 168, 168)}, button={'cn': (910, 473, 1055, 500), 'en': (915, 475, 1051, 499), 'jp': (917, 474, 1035, 499), 'tw': (945, 478, 1013, 495)}, file={'cn': './assets/cn/coalition/DAL_SWITCH_SINGLE.png', 'en': './assets/en/coalition/DAL_SWITCH_SINGLE.png', 'jp': './assets/jp/coalition/DAL_SWITCH_SINGLE.png', 'tw': './assets/tw/coalition/DAL_SWITCH_SINGLE.png'})
|
||||
EMPTY_FLAGSHIP = Button(area={'cn': (247, 237, 277, 267), 'en': (247, 237, 277, 267), 'jp': (247, 237, 277, 267), 'tw': (247, 237, 277, 267)}, color={'cn': (76, 64, 56), 'en': (76, 64, 56), 'jp': (76, 64, 56), 'tw': (76, 64, 56)}, button={'cn': (247, 237, 277, 267), 'en': (247, 237, 277, 267), 'jp': (247, 237, 277, 267), 'tw': (247, 237, 277, 267)}, file={'cn': './assets/cn/coalition/EMPTY_FLAGSHIP.png', 'en': './assets/cn/coalition/EMPTY_FLAGSHIP.png', 'jp': './assets/cn/coalition/EMPTY_FLAGSHIP.png', 'tw': './assets/cn/coalition/EMPTY_FLAGSHIP.png'})
|
||||
EMPTY_VANGUARD = Button(area={'cn': (515, 237, 545, 267), 'en': (515, 237, 545, 267), 'jp': (515, 237, 545, 267), 'tw': (515, 237, 545, 267)}, color={'cn': (52, 52, 53), 'en': (52, 52, 53), 'jp': (52, 52, 53), 'tw': (52, 52, 53)}, button={'cn': (515, 237, 545, 267), 'en': (515, 237, 545, 267), 'jp': (515, 237, 545, 267), 'tw': (515, 237, 545, 267)}, file={'cn': './assets/cn/coalition/EMPTY_VANGUARD.png', 'en': './assets/cn/coalition/EMPTY_VANGUARD.png', 'jp': './assets/cn/coalition/EMPTY_VANGUARD.png', 'tw': './assets/cn/coalition/EMPTY_VANGUARD.png'})
|
||||
FASHION_COALITION_CHECK = Button(area={'cn': (102, 19, 177, 51), 'en': (118, 31, 183, 50), 'jp': (101, 18, 175, 51), 'tw': (102, 19, 177, 51)}, color={'cn': (109, 104, 89), 'en': (131, 124, 102), 'jp': (122, 116, 101), 'tw': (109, 104, 89)}, button={'cn': (102, 19, 177, 51), 'en': (118, 31, 183, 50), 'jp': (101, 18, 175, 51), 'tw': (102, 19, 177, 51)}, file={'cn': './assets/cn/coalition/FASHION_COALITION_CHECK.png', 'en': './assets/en/coalition/FASHION_COALITION_CHECK.png', 'jp': './assets/jp/coalition/FASHION_COALITION_CHECK.png', 'tw': './assets/cn/coalition/FASHION_COALITION_CHECK.png'})
|
||||
FASHION_COALITION_CHECK = Button(area={'cn': (102, 19, 177, 51), 'en': (118, 31, 183, 50), 'jp': (101, 18, 175, 51), 'tw': (101, 17, 177, 51)}, color={'cn': (109, 104, 89), 'en': (131, 124, 102), 'jp': (122, 116, 101), 'tw': (108, 103, 89)}, button={'cn': (102, 19, 177, 51), 'en': (118, 31, 183, 50), 'jp': (101, 18, 175, 51), 'tw': (101, 17, 177, 51)}, file={'cn': './assets/cn/coalition/FASHION_COALITION_CHECK.png', 'en': './assets/en/coalition/FASHION_COALITION_CHECK.png', 'jp': './assets/jp/coalition/FASHION_COALITION_CHECK.png', 'tw': './assets/tw/coalition/FASHION_COALITION_CHECK.png'})
|
||||
FASHION_EASY = Button(area={'cn': (136, 223, 199, 263), 'en': (136, 223, 199, 263), 'jp': (136, 223, 199, 263), 'tw': (136, 223, 199, 263)}, color={'cn': (225, 199, 197), 'en': (225, 199, 197), 'jp': (225, 199, 197), 'tw': (225, 199, 197)}, button={'cn': (136, 223, 199, 263), 'en': (136, 223, 199, 263), 'jp': (136, 223, 199, 263), 'tw': (136, 223, 199, 263)}, file={'cn': './assets/cn/coalition/FASHION_EASY.png', 'en': './assets/cn/coalition/FASHION_EASY.png', 'jp': './assets/cn/coalition/FASHION_EASY.png', 'tw': './assets/cn/coalition/FASHION_EASY.png'})
|
||||
FASHION_EX = Button(area={'cn': (844, 246, 923, 301), 'en': (844, 246, 923, 301), 'jp': (844, 246, 923, 301), 'tw': (844, 246, 923, 301)}, color={'cn': (140, 115, 114), 'en': (140, 115, 114), 'jp': (140, 115, 114), 'tw': (140, 115, 114)}, button={'cn': (844, 246, 923, 301), 'en': (844, 246, 923, 301), 'jp': (844, 246, 923, 301), 'tw': (844, 246, 923, 301)}, file={'cn': './assets/cn/coalition/FASHION_EX.png', 'en': './assets/cn/coalition/FASHION_EX.png', 'jp': './assets/cn/coalition/FASHION_EX.png', 'tw': './assets/cn/coalition/FASHION_EX.png'})
|
||||
FASHION_HARD = Button(area={'cn': (485, 167, 554, 215), 'en': (485, 167, 554, 215), 'jp': (485, 167, 554, 215), 'tw': (485, 167, 554, 215)}, color={'cn': (152, 136, 129), 'en': (152, 136, 129), 'jp': (152, 136, 129), 'tw': (152, 136, 129)}, button={'cn': (485, 167, 554, 215), 'en': (485, 167, 554, 215), 'jp': (485, 167, 554, 215), 'tw': (485, 167, 554, 215)}, file={'cn': './assets/cn/coalition/FASHION_HARD.png', 'en': './assets/cn/coalition/FASHION_HARD.png', 'jp': './assets/cn/coalition/FASHION_HARD.png', 'tw': './assets/cn/coalition/FASHION_HARD.png'})
|
||||
FASHION_MODE_BATTLE = Button(area={'cn': (152, 635, 213, 669), 'en': (108, 644, 188, 668), 'jp': (150, 636, 215, 668), 'tw': (152, 635, 213, 669)}, color={'cn': (140, 133, 117), 'en': (150, 143, 128), 'jp': (144, 137, 119), 'tw': (140, 133, 117)}, button={'cn': (152, 635, 213, 669), 'en': (108, 644, 188, 668), 'jp': (150, 636, 215, 668), 'tw': (152, 635, 213, 669)}, file={'cn': './assets/cn/coalition/FASHION_MODE_BATTLE.png', 'en': './assets/en/coalition/FASHION_MODE_BATTLE.png', 'jp': './assets/jp/coalition/FASHION_MODE_BATTLE.png', 'tw': './assets/cn/coalition/FASHION_MODE_BATTLE.png'})
|
||||
FASHION_MODE_STORY = Button(area={'cn': (154, 629, 220, 666), 'en': (117, 642, 195, 667), 'jp': (156, 629, 219, 665), 'tw': (154, 629, 220, 666)}, color={'cn': (141, 134, 116), 'en': (158, 148, 132), 'jp': (151, 143, 123), 'tw': (141, 134, 116)}, button={'cn': (154, 629, 220, 666), 'en': (117, 642, 195, 667), 'jp': (156, 629, 219, 665), 'tw': (154, 629, 220, 666)}, file={'cn': './assets/cn/coalition/FASHION_MODE_STORY.png', 'en': './assets/en/coalition/FASHION_MODE_STORY.png', 'jp': './assets/jp/coalition/FASHION_MODE_STORY.png', 'tw': './assets/cn/coalition/FASHION_MODE_STORY.png'})
|
||||
FASHION_MODE_BATTLE = Button(area={'cn': (152, 635, 213, 669), 'en': (108, 644, 188, 668), 'jp': (150, 636, 215, 668), 'tw': (150, 637, 212, 667)}, color={'cn': (140, 133, 117), 'en': (150, 143, 128), 'jp': (144, 137, 119), 'tw': (128, 123, 109)}, button={'cn': (152, 635, 213, 669), 'en': (108, 644, 188, 668), 'jp': (150, 636, 215, 668), 'tw': (150, 637, 212, 667)}, file={'cn': './assets/cn/coalition/FASHION_MODE_BATTLE.png', 'en': './assets/en/coalition/FASHION_MODE_BATTLE.png', 'jp': './assets/jp/coalition/FASHION_MODE_BATTLE.png', 'tw': './assets/tw/coalition/FASHION_MODE_BATTLE.png'})
|
||||
FASHION_MODE_STORY = Button(area={'cn': (154, 629, 220, 666), 'en': (117, 642, 195, 667), 'jp': (156, 629, 219, 665), 'tw': (154, 629, 219, 666)}, color={'cn': (141, 134, 116), 'en': (158, 148, 132), 'jp': (151, 143, 123), 'tw': (139, 132, 115)}, button={'cn': (154, 629, 220, 666), 'en': (117, 642, 195, 667), 'jp': (156, 629, 219, 665), 'tw': (154, 629, 219, 666)}, file={'cn': './assets/cn/coalition/FASHION_MODE_STORY.png', 'en': './assets/en/coalition/FASHION_MODE_STORY.png', 'jp': './assets/jp/coalition/FASHION_MODE_STORY.png', 'tw': './assets/tw/coalition/FASHION_MODE_STORY.png'})
|
||||
FASHION_NORMAL = Button(area={'cn': (322, 295, 392, 334), 'en': (322, 295, 392, 334), 'jp': (322, 295, 392, 334), 'tw': (322, 295, 392, 334)}, color={'cn': (219, 196, 198), 'en': (219, 196, 198), 'jp': (219, 196, 198), 'tw': (219, 196, 198)}, button={'cn': (322, 295, 392, 334), 'en': (322, 295, 392, 334), 'jp': (322, 295, 392, 334), 'tw': (322, 295, 392, 334)}, file={'cn': './assets/cn/coalition/FASHION_NORMAL.png', 'en': './assets/cn/coalition/FASHION_NORMAL.png', 'jp': './assets/cn/coalition/FASHION_NORMAL.png', 'tw': './assets/cn/coalition/FASHION_NORMAL.png'})
|
||||
FASHION_PT_OCR = Button(area={'cn': (881, 658, 937, 674), 'en': (881, 658, 937, 674), 'jp': (881, 658, 937, 674), 'tw': (881, 658, 937, 674)}, color={'cn': (136, 127, 122), 'en': (136, 127, 122), 'jp': (136, 127, 122), 'tw': (136, 127, 122)}, button={'cn': (881, 658, 937, 674), 'en': (881, 658, 937, 674), 'jp': (881, 658, 937, 674), 'tw': (881, 658, 937, 674)}, file={'cn': './assets/cn/coalition/FASHION_PT_OCR.png', 'en': './assets/cn/coalition/FASHION_PT_OCR.png', 'jp': './assets/cn/coalition/FASHION_PT_OCR.png', 'tw': './assets/cn/coalition/FASHION_PT_OCR.png'})
|
||||
FASHION_SP = Button(area={'cn': (704, 194, 762, 242), 'en': (704, 194, 762, 242), 'jp': (704, 194, 762, 242), 'tw': (704, 194, 762, 242)}, color={'cn': (146, 133, 135), 'en': (146, 133, 135), 'jp': (146, 133, 135), 'tw': (146, 133, 135)}, button={'cn': (704, 194, 762, 242), 'en': (704, 194, 762, 242), 'jp': (704, 194, 762, 242), 'tw': (704, 194, 762, 242)}, file={'cn': './assets/cn/coalition/FASHION_SP.png', 'en': './assets/cn/coalition/FASHION_SP.png', 'jp': './assets/cn/coalition/FASHION_SP.png', 'tw': './assets/cn/coalition/FASHION_SP.png'})
|
||||
FASHION_SWITCH_MULTI = Button(area={'cn': (1075, 457, 1206, 485), 'en': (1076, 457, 1206, 485), 'jp': (1075, 457, 1206, 485), 'tw': (1075, 457, 1206, 485)}, color={'cn': (233, 183, 63), 'en': (201, 158, 54), 'jp': (227, 178, 61), 'tw': (233, 183, 63)}, button={'cn': (1075, 457, 1206, 485), 'en': (1076, 457, 1206, 485), 'jp': (1075, 457, 1206, 485), 'tw': (1075, 457, 1206, 485)}, file={'cn': './assets/cn/coalition/FASHION_SWITCH_MULTI.png', 'en': './assets/en/coalition/FASHION_SWITCH_MULTI.png', 'jp': './assets/jp/coalition/FASHION_SWITCH_MULTI.png', 'tw': './assets/cn/coalition/FASHION_SWITCH_MULTI.png'})
|
||||
FASHION_SWITCH_SINGLE = Button(area={'cn': (929, 457, 1059, 485), 'en': (929, 457, 1059, 485), 'jp': (929, 457, 1059, 485), 'tw': (929, 457, 1059, 485)}, color={'cn': (230, 181, 62), 'en': (202, 159, 54), 'jp': (227, 178, 61), 'tw': (230, 181, 62)}, button={'cn': (929, 457, 1059, 485), 'en': (929, 457, 1059, 485), 'jp': (929, 457, 1059, 485), 'tw': (929, 457, 1059, 485)}, file={'cn': './assets/cn/coalition/FASHION_SWITCH_SINGLE.png', 'en': './assets/en/coalition/FASHION_SWITCH_SINGLE.png', 'jp': './assets/jp/coalition/FASHION_SWITCH_SINGLE.png', 'tw': './assets/cn/coalition/FASHION_SWITCH_SINGLE.png'})
|
||||
FASHION_SWITCH_MULTI = Button(area={'cn': (1075, 457, 1206, 485), 'en': (1076, 457, 1206, 485), 'jp': (1075, 457, 1206, 485), 'tw': (1075, 457, 1206, 485)}, color={'cn': (233, 183, 63), 'en': (201, 158, 54), 'jp': (227, 178, 61), 'tw': (229, 181, 62)}, button={'cn': (1075, 457, 1206, 485), 'en': (1076, 457, 1206, 485), 'jp': (1075, 457, 1206, 485), 'tw': (1075, 457, 1206, 485)}, file={'cn': './assets/cn/coalition/FASHION_SWITCH_MULTI.png', 'en': './assets/en/coalition/FASHION_SWITCH_MULTI.png', 'jp': './assets/jp/coalition/FASHION_SWITCH_MULTI.png', 'tw': './assets/tw/coalition/FASHION_SWITCH_MULTI.png'})
|
||||
FASHION_SWITCH_SINGLE = Button(area={'cn': (929, 457, 1059, 485), 'en': (929, 457, 1059, 485), 'jp': (929, 457, 1059, 485), 'tw': (929, 457, 1059, 485)}, color={'cn': (230, 181, 62), 'en': (202, 159, 54), 'jp': (227, 178, 61), 'tw': (225, 177, 61)}, button={'cn': (929, 457, 1059, 485), 'en': (929, 457, 1059, 485), 'jp': (929, 457, 1059, 485), 'tw': (929, 457, 1059, 485)}, file={'cn': './assets/cn/coalition/FASHION_SWITCH_SINGLE.png', 'en': './assets/en/coalition/FASHION_SWITCH_SINGLE.png', 'jp': './assets/jp/coalition/FASHION_SWITCH_SINGLE.png', 'tw': './assets/tw/coalition/FASHION_SWITCH_SINGLE.png'})
|
||||
FLEET_NOT_PREPARED = Button(area={'cn': (1008, 310, 1110, 334), 'en': (1008, 310, 1110, 334), 'jp': (1008, 310, 1110, 334), 'tw': (1008, 310, 1110, 334)}, color={'cn': (106, 106, 112), 'en': (106, 106, 112), 'jp': (106, 106, 112), 'tw': (108, 107, 112)}, button={'cn': (1008, 310, 1110, 334), 'en': (1008, 310, 1110, 334), 'jp': (1008, 310, 1110, 334), 'tw': (1008, 310, 1110, 334)}, file={'cn': './assets/cn/coalition/FLEET_NOT_PREPARED.png', 'en': './assets/cn/coalition/FLEET_NOT_PREPARED.png', 'jp': './assets/cn/coalition/FLEET_NOT_PREPARED.png', 'tw': './assets/tw/coalition/FLEET_NOT_PREPARED.png'})
|
||||
FROSTFALL_COALITION_CHECK = Button(area={'cn': (118, 14, 227, 39), 'en': (118, 16, 221, 36), 'jp': (118, 14, 227, 39), 'tw': (118, 14, 227, 39)}, color={'cn': (145, 161, 200), 'en': (116, 130, 168), 'jp': (150, 166, 204), 'tw': (152, 168, 206)}, button={'cn': (118, 14, 227, 39), 'en': (118, 16, 221, 36), 'jp': (118, 14, 227, 39), 'tw': (118, 14, 227, 39)}, file={'cn': './assets/cn/coalition/FROSTFALL_COALITION_CHECK.png', 'en': './assets/en/coalition/FROSTFALL_COALITION_CHECK.png', 'jp': './assets/jp/coalition/FROSTFALL_COALITION_CHECK.png', 'tw': './assets/tw/coalition/FROSTFALL_COALITION_CHECK.png'})
|
||||
FROSTFALL_EX = Button(area={'cn': (622, 372, 649, 384), 'en': (622, 372, 649, 384), 'jp': (622, 372, 649, 384), 'tw': (622, 372, 649, 384)}, color={'cn': (198, 152, 252), 'en': (198, 152, 252), 'jp': (198, 152, 252), 'tw': (182, 127, 252)}, button={'cn': (622, 372, 649, 384), 'en': (622, 372, 649, 384), 'jp': (622, 372, 649, 384), 'tw': (622, 372, 649, 384)}, file={'cn': './assets/cn/coalition/FROSTFALL_EX.png', 'en': './assets/en/coalition/FROSTFALL_EX.png', 'jp': './assets/jp/coalition/FROSTFALL_EX.png', 'tw': './assets/tw/coalition/FROSTFALL_EX.png'})
|
||||
|
||||
@ -96,6 +96,7 @@ class Coalition(CoalitionCombat, CampaignEvent):
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
@property
|
||||
def _coalition_has_oil_icon(self):
|
||||
"""
|
||||
|
||||
@ -124,6 +124,8 @@ class Combat(Level, HPBalancer, Retirement, SubmarineCall, CombatAuto, CombatMan
|
||||
return PAUSE_ShadowPuppetry
|
||||
if PAUSE_MaidCafe.match_template_color(self.device.image, offset=(10, 10)):
|
||||
return PAUSE_MaidCafe
|
||||
if PAUSE_Ancient.match_template_color(self.device.image, offset=(10, 10)):
|
||||
return PAUSE_Ancient
|
||||
return False
|
||||
|
||||
def handle_combat_quit(self, offset=(20, 20), interval=3):
|
||||
|
||||
@ -5,6 +5,7 @@ from module.base.template import Template
|
||||
# Don't modify it manually.
|
||||
|
||||
PAUSE = Button(area={'cn': (1158, 40, 1199, 58), 'en': (1155, 38, 1216, 51), 'jp': (1232, 36, 1240, 60), 'tw': (1217, 36, 1225, 59)}, color={'cn': (189, 190, 202), 'en': (164, 169, 181), 'jp': (244, 241, 246), 'tw': (247, 243, 247)}, button={'cn': (1157, 34, 1241, 61), 'en': (1136, 26, 1270, 63), 'jp': (1141, 38, 1220, 57), 'tw': (1157, 34, 1241, 61)}, file={'cn': './assets/cn/combat_ui/PAUSE.png', 'en': './assets/en/combat_ui/PAUSE.png', 'jp': './assets/jp/combat_ui/PAUSE.png', 'tw': './assets/tw/combat_ui/PAUSE.png'})
|
||||
PAUSE_Ancient = Button(area={'cn': (1228, 36, 1245, 55), 'en': (1228, 36, 1245, 55), 'jp': (1228, 36, 1245, 55), 'tw': (1228, 36, 1245, 55)}, color={'cn': (172, 161, 144), 'en': (172, 161, 144), 'jp': (172, 161, 144), 'tw': (172, 161, 144)}, button={'cn': (1228, 36, 1245, 55), 'en': (1228, 36, 1245, 55), 'jp': (1228, 36, 1245, 55), 'tw': (1228, 36, 1245, 55)}, file={'cn': './assets/cn/combat_ui/PAUSE_Ancient.png', 'en': './assets/cn/combat_ui/PAUSE_Ancient.png', 'jp': './assets/cn/combat_ui/PAUSE_Ancient.png', 'tw': './assets/cn/combat_ui/PAUSE_Ancient.png'})
|
||||
PAUSE_Christmas = Button(area={'cn': (1234, 35, 1250, 56), 'en': (1234, 35, 1250, 56), 'jp': (1234, 35, 1250, 56), 'tw': (1234, 35, 1250, 56)}, color={'cn': (158, 181, 210), 'en': (158, 181, 210), 'jp': (158, 181, 210), 'tw': (158, 181, 210)}, button={'cn': (1234, 35, 1250, 56), 'en': (1234, 35, 1250, 56), 'jp': (1234, 35, 1250, 56), 'tw': (1234, 35, 1250, 56)}, file={'cn': './assets/cn/combat_ui/PAUSE_Christmas.png', 'en': './assets/cn/combat_ui/PAUSE_Christmas.png', 'jp': './assets/cn/combat_ui/PAUSE_Christmas.png', 'tw': './assets/cn/combat_ui/PAUSE_Christmas.png'})
|
||||
PAUSE_Cyber = Button(area={'cn': (1231, 32, 1253, 59), 'en': (1231, 32, 1253, 59), 'jp': (1231, 32, 1253, 59), 'tw': (1231, 32, 1253, 59)}, color={'cn': (40, 140, 157), 'en': (40, 140, 157), 'jp': (40, 140, 157), 'tw': (40, 140, 157)}, button={'cn': (1231, 32, 1253, 59), 'en': (1231, 32, 1253, 59), 'jp': (1231, 32, 1253, 59), 'tw': (1231, 32, 1253, 59)}, file={'cn': './assets/cn/combat_ui/PAUSE_Cyber.png', 'en': './assets/cn/combat_ui/PAUSE_Cyber.png', 'jp': './assets/cn/combat_ui/PAUSE_Cyber.png', 'tw': './assets/cn/combat_ui/PAUSE_Cyber.png'})
|
||||
PAUSE_DOUBLE_CHECK = Button(area={'cn': (1226, 35, 1231, 60), 'en': (1226, 35, 1231, 61), 'jp': (1226, 35, 1230, 60), 'tw': (1226, 35, 1231, 60)}, color={'cn': (96, 104, 136), 'en': (83, 98, 118), 'jp': (97, 102, 120), 'tw': (96, 104, 136)}, button={'cn': (1226, 35, 1231, 60), 'en': (1226, 35, 1231, 61), 'jp': (1226, 35, 1230, 60), 'tw': (1226, 35, 1231, 60)}, file={'cn': './assets/cn/combat_ui/PAUSE_DOUBLE_CHECK.png', 'en': './assets/en/combat_ui/PAUSE_DOUBLE_CHECK.png', 'jp': './assets/jp/combat_ui/PAUSE_DOUBLE_CHECK.png', 'tw': './assets/tw/combat_ui/PAUSE_DOUBLE_CHECK.png'})
|
||||
|
||||
@ -516,6 +516,12 @@ _Island:
|
||||
IslandOption11: &IslandOption11
|
||||
value: 0
|
||||
option: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ]
|
||||
IslandOption12: &IslandOption12
|
||||
value: 0
|
||||
option: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ]
|
||||
IslandOption16: &IslandOption16
|
||||
value: 0
|
||||
option: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]
|
||||
IslandCharacter: &IslandCharacter
|
||||
value: manjuu
|
||||
option:
|
||||
@ -528,9 +534,14 @@ _Island:
|
||||
- akashi
|
||||
- ying_swei
|
||||
- chao_ho
|
||||
- william_d_porter
|
||||
- chen_hai
|
||||
- unicorn
|
||||
- cheshire
|
||||
- amagi_chan
|
||||
- helena
|
||||
- atago
|
||||
- friedrich_der_grobe
|
||||
Island1:
|
||||
Receive: false
|
||||
Option1: *IslandOption8
|
||||
@ -560,6 +571,14 @@ Island2:
|
||||
option: [ 0, 4 ]
|
||||
Character4: *IslandCharacter
|
||||
Island3:
|
||||
Receive: false
|
||||
Option1: *IslandOption16
|
||||
Character1: *IslandCharacter
|
||||
Option2: *IslandOption16
|
||||
Character2: *IslandCharacter
|
||||
Option3: *IslandOption16
|
||||
Character3: *IslandCharacter
|
||||
Island4:
|
||||
Receive: false
|
||||
Option1: *IslandOption6
|
||||
Character1: *IslandCharacter
|
||||
@ -569,7 +588,7 @@ Island3:
|
||||
Character3: *IslandCharacter
|
||||
Option4: *IslandOption6
|
||||
Character4: *IslandCharacter
|
||||
Island4:
|
||||
Island5:
|
||||
Receive: false
|
||||
Option1: *IslandOption4
|
||||
Character1: *IslandCharacter
|
||||
@ -579,22 +598,16 @@ Island4:
|
||||
Character3: *IslandCharacter
|
||||
Option4: *IslandOption4
|
||||
Character4: *IslandCharacter
|
||||
Island5:
|
||||
Receive: false
|
||||
Option1: *IslandOption9
|
||||
Character1: *IslandCharacter
|
||||
Option2: *IslandOption9
|
||||
Character2: *IslandCharacter
|
||||
Option3: *IslandOption9
|
||||
Character3: *IslandCharacter
|
||||
Option4: *IslandOption9
|
||||
Character4: *IslandCharacter
|
||||
Island6:
|
||||
Receive: false
|
||||
Option1: *IslandOption7
|
||||
Character1: *IslandCharacter
|
||||
Option2: *IslandOption7
|
||||
Character2: *IslandCharacter
|
||||
Option3: *IslandOption7
|
||||
Character3: *IslandCharacter
|
||||
Option4: *IslandOption7
|
||||
Character4: *IslandCharacter
|
||||
Island7:
|
||||
Receive: false
|
||||
Option1: *IslandOption9
|
||||
@ -602,29 +615,29 @@ Island7:
|
||||
Option2: *IslandOption9
|
||||
Character2: *IslandCharacter
|
||||
Island8:
|
||||
Receive: false
|
||||
Option1: *IslandOption12
|
||||
Character1: *IslandCharacter
|
||||
Option2: *IslandOption12
|
||||
Character2: *IslandCharacter
|
||||
Island9:
|
||||
Receive: false
|
||||
Option1: *IslandOption11
|
||||
Character1: *IslandCharacter
|
||||
Option2: *IslandOption11
|
||||
Character2: *IslandCharacter
|
||||
Island9:
|
||||
Island10:
|
||||
Receive: false
|
||||
Option1: *IslandOption10
|
||||
Character1: *IslandCharacter
|
||||
Option2: *IslandOption10
|
||||
Character2: *IslandCharacter
|
||||
Island11:
|
||||
Receive: false
|
||||
Option1: *IslandOption9
|
||||
Character1: *IslandCharacter
|
||||
Option2: *IslandOption9
|
||||
Character2: *IslandCharacter
|
||||
Island10:
|
||||
Receive: false
|
||||
Option1: *IslandOption7
|
||||
Character1: *IslandCharacter
|
||||
Option2: *IslandOption7
|
||||
Character2: *IslandCharacter
|
||||
Island11:
|
||||
Receive: false
|
||||
Option1: *IslandOption5
|
||||
Character1: *IslandCharacter
|
||||
Option2: *IslandOption5
|
||||
Character2: *IslandCharacter
|
||||
Island12:
|
||||
Receive: false
|
||||
Option1: *IslandOption6
|
||||
@ -632,18 +645,24 @@ Island12:
|
||||
Option2: *IslandOption6
|
||||
Character2: *IslandCharacter
|
||||
Island13:
|
||||
Receive: false
|
||||
Option1: *IslandOption6
|
||||
Character1: *IslandCharacter
|
||||
Option2: *IslandOption6
|
||||
Character2: *IslandCharacter
|
||||
Island14:
|
||||
Receive: false
|
||||
Option1: *IslandOption4
|
||||
Character1: *IslandCharacter
|
||||
Option2: *IslandOption4
|
||||
Character2: *IslandCharacter
|
||||
Island14:
|
||||
Island15:
|
||||
Receive: false
|
||||
Option1: *IslandOption9
|
||||
Character1: *IslandCharacter
|
||||
Option2: *IslandOption9
|
||||
Character2: *IslandCharacter
|
||||
Island15:
|
||||
Island16:
|
||||
Receive: false
|
||||
Option1: *IslandOption9
|
||||
Character1: *IslandCharacter
|
||||
@ -737,7 +756,7 @@ CoreShop:
|
||||
ShipyardDr:
|
||||
ResearchSeries:
|
||||
value: 2
|
||||
option: [ 2, 3, 4 ]
|
||||
option: [ 2, 3, 4, 5 ]
|
||||
ShipIndex:
|
||||
value: 0
|
||||
option: [ 0, 1, 2, 3, 4, 5, 6 ]
|
||||
@ -746,7 +765,7 @@ ShipyardDr:
|
||||
Shipyard:
|
||||
ResearchSeries:
|
||||
value: 1
|
||||
option: [ 1, 2, 3, 4, 5 ]
|
||||
option: [ 1, 2, 3, 4, 5, 6 ]
|
||||
ShipIndex:
|
||||
value: 0
|
||||
option: [ 0, 1, 2, 3, 4, 5, 6 ]
|
||||
|
||||
@ -23,11 +23,11 @@
|
||||
"page": "setting",
|
||||
"tasks": [
|
||||
"EventGeneral",
|
||||
"Coalition",
|
||||
"Event",
|
||||
"Event2",
|
||||
"Raid",
|
||||
"Hospital",
|
||||
"Coalition",
|
||||
"MaritimeEscort",
|
||||
"WarArchives"
|
||||
]
|
||||
@ -36,13 +36,13 @@
|
||||
"menu": "collapse",
|
||||
"page": "setting",
|
||||
"tasks": [
|
||||
"CoalitionSp",
|
||||
"EventA",
|
||||
"EventB",
|
||||
"EventC",
|
||||
"EventD",
|
||||
"EventSp",
|
||||
"RaidDaily"
|
||||
"RaidDaily",
|
||||
"CoalitionSp"
|
||||
]
|
||||
},
|
||||
"Reward": {
|
||||
|
||||
@ -73,12 +73,6 @@ Event:
|
||||
EventGeneral:
|
||||
- EventGeneral
|
||||
- TaskBalancer
|
||||
Coalition:
|
||||
- Scheduler
|
||||
- Campaign
|
||||
- Coalition
|
||||
- StopCondition
|
||||
- Emotion
|
||||
Event:
|
||||
- Scheduler
|
||||
- Campaign
|
||||
@ -108,6 +102,12 @@ Event:
|
||||
- Hospital
|
||||
- StopCondition
|
||||
- Emotion
|
||||
Coalition:
|
||||
- Scheduler
|
||||
- Campaign
|
||||
- Coalition
|
||||
- StopCondition
|
||||
- Emotion
|
||||
MaritimeEscort:
|
||||
- Scheduler
|
||||
- MaritimeEscort
|
||||
@ -129,12 +129,6 @@ EventDaily:
|
||||
menu: 'collapse'
|
||||
page: 'setting'
|
||||
tasks:
|
||||
CoalitionSp:
|
||||
- Scheduler
|
||||
- Campaign
|
||||
- Coalition
|
||||
- StopCondition
|
||||
- Emotion
|
||||
EventA:
|
||||
- Scheduler
|
||||
- EventDaily
|
||||
@ -190,6 +184,12 @@ EventDaily:
|
||||
- Campaign
|
||||
- StopCondition
|
||||
- Emotion
|
||||
CoalitionSp:
|
||||
- Scheduler
|
||||
- Campaign
|
||||
- Coalition
|
||||
- StopCondition
|
||||
- Emotion
|
||||
|
||||
# ==================== Reward ====================
|
||||
|
||||
@ -243,6 +243,7 @@ Reward:
|
||||
- Island13
|
||||
- Island14
|
||||
- Island15
|
||||
- Island16
|
||||
|
||||
# ==================== DailyMission ====================
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@ class GeneratedConfig:
|
||||
# Group `Emulator`
|
||||
Emulator_Serial = 'auto'
|
||||
Emulator_PackageName = 'auto' # auto, com.bilibili.azurlane, com.YoStarEN.AzurLane, com.YoStarJP.AzurLane, com.hkmanjuu.azurlane.gp, com.bilibili.blhx.huawei, com.bilibili.blhx.honor, com.bilibili.blhx.mi, com.tencent.tmgp.bilibili.blhx, com.bilibili.blhx.baidu, com.bilibili.blhx.qihoo, com.bilibili.blhx.nearme.gamecenter, com.bilibili.blhx.vivo, com.bilibili.blhx.mz, com.bilibili.blhx.dl, com.bilibili.blhx.lenovo, com.bilibili.blhx.uc, com.bilibili.blhx.mzw, com.yiwu.blhx.yx15, com.bilibili.blhx.m4399, com.bilibili.blhx.bilibiliMove, com.hkmanjuu.azurlane.gp.mc
|
||||
Emulator_ServerName = 'disabled' # disabled, cn_android-0, cn_android-1, cn_android-2, cn_android-3, cn_android-4, cn_android-5, cn_android-6, cn_android-7, cn_android-8, cn_android-9, cn_android-10, cn_android-11, cn_android-12, cn_android-13, cn_android-14, cn_android-15, cn_android-16, cn_android-17, cn_android-18, cn_android-19, cn_android-20, cn_android-21, cn_android-22, cn_android-23, cn_android-24, cn_android-25, cn_android-26, cn_android-27, cn_ios-0, cn_ios-1, cn_ios-2, cn_ios-3, cn_ios-4, cn_ios-5, cn_ios-6, cn_ios-7, cn_ios-8, cn_ios-9, cn_ios-10, cn_channel-0, cn_channel-1, cn_channel-2, cn_channel-3, cn_channel-4, en-0, en-1, en-2, en-3, en-4, en-5, jp-0, jp-1, jp-2, jp-3, jp-4, jp-5, jp-6, jp-7, jp-8, jp-9, jp-10, jp-11, jp-12, jp-13, jp-14, jp-15, jp-16, jp-17
|
||||
Emulator_ServerName = 'disabled' # disabled, cn_android-0, cn_android-1, cn_android-2, cn_android-3, cn_android-4, cn_android-5, cn_android-6, cn_android-7, cn_android-8, cn_android-9, cn_android-10, cn_android-11, cn_android-12, cn_android-13, cn_android-14, cn_android-15, cn_android-16, cn_android-17, cn_android-18, cn_android-19, cn_android-20, cn_android-21, cn_android-22, cn_android-23, cn_android-24, cn_android-25, cn_android-26, cn_android-27, cn_android-28, cn_ios-0, cn_ios-1, cn_ios-2, cn_ios-3, cn_ios-4, cn_ios-5, cn_ios-6, cn_ios-7, cn_ios-8, cn_ios-9, cn_ios-10, cn_channel-0, cn_channel-1, cn_channel-2, cn_channel-3, cn_channel-4, en-0, en-1, en-2, en-3, en-4, en-5, jp-0, jp-1, jp-2, jp-3, jp-4, jp-5, jp-6, jp-7, jp-8, jp-9, jp-10, jp-11, jp-12, jp-13, jp-14, jp-15, jp-16, jp-17
|
||||
Emulator_ScreenshotMethod = 'auto' # auto, ADB, ADB_nc, uiautomator2, aScreenCap, aScreenCap_nc, DroidCast, DroidCast_raw, nemu_ipc, ldopengl
|
||||
Emulator_ControlMethod = 'MaaTouch' # ADB, uiautomator2, minitouch, Hermit, MaaTouch
|
||||
Emulator_ScreenshotDedithering = False
|
||||
@ -279,127 +279,136 @@ class GeneratedConfig:
|
||||
# Group `Island1`
|
||||
Island1_Receive = False
|
||||
Island1_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8
|
||||
Island1_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island1_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island1_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8
|
||||
Island1_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island1_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island1_Option3 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8
|
||||
Island1_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island1_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island1_Option4 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8
|
||||
Island1_Character4 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island1_Character4 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
|
||||
# Group `Island2`
|
||||
Island2_Receive = False
|
||||
Island2_Option1 = 0 # 0, 1
|
||||
Island2_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island2_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island2_Option2 = 0 # 0, 2
|
||||
Island2_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island2_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island2_Option3 = 0 # 0, 3
|
||||
Island2_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island2_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island2_Option4 = 0 # 0, 4
|
||||
Island2_Character4 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island2_Character4 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
|
||||
# Group `Island3`
|
||||
Island3_Receive = False
|
||||
Island3_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6
|
||||
Island3_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island3_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6
|
||||
Island3_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island3_Option3 = 0 # 0, 1, 2, 3, 4, 5, 6
|
||||
Island3_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island3_Option4 = 0 # 0, 1, 2, 3, 4, 5, 6
|
||||
Island3_Character4 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island3_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
|
||||
Island3_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island3_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
|
||||
Island3_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island3_Option3 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
|
||||
Island3_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
|
||||
# Group `Island4`
|
||||
Island4_Receive = False
|
||||
Island4_Option1 = 0 # 0, 1, 2, 3, 4
|
||||
Island4_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island4_Option2 = 0 # 0, 1, 2, 3, 4
|
||||
Island4_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island4_Option3 = 0 # 0, 1, 2, 3, 4
|
||||
Island4_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island4_Option4 = 0 # 0, 1, 2, 3, 4
|
||||
Island4_Character4 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island4_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6
|
||||
Island4_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island4_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6
|
||||
Island4_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island4_Option3 = 0 # 0, 1, 2, 3, 4, 5, 6
|
||||
Island4_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island4_Option4 = 0 # 0, 1, 2, 3, 4, 5, 6
|
||||
Island4_Character4 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
|
||||
# Group `Island5`
|
||||
Island5_Receive = False
|
||||
Island5_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
|
||||
Island5_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island5_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
|
||||
Island5_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island5_Option3 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
|
||||
Island5_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island5_Option4 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
|
||||
Island5_Character4 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island5_Option1 = 0 # 0, 1, 2, 3, 4
|
||||
Island5_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island5_Option2 = 0 # 0, 1, 2, 3, 4
|
||||
Island5_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island5_Option3 = 0 # 0, 1, 2, 3, 4
|
||||
Island5_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island5_Option4 = 0 # 0, 1, 2, 3, 4
|
||||
Island5_Character4 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
|
||||
# Group `Island6`
|
||||
Island6_Receive = False
|
||||
Island6_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7
|
||||
Island6_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island6_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island6_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7
|
||||
Island6_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island6_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island6_Option3 = 0 # 0, 1, 2, 3, 4, 5, 6, 7
|
||||
Island6_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island6_Option4 = 0 # 0, 1, 2, 3, 4, 5, 6, 7
|
||||
Island6_Character4 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
|
||||
# Group `Island7`
|
||||
Island7_Receive = False
|
||||
Island7_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
|
||||
Island7_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island7_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island7_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
|
||||
Island7_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island7_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
|
||||
# Group `Island8`
|
||||
Island8_Receive = False
|
||||
Island8_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
|
||||
Island8_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island8_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
|
||||
Island8_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island8_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
|
||||
Island8_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island8_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
|
||||
Island8_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
|
||||
# Group `Island9`
|
||||
Island9_Receive = False
|
||||
Island9_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
|
||||
Island9_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island9_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
|
||||
Island9_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island9_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
|
||||
Island9_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island9_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
|
||||
Island9_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
|
||||
# Group `Island10`
|
||||
Island10_Receive = False
|
||||
Island10_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7
|
||||
Island10_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island10_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7
|
||||
Island10_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island10_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
|
||||
Island10_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island10_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
|
||||
Island10_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
|
||||
# Group `Island11`
|
||||
Island11_Receive = False
|
||||
Island11_Option1 = 0 # 0, 1, 2, 3, 4, 5
|
||||
Island11_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island11_Option2 = 0 # 0, 1, 2, 3, 4, 5
|
||||
Island11_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island11_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
|
||||
Island11_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island11_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
|
||||
Island11_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
|
||||
# Group `Island12`
|
||||
Island12_Receive = False
|
||||
Island12_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6
|
||||
Island12_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island12_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island12_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6
|
||||
Island12_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island12_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
|
||||
# Group `Island13`
|
||||
Island13_Receive = False
|
||||
Island13_Option1 = 0 # 0, 1, 2, 3, 4
|
||||
Island13_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island13_Option2 = 0 # 0, 1, 2, 3, 4
|
||||
Island13_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island13_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6
|
||||
Island13_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island13_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6
|
||||
Island13_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
|
||||
# Group `Island14`
|
||||
Island14_Receive = False
|
||||
Island14_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
|
||||
Island14_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island14_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
|
||||
Island14_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island14_Option1 = 0 # 0, 1, 2, 3, 4
|
||||
Island14_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island14_Option2 = 0 # 0, 1, 2, 3, 4
|
||||
Island14_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
|
||||
# Group `Island15`
|
||||
Island15_Receive = False
|
||||
Island15_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
|
||||
Island15_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island15_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island15_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
|
||||
Island15_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
|
||||
Island15_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
|
||||
# Group `Island16`
|
||||
Island16_Receive = False
|
||||
Island16_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
|
||||
Island16_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
Island16_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
|
||||
Island16_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
|
||||
|
||||
# Group `GeneralShop`
|
||||
GeneralShop_UseGems = False
|
||||
@ -442,13 +451,13 @@ class GeneratedConfig:
|
||||
CoreShop_Filter = 'Array'
|
||||
|
||||
# Group `ShipyardDr`
|
||||
ShipyardDr_ResearchSeries = 2 # 2, 3, 4
|
||||
ShipyardDr_ResearchSeries = 2 # 2, 3, 4, 5
|
||||
ShipyardDr_ShipIndex = 0 # 0, 1, 2, 3, 4, 5, 6
|
||||
ShipyardDr_BuyAmount = 2
|
||||
ShipyardDr_LastRun = datetime.datetime(2020, 1, 1, 0, 0)
|
||||
|
||||
# Group `Shipyard`
|
||||
Shipyard_ResearchSeries = 1 # 1, 2, 3, 4, 5
|
||||
Shipyard_ResearchSeries = 1 # 1, 2, 3, 4, 5, 6
|
||||
Shipyard_ShipIndex = 0 # 0, 1, 2, 3, 4, 5, 6
|
||||
Shipyard_BuyAmount = 2
|
||||
Shipyard_LastRun = datetime.datetime(2020, 1, 1, 0, 0)
|
||||
|
||||
@ -74,7 +74,7 @@ VALID_SERVER_LIST = {
|
||||
'小王冠行动', '波茨坦公告', '白色方案', '瓦尔基里行动',
|
||||
'曼哈顿计划', '八月风暴', '秋季旅行', '水星行动', '莱茵河卫兵',
|
||||
'北极光计划', '长戟计划', '暴雨行动', '水仙行动', '冬月计划',
|
||||
'长弓计划'
|
||||
'长弓计划', '裁决协议',
|
||||
],
|
||||
'cn_ios': [
|
||||
'夏威夷', '珊瑚海', '中途岛', '铁底湾', '所罗门', '马里亚纳',
|
||||
|
||||
@ -56,28 +56,39 @@ class ConnectionAttr:
|
||||
self.config.DEVICE_OVER_HTTP = self.is_over_http
|
||||
|
||||
@staticmethod
|
||||
def revise_serial(serial):
|
||||
serial = serial.replace(' ', '')
|
||||
def revise_serial(serial: str):
|
||||
"""
|
||||
Tons of fool-proof fixes to handle manual serial input
|
||||
To load a serial:
|
||||
serial = SerialStr.revise_serial(serial)
|
||||
"""
|
||||
serial = serial.strip().replace(' ', '')
|
||||
# 127。0。0。1:5555
|
||||
serial = serial.replace('。', '.').replace(',', '.').replace(',', '.').replace(':', ':')
|
||||
# 127.0.0.1.5555
|
||||
serial = serial.replace('127.0.0.1.', '127.0.0.1:')
|
||||
# Mumu12 5.0 shows double serials, some people may just copy-paste it
|
||||
# 5555,16384 -> replaced to 5555.16384
|
||||
# 5555,16384 (actually "5555.16384" because replace(',', '.'))
|
||||
if '.' in serial:
|
||||
left, _, right = serial.partition('.')
|
||||
if left.startswith('55') and right.startswith('16'):
|
||||
serial = right
|
||||
try:
|
||||
left = int(left)
|
||||
right = int(right)
|
||||
if 5500 < left < 6000 and 16300 < right < 20000:
|
||||
serial = str(right)
|
||||
except ValueError:
|
||||
pass
|
||||
# 16384
|
||||
try:
|
||||
port = int(serial)
|
||||
if 1000 < port < 65536:
|
||||
serial = f'127.0.0.1:{port}'
|
||||
except ValueError:
|
||||
pass
|
||||
if serial.isdigit():
|
||||
try:
|
||||
port = int(serial)
|
||||
if 1000 < port < 65536:
|
||||
serial = f'127.0.0.1:{port}'
|
||||
except ValueError:
|
||||
pass
|
||||
# 夜神模拟器 127.0.0.1:62001
|
||||
# MuMu模拟器12127.0.0.1:16384
|
||||
if '模拟' in serial:
|
||||
import re
|
||||
res = re.search(r'(127\.\d+\.\d+\.\d+:\d+)', serial)
|
||||
if res:
|
||||
serial = res.group(1)
|
||||
|
||||