diff --git a/assets/cn/template/TEMPLATE_SIREN_Vboss_Chariot.gif b/assets/cn/template/TEMPLATE_SIREN_Vboss_Chariot.gif index 0a414523e..2d693b945 100644 Binary files a/assets/cn/template/TEMPLATE_SIREN_Vboss_Chariot.gif and b/assets/cn/template/TEMPLATE_SIREN_Vboss_Chariot.gif differ diff --git a/assets/cn/template/TEMPLATE_SIREN_Vboss_Hermit.gif b/assets/cn/template/TEMPLATE_SIREN_Vboss_Hermit.gif index c162c32dd..be67af507 100644 Binary files a/assets/cn/template/TEMPLATE_SIREN_Vboss_Hermit.gif and b/assets/cn/template/TEMPLATE_SIREN_Vboss_Hermit.gif differ diff --git a/assets/cn/template/TEMPLATE_SIREN_Vboss_Lovers.gif b/assets/cn/template/TEMPLATE_SIREN_Vboss_Lovers.gif index 6f815e516..c5b407980 100644 Binary files a/assets/cn/template/TEMPLATE_SIREN_Vboss_Lovers.gif and b/assets/cn/template/TEMPLATE_SIREN_Vboss_Lovers.gif differ diff --git a/assets/en/template/TEMPLATE_SIREN_Vboss_Chariot.gif b/assets/en/template/TEMPLATE_SIREN_Vboss_Chariot.gif index 0a414523e..2d693b945 100644 Binary files a/assets/en/template/TEMPLATE_SIREN_Vboss_Chariot.gif and b/assets/en/template/TEMPLATE_SIREN_Vboss_Chariot.gif differ diff --git a/assets/en/template/TEMPLATE_SIREN_Vboss_Hermit.gif b/assets/en/template/TEMPLATE_SIREN_Vboss_Hermit.gif index c162c32dd..be67af507 100644 Binary files a/assets/en/template/TEMPLATE_SIREN_Vboss_Hermit.gif and b/assets/en/template/TEMPLATE_SIREN_Vboss_Hermit.gif differ diff --git a/assets/en/template/TEMPLATE_SIREN_Vboss_Lovers.gif b/assets/en/template/TEMPLATE_SIREN_Vboss_Lovers.gif index 6f815e516..c5b407980 100644 Binary files a/assets/en/template/TEMPLATE_SIREN_Vboss_Lovers.gif and b/assets/en/template/TEMPLATE_SIREN_Vboss_Lovers.gif differ diff --git a/assets/jp/template/TEMPLATE_COMBAT_LOADING.png b/assets/jp/template/TEMPLATE_COMBAT_LOADING.png index 9086656f0..2bf0123f5 100644 Binary files a/assets/jp/template/TEMPLATE_COMBAT_LOADING.png and b/assets/jp/template/TEMPLATE_COMBAT_LOADING.png differ diff --git a/assets/jp/template/TEMPLATE_SIREN_Vboss_Chariot.gif b/assets/jp/template/TEMPLATE_SIREN_Vboss_Chariot.gif index 0a414523e..2d693b945 100644 Binary files a/assets/jp/template/TEMPLATE_SIREN_Vboss_Chariot.gif and b/assets/jp/template/TEMPLATE_SIREN_Vboss_Chariot.gif differ diff --git a/assets/jp/template/TEMPLATE_SIREN_Vboss_Hermit.gif b/assets/jp/template/TEMPLATE_SIREN_Vboss_Hermit.gif index c162c32dd..be67af507 100644 Binary files a/assets/jp/template/TEMPLATE_SIREN_Vboss_Hermit.gif and b/assets/jp/template/TEMPLATE_SIREN_Vboss_Hermit.gif differ diff --git a/assets/jp/template/TEMPLATE_SIREN_Vboss_Lovers.gif b/assets/jp/template/TEMPLATE_SIREN_Vboss_Lovers.gif index 6f815e516..c5b407980 100644 Binary files a/assets/jp/template/TEMPLATE_SIREN_Vboss_Lovers.gif and b/assets/jp/template/TEMPLATE_SIREN_Vboss_Lovers.gif differ diff --git a/assets/tw/template/TEMPLATE_SIREN_Vboss_Chariot.gif b/assets/tw/template/TEMPLATE_SIREN_Vboss_Chariot.gif index 0a414523e..2d693b945 100644 Binary files a/assets/tw/template/TEMPLATE_SIREN_Vboss_Chariot.gif and b/assets/tw/template/TEMPLATE_SIREN_Vboss_Chariot.gif differ diff --git a/assets/tw/template/TEMPLATE_SIREN_Vboss_Hermit.gif b/assets/tw/template/TEMPLATE_SIREN_Vboss_Hermit.gif index c162c32dd..be67af507 100644 Binary files a/assets/tw/template/TEMPLATE_SIREN_Vboss_Hermit.gif and b/assets/tw/template/TEMPLATE_SIREN_Vboss_Hermit.gif differ diff --git a/assets/tw/template/TEMPLATE_SIREN_Vboss_Lovers.gif b/assets/tw/template/TEMPLATE_SIREN_Vboss_Lovers.gif index 6f815e516..c5b407980 100644 Binary files a/assets/tw/template/TEMPLATE_SIREN_Vboss_Lovers.gif and b/assets/tw/template/TEMPLATE_SIREN_Vboss_Lovers.gif differ diff --git a/campaign/event_20251218_cn/b1.py b/campaign/event_20251218_cn/b1.py index cccf4f592..de4f7b899 100644 --- a/campaign/event_20251218_cn/b1.py +++ b/campaign/event_20251218_cn/b1.py @@ -5,7 +5,7 @@ from module.logger import logger MAP = CampaignMap('B1') MAP.shape = 'J8' -MAP.camera_data = ['D2', 'D6', 'G2', 'G6'] +MAP.camera_data = ['D3', 'D6', 'G3', 'G6'] MAP.camera_data_spawn_point = ['G2'] MAP.map_data = """ ++ -- -- -- -- -- ++ -- SP -- @@ -75,12 +75,12 @@ class Config: } HOMO_EDGE_COLOR_RANGE = (0, 17) MAP_WALK_USE_CURRENT_FLEET = True - MAP_SWIPE_MULTIPLY = (1.232, 1.255) - MAP_SWIPE_MULTIPLY_MINITOUCH = (1.191, 1.213) - MAP_SWIPE_MULTIPLY_MAATOUCH = (1.156, 1.177) STAGE_INCREASE_CUSTOM = [ 'A1 > A2 > A3 > B1 > B2 > B3 > C1 > C2 > C3 > D1 > D2 > D3', ] + MAP_SWIPE_MULTIPLY = (1.217, 1.240) + MAP_SWIPE_MULTIPLY_MINITOUCH = (1.177, 1.199) + MAP_SWIPE_MULTIPLY_MAATOUCH = (1.143, 1.163) class Campaign(CampaignBase): diff --git a/campaign/event_20251218_cn/b2.py b/campaign/event_20251218_cn/b2.py index 5d51d0a60..10a60a465 100644 --- a/campaign/event_20251218_cn/b2.py +++ b/campaign/event_20251218_cn/b2.py @@ -6,7 +6,7 @@ from .b1 import Config as ConfigBase MAP = CampaignMap('B2') MAP.shape = 'J8' -MAP.camera_data = ['E2', 'E6', 'F2', 'F6'] +MAP.camera_data = ['E3', 'E6', 'F3', 'F6'] MAP.camera_data_spawn_point = ['E6'] MAP.map_data = """ -- -- -- -- -- ++ ME ++ -- -- diff --git a/campaign/event_20251218_cn/c1.py b/campaign/event_20251218_cn/c1.py index 337e646cb..709b4ddb9 100644 --- a/campaign/event_20251218_cn/c1.py +++ b/campaign/event_20251218_cn/c1.py @@ -5,7 +5,7 @@ from module.logger import logger MAP = CampaignMap('C1') MAP.shape = 'J8' -MAP.camera_data = ['D2', 'D6', 'G2', 'G6'] +MAP.camera_data = ['D3', 'D6', 'G3', 'G6'] MAP.camera_data_spawn_point = ['G2'] MAP.map_data = """ ++ -- -- -- -- -- ++ -- SP -- diff --git a/campaign/event_20251218_cn/c2.py b/campaign/event_20251218_cn/c2.py index 10917f2c1..87e2ebf10 100644 --- a/campaign/event_20251218_cn/c2.py +++ b/campaign/event_20251218_cn/c2.py @@ -6,7 +6,7 @@ from .c1 import Config as ConfigBase MAP = CampaignMap('C2') MAP.shape = 'J8' -MAP.camera_data = ['E2', 'E6', 'F2', 'F6'] +MAP.camera_data = ['E3', 'E6', 'F3', 'F6'] MAP.camera_data_spawn_point = ['E6'] MAP.map_data = """ -- -- -- -- -- ++ ME ++ -- -- diff --git a/campaign/event_20251218_cn/d1.py b/campaign/event_20251218_cn/d1.py index 7f9c49066..aef2bb902 100644 --- a/campaign/event_20251218_cn/d1.py +++ b/campaign/event_20251218_cn/d1.py @@ -5,7 +5,7 @@ from module.logger import logger MAP = CampaignMap('D1') MAP.shape = 'J8' -MAP.camera_data = ['D2', 'D6', 'G2', 'G6'] +MAP.camera_data = ['D3', 'D6', 'G3', 'G6'] MAP.camera_data_spawn_point = ['G2'] MAP.map_data = """ ++ -- -- -- -- -- ++ -- SP -- @@ -76,12 +76,12 @@ class Config: } HOMO_EDGE_COLOR_RANGE = (0, 17) MAP_WALK_USE_CURRENT_FLEET = True - MAP_SWIPE_MULTIPLY = (1.232, 1.255) - MAP_SWIPE_MULTIPLY_MINITOUCH = (1.191, 1.213) - MAP_SWIPE_MULTIPLY_MAATOUCH = (1.156, 1.177) STAGE_INCREASE_CUSTOM = [ 'A1 > A2 > A3 > B1 > B2 > B3 > C1 > C2 > C3 > D1 > D2 > D3', ] + MAP_SWIPE_MULTIPLY = (1.217, 1.240) + MAP_SWIPE_MULTIPLY_MINITOUCH = (1.177, 1.199) + MAP_SWIPE_MULTIPLY_MAATOUCH = (1.143, 1.163) class Campaign(CampaignBase): diff --git a/campaign/event_20251218_cn/d2.py b/campaign/event_20251218_cn/d2.py index 5afb23ffd..ddf96d6e7 100644 --- a/campaign/event_20251218_cn/d2.py +++ b/campaign/event_20251218_cn/d2.py @@ -6,7 +6,7 @@ from .d1 import Config as ConfigBase MAP = CampaignMap('D2') MAP.shape = 'J8' -MAP.camera_data = ['E2', 'E6', 'F2', 'F6'] +MAP.camera_data = ['E3', 'E6', 'F3', 'F6'] MAP.camera_data_spawn_point = ['E6'] MAP.map_data = """ -- -- -- -- -- ++ ME ++ -- -- diff --git a/campaign/event_20251218_cn/d3.py b/campaign/event_20251218_cn/d3.py index f57e8cf7f..107d0066e 100644 --- a/campaign/event_20251218_cn/d3.py +++ b/campaign/event_20251218_cn/d3.py @@ -56,7 +56,7 @@ A10, B10, C10, D10, E10, F10, G10, H10, I10, J10, K10, \ class Config(ConfigBase): # ===== Start of generated config ===== - MAP_SIREN_TEMPLATE = ['Vboss_Star', 'Vboss_Chariot'] + MAP_SIREN_TEMPLATE = ['Vboss_Lovers', 'Vboss_Chariot'] MOVABLE_ENEMY_TURN = (2,) MAP_HAS_SIREN = True MAP_HAS_MOVABLE_ENEMY = True diff --git a/campaign/event_20251218_cn/sp.py b/campaign/event_20251218_cn/sp.py new file mode 100644 index 000000000..f74e5236f --- /dev/null +++ b/campaign/event_20251218_cn/sp.py @@ -0,0 +1,111 @@ +from module.campaign.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('SP') +MAP.shape = 'I8' +MAP.camera_data = ['D3', 'D6', 'F3', 'F6'] +MAP.camera_data_spawn_point = ['F2'] +MAP.map_data = """ + ++ ++ ++ -- -- -- -- SP -- + -- ME -- -- -- MS -- -- SP + -- -- ME ++ -- -- MS -- -- + ME -- -- -- ME __ -- MS -- + -- ME -- ME ++ -- ++ ++ ME + ++ -- -- -- -- -- ++ ++ -- + -- MB -- ++ ME -- ME -- -- + -- -- -- ++ -- ME ++ ++ ++ +""" +MAP.weight_data = """ + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 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': 10, 'siren': 3}, + {'battle': 1}, + {'battle': 2}, + {'battle': 3}, + {'battle': 4}, + {'battle': 5}, + {'battle': 6}, + {'battle': 7, '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 = ['Vboss_Hermit', 'Vboss_Lovers', 'Vboss_Chariot'] + MOVABLE_ENEMY_TURN = (2,) + MAP_HAS_SIREN = True + MAP_HAS_MOVABLE_ENEMY = True + MAP_HAS_MAP_STORY = False + MAP_HAS_FLEET_STEP = True + MAP_HAS_AMBUSH = False + MAP_HAS_MYSTERY = False + STAR_REQUIRE_1 = 0 + STAR_REQUIRE_2 = 0 + STAR_REQUIRE_3 = 0 + # ===== End of generated config ===== + + MAP_CHAPTER_SWITCH_20241219 = True + STAGE_ENTRANCE = ['half', '20240725'] + STAGE_INCREASE_AB = True + INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { + 'height': (80, 255 - 17), + 'width': (0.9, 10), + 'prominence': 10, + 'distance': 35, + } + EDGE_LINES_FIND_PEAKS_PARAMETERS = { + 'height': (255 - 17, 255), + 'prominence': 10, + 'distance': 50, + 'wlen': 1000 + } + HOMO_EDGE_COLOR_RANGE = (0, 17) + MAP_WALK_USE_CURRENT_FLEET = True + MAP_SWIPE_MULTIPLY = (1.180, 1.202) + MAP_SWIPE_MULTIPLY_MINITOUCH = (1.141, 1.162) + MAP_SWIPE_MULTIPLY_MAATOUCH = (1.108, 1.128) + MAP_ENSURE_EDGE_INSIGHT_CORNER = 'bottom' + MAP_IS_ONE_TIME_STAGE = True + + +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=2): + 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_7(self): + return self.fleet_boss.clear_boss()