From 432c719f51d157b79d9a8795dbd6bee76618e73e Mon Sep 17 00:00:00 2001 From: YQY <91514918+TerryOrin@users.noreply.github.com> Date: Fri, 17 Apr 2026 23:35:57 +0800 Subject: [PATCH 01/10] Fix: Event 20220915 campaign (#5607) Co-authored-by: YQY <91514918+5A8G0001@users.noreply.github.com> --- campaign/event_20220915_cn/campaign_base.py | 2 +- campaign/war_archives_20220915_cn/campaign_base.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/campaign/event_20220915_cn/campaign_base.py b/campaign/event_20220915_cn/campaign_base.py index 61e64cafb..0bfa458fa 100644 --- a/campaign/event_20220915_cn/campaign_base.py +++ b/campaign/event_20220915_cn/campaign_base.py @@ -6,7 +6,7 @@ from module.map.assets import SWITCH_OVER class CampaignBase(CampaignBase_): def enemy_searching_appear(self): - if not self.appear(SWITCH_OVER, offset=(20, 20)): + if not self.is_in_map(): return False return red_overlay_transparency( diff --git a/campaign/war_archives_20220915_cn/campaign_base.py b/campaign/war_archives_20220915_cn/campaign_base.py index 1ca22192e..bd651f5a0 100644 --- a/campaign/war_archives_20220915_cn/campaign_base.py +++ b/campaign/war_archives_20220915_cn/campaign_base.py @@ -6,7 +6,7 @@ from module.map.assets import SWITCH_OVER class CampaignBase(CampaignBase_): def enemy_searching_appear(self): - if not self.appear(SWITCH_OVER, offset=(20, 20)): + if not self.is_in_map(): return False return red_overlay_transparency( From ba568b50c0b112ad37cf505e2c052451b062f67f Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Fri, 17 Apr 2026 23:44:24 +0800 Subject: [PATCH 02/10] Upd: [TW] Event entrance of Violet Tempest Blooming Lycoris (fixed #5606) --- campaign/Readme.md | 1 + module/config/argument/args.json | 32 ++++++++++++++++++++++++-------- module/config/i18n/zh-TW.json | 2 +- 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/campaign/Readme.md b/campaign/Readme.md index a1b0a33de..2b5d1c16d 100644 --- a/campaign/Readme.md +++ b/campaign/Readme.md @@ -286,3 +286,4 @@ To add a new event, add a new row in here, and run `python -m module.config.conf | 20260319 | event 20220728 cn | Aquilifer's Ballade | - | - | - | 復刻雄鷹的敘事歌 | | 20260326 | event 20260326 cn | The Vagabond’s Recruitment Plan | 漫游者招募计划 | The Vagabond’s Recruitment Plan | ワンダラー募集計画 | - | | 20260402 | event 20260326 cn | The Vagabond’s Recruitment Plan | - | - | - | 漫遊者招募計劃 | +| 20260416 | event 20220915 cn | Violet Tempest Blooming Lycoris | - | - | - | 復刻紫絳槿嵐 | diff --git a/module/config/argument/args.json b/module/config/argument/args.json index e7641f2d1..dd7808213 100644 --- a/module/config/argument/args.json +++ b/module/config/argument/args.json @@ -1642,6 +1642,7 @@ "type": "select", "value": "campaign_main", "option": [ + "event_20220915_cn", "event_20260326_cn" ], "display": "hide", @@ -1655,9 +1656,10 @@ "event_20260326_cn" ], "option_tw": [ - "event_20260326_cn" + "event_20220915_cn" ], "option_bold": [ + "event_20220915_cn", "event_20260326_cn" ] }, @@ -1923,6 +1925,7 @@ "type": "state", "value": "campaign_main", "option": [ + "event_20220915_cn", "event_20260326_cn" ], "option_cn": [ @@ -1935,9 +1938,10 @@ "event_20260326_cn" ], "option_tw": [ - "event_20260326_cn" + "event_20220915_cn" ], "option_bold": [ + "event_20220915_cn", "event_20260326_cn" ] }, @@ -2318,6 +2322,7 @@ "type": "state", "value": "campaign_main", "option": [ + "event_20220915_cn", "event_20260326_cn" ], "option_cn": [ @@ -2330,9 +2335,10 @@ "event_20260326_cn" ], "option_tw": [ - "event_20260326_cn" + "event_20220915_cn" ], "option_bold": [ + "event_20220915_cn", "event_20260326_cn" ] }, @@ -4043,6 +4049,7 @@ "type": "state", "value": "campaign_main", "option": [ + "event_20220915_cn", "event_20260326_cn" ], "option_cn": [ @@ -4055,9 +4062,10 @@ "event_20260326_cn" ], "option_tw": [ - "event_20260326_cn" + "event_20220915_cn" ], "option_bold": [ + "event_20220915_cn", "event_20260326_cn" ] }, @@ -4455,6 +4463,7 @@ "type": "state", "value": "campaign_main", "option": [ + "event_20220915_cn", "event_20260326_cn" ], "option_cn": [ @@ -4467,9 +4476,10 @@ "event_20260326_cn" ], "option_tw": [ - "event_20260326_cn" + "event_20220915_cn" ], "option_bold": [ + "event_20220915_cn", "event_20260326_cn" ] }, @@ -4867,6 +4877,7 @@ "type": "state", "value": "campaign_main", "option": [ + "event_20220915_cn", "event_20260326_cn" ], "option_cn": [ @@ -4879,9 +4890,10 @@ "event_20260326_cn" ], "option_tw": [ - "event_20260326_cn" + "event_20220915_cn" ], "option_bold": [ + "event_20220915_cn", "event_20260326_cn" ] }, @@ -5279,6 +5291,7 @@ "type": "state", "value": "campaign_main", "option": [ + "event_20220915_cn", "event_20260326_cn" ], "option_cn": [ @@ -5291,9 +5304,10 @@ "event_20260326_cn" ], "option_tw": [ - "event_20260326_cn" + "event_20220915_cn" ], "option_bold": [ + "event_20220915_cn", "event_20260326_cn" ] }, @@ -5681,6 +5695,7 @@ "type": "state", "value": "campaign_main", "option": [ + "event_20220915_cn", "event_20260326_cn" ], "option_cn": [ @@ -5693,9 +5708,10 @@ "event_20260326_cn" ], "option_tw": [ - "event_20260326_cn" + "event_20220915_cn" ], "option_bold": [ + "event_20220915_cn", "event_20260326_cn" ] }, diff --git a/module/config/i18n/zh-TW.json b/module/config/i18n/zh-TW.json index 32ec87fac..24ae80edc 100644 --- a/module/config/i18n/zh-TW.json +++ b/module/config/i18n/zh-TW.json @@ -738,7 +738,7 @@ "event_20220526_cn": "泠誓光庭", "event_20220728_cn": "復刻雄鷹的敘事歌", "event_20220818_cn": "遠匯點作戰", - "event_20220915_cn": "紫絳槿嵐", + "event_20220915_cn": "復刻紫絳槿嵐", "event_20221124_cn": "復刻鍊金術士與秘密遺跡群島", "event_20221222_cn": "定向折疊", "event_20230223_cn": "湮燼塵墟", From d1e3653c4ae5b85ea7a90aae3c4aa4103c320aff Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Fri, 17 Apr 2026 23:59:02 +0800 Subject: [PATCH 03/10] Fix: [CN] Skip user agreement --- module/handler/login.py | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/module/handler/login.py b/module/handler/login.py index f5139ac94..a41752177 100644 --- a/module/handler/login.py +++ b/module/handler/login.py @@ -8,7 +8,7 @@ from uiautomator2.xpath import XPath, XPathSelector import module.config.server as server from module.base.timer import Timer -from module.base.utils import color_similarity_2d, crop, random_rectangle_point +from module.base.utils import color_similarity_2d, crop from module.handler.assets import * from module.logger import logger from module.map.assets import * @@ -106,26 +106,29 @@ class LoginHandler(UI): if not self._user_agreement_timer.reached(): return False - confirm = self.image_color_button( + right = self.image_color_button( area=(640, 360, 1280, 720), color=(78, 189, 234), color_threshold=245, encourage=25, name='AGREEMENT_CONFIRM') - if confirm is None: + if right is None: return False - scroll = self.image_color_button( - area=(640, 0, 1280, 720), color=(182, 189, 202), - color_threshold=245, encourage=5, name='AGREEMENT_SCROLL' - ) - if scroll is not None: + # 2026.04.17 No scroll anymore, just bare swipe before clicking confirm + # if having blue button at right half of screen, but missing in left, it's a confirm button + # if having both, it's a blue button at middle confirming login + left = self.image_color_button( + area=(0, 360, 640, 720), color=(78, 189, 234), + color_threshold=245, encourage=25, name='AGREEMENT_CONFIRM') + if left is None: # User agreement - p1 = random_rectangle_point(scroll.button) - p2 = random_rectangle_point(scroll.move((0, 350)).button) - self.device.swipe(p1, p2, name='AGREEMENT_SCROLL') - self.device.click(confirm) + # just somewhere at the middle + box = (350, 230, 920, 430) + self.device.swipe_vector((0, -150), box, name='AGREEMENT_SCROLL') + self.device.swipe_vector((0, -150), box, name='AGREEMENT_SCROLL') + self.device.click(right) self._user_agreement_timer.reset() return True else: # User login - self.device.click(confirm) + self.device.click(right) self._user_agreement_timer.reset() return True From 31efe2a054eca81c40470e46dfb2b237e2281ab0 Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Sat, 18 Apr 2026 00:18:14 +0800 Subject: [PATCH 04/10] =?UTF-8?q?Add:=20Event=20entrance=20of=20Vacation?= =?UTF-8?q?=20Lane=20=E2=80=93=20Beachside=20Brilliance=20(event=5F2026041?= =?UTF-8?q?7=5Fcn)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- campaign/Readme.md | 1 + module/base/button.py | 3 +- module/config/argument/args.json | 80 ++++++++++++++++---------------- module/config/i18n/en-US.json | 1 + module/config/i18n/ja-JP.json | 1 + module/config/i18n/zh-CN.json | 1 + module/config/i18n/zh-TW.json | 1 + 7 files changed, 47 insertions(+), 41 deletions(-) diff --git a/campaign/Readme.md b/campaign/Readme.md index 2b5d1c16d..133585698 100644 --- a/campaign/Readme.md +++ b/campaign/Readme.md @@ -287,3 +287,4 @@ To add a new event, add a new row in here, and run `python -m module.config.conf | 20260326 | event 20260326 cn | The Vagabond’s Recruitment Plan | 漫游者招募计划 | The Vagabond’s Recruitment Plan | ワンダラー募集計画 | - | | 20260402 | event 20260326 cn | The Vagabond’s Recruitment Plan | - | - | - | 漫遊者招募計劃 | | 20260416 | event 20220915 cn | Violet Tempest Blooming Lycoris | - | - | - | 復刻紫絳槿嵐 | +| 20260417 | event 20260417 cn | Vacation Lane – Beachside Brilliance | 假日航线闪耀海滨 | Vacation Lane – Beachside Brilliance | バケーションレーン・きらめく砂浜 | - | diff --git a/module/base/button.py b/module/base/button.py index eaf6ff62b..a24ed4ba3 100644 --- a/module/base/button.py +++ b/module/base/button.py @@ -1,13 +1,13 @@ import os import traceback -import imageio from PIL import ImageDraw from module.base.decorator import cached_property from module.base.resource import Resource from module.base.utils import * from module.config.server import VALID_SERVER +from module.logger import logger class Button(Resource): @@ -153,6 +153,7 @@ class Button(Resource): if not self._match_init: if self.is_gif: self.image = [] + import imageio for image in imageio.mimread(self.file): image = image[:, :, :3].copy() if len(image.shape) == 3 else image image = crop(image, self.area) diff --git a/module/config/argument/args.json b/module/config/argument/args.json index dd7808213..5fae5286f 100644 --- a/module/config/argument/args.json +++ b/module/config/argument/args.json @@ -1643,24 +1643,24 @@ "value": "campaign_main", "option": [ "event_20220915_cn", - "event_20260326_cn" + "event_20260417_cn" ], "display": "hide", "option_cn": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_en": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_jp": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_tw": [ "event_20220915_cn" ], "option_bold": [ "event_20220915_cn", - "event_20260326_cn" + "event_20260417_cn" ] }, "Mode": { @@ -1926,23 +1926,23 @@ "value": "campaign_main", "option": [ "event_20220915_cn", - "event_20260326_cn" + "event_20260417_cn" ], "option_cn": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_en": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_jp": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_tw": [ "event_20220915_cn" ], "option_bold": [ "event_20220915_cn", - "event_20260326_cn" + "event_20260417_cn" ] }, "Mode": { @@ -2323,23 +2323,23 @@ "value": "campaign_main", "option": [ "event_20220915_cn", - "event_20260326_cn" + "event_20260417_cn" ], "option_cn": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_en": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_jp": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_tw": [ "event_20220915_cn" ], "option_bold": [ "event_20220915_cn", - "event_20260326_cn" + "event_20260417_cn" ] }, "Mode": { @@ -4050,23 +4050,23 @@ "value": "campaign_main", "option": [ "event_20220915_cn", - "event_20260326_cn" + "event_20260417_cn" ], "option_cn": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_en": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_jp": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_tw": [ "event_20220915_cn" ], "option_bold": [ "event_20220915_cn", - "event_20260326_cn" + "event_20260417_cn" ] }, "Mode": { @@ -4464,23 +4464,23 @@ "value": "campaign_main", "option": [ "event_20220915_cn", - "event_20260326_cn" + "event_20260417_cn" ], "option_cn": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_en": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_jp": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_tw": [ "event_20220915_cn" ], "option_bold": [ "event_20220915_cn", - "event_20260326_cn" + "event_20260417_cn" ] }, "Mode": { @@ -4878,23 +4878,23 @@ "value": "campaign_main", "option": [ "event_20220915_cn", - "event_20260326_cn" + "event_20260417_cn" ], "option_cn": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_en": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_jp": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_tw": [ "event_20220915_cn" ], "option_bold": [ "event_20220915_cn", - "event_20260326_cn" + "event_20260417_cn" ] }, "Mode": { @@ -5292,23 +5292,23 @@ "value": "campaign_main", "option": [ "event_20220915_cn", - "event_20260326_cn" + "event_20260417_cn" ], "option_cn": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_en": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_jp": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_tw": [ "event_20220915_cn" ], "option_bold": [ "event_20220915_cn", - "event_20260326_cn" + "event_20260417_cn" ] }, "Mode": { @@ -5696,23 +5696,23 @@ "value": "campaign_main", "option": [ "event_20220915_cn", - "event_20260326_cn" + "event_20260417_cn" ], "option_cn": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_en": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_jp": [ - "event_20260326_cn" + "event_20260417_cn" ], "option_tw": [ "event_20220915_cn" ], "option_bold": [ "event_20220915_cn", - "event_20260326_cn" + "event_20260417_cn" ] }, "Mode": { diff --git a/module/config/i18n/en-US.json b/module/config/i18n/en-US.json index 5b01b62cd..93c58789c 100644 --- a/module/config/i18n/en-US.json +++ b/module/config/i18n/en-US.json @@ -769,6 +769,7 @@ "event_20251218_cn": "A Note Through the Firmament", "event_20260226_cn": "Springtide Inn Online", "event_20260326_cn": "The Vagabond’s Recruitment Plan", + "event_20260417_cn": "Vacation Lane – Beachside Brilliance", "raid_20200624": "Air Raid Drills with Essex Rerun", "raid_20210708": "Cross Wave rerun", "raid_20220127": "Mystery Investigation", diff --git a/module/config/i18n/ja-JP.json b/module/config/i18n/ja-JP.json index 2005c4584..acf88f7af 100644 --- a/module/config/i18n/ja-JP.json +++ b/module/config/i18n/ja-JP.json @@ -769,6 +769,7 @@ "event_20251218_cn": "天穹に響く音謡", "event_20260226_cn": "春色旅籠Online", "event_20260326_cn": "ワンダラー募集計画", + "event_20260417_cn": "バケーションレーン・きらめく砂浜", "raid_20200624": "特別演習超空強襲波(復刻)", "raid_20210708": "交錯する新たな波 (復刻)", "raid_20220127": "秘密事件調査", diff --git a/module/config/i18n/zh-CN.json b/module/config/i18n/zh-CN.json index f76b0b2f8..a38fe95d5 100644 --- a/module/config/i18n/zh-CN.json +++ b/module/config/i18n/zh-CN.json @@ -769,6 +769,7 @@ "event_20251218_cn": "响彻于天穹之音", "event_20260226_cn": "春满客栈Online", "event_20260326_cn": "漫游者招募计划", + "event_20260417_cn": "假日航线闪耀海滨", "raid_20200624": "复刻特别演习埃塞克斯级", "raid_20210708": "复刻穿越彼方的水线", "raid_20220127": "演习神秘事件调查", diff --git a/module/config/i18n/zh-TW.json b/module/config/i18n/zh-TW.json index 24ae80edc..b6879cfb3 100644 --- a/module/config/i18n/zh-TW.json +++ b/module/config/i18n/zh-TW.json @@ -769,6 +769,7 @@ "event_20251218_cn": "響徹於天穹之音", "event_20260226_cn": "春滿客棧Online", "event_20260326_cn": "漫遊者招募計劃", + "event_20260417_cn": "Vacation Lane – Beachside Brilliance", "raid_20200624": "特別演習埃塞克斯級(復刻)", "raid_20210708": "復刻穿越彼方的水線", "raid_20220127": "演習神秘事件調查", From 8ce450a42b6f19cb74561e9fabd84f99746d011d Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Sat, 18 Apr 2026 00:57:22 +0800 Subject: [PATCH 05/10] Add: MAP_CHAPTER_SWITCH_20241219_SPEX --- module/campaign/campaign_ui.py | 30 +++++++++++++++++++++++++++++- module/config/config_manual.py | 1 + module/ui/switch.py | 14 ++++++++++++-- 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/module/campaign/campaign_ui.py b/module/campaign/campaign_ui.py index f2d2bf4e4..d55287106 100644 --- a/module/campaign/campaign_ui.py +++ b/module/campaign/campaign_ui.py @@ -1,4 +1,5 @@ from module.base.timer import Timer +from module.base.utils import area_offset from module.campaign.assets import * from module.campaign.campaign_event import CampaignEvent from module.campaign.campaign_ocr import CampaignOcr @@ -29,7 +30,7 @@ MODE_SWITCH_2.add_state('ex', SWITCH_2_EX) MODE_SWITCH_20241219 = ModeSwitch('Mode_switch_20241219', is_selector=True, offset=(30, 30)) MODE_SWITCH_20241219.add_state('combat', SWITCH_20241219_COMBAT) MODE_SWITCH_20241219.add_state('story', SWITCH_20241219_STORY) -ASIDE_SWITCH_20241219 = ModeSwitch('Aside_switch_20241219', is_selector=True, offset=(30, 30)) +ASIDE_SWITCH_20241219 = ModeSwitch('Aside_switch_20241219', is_selector=True, offset=(20, 20)) ASIDE_SWITCH_20241219.add_state('part1', CHAPTER_20241219_PART1) ASIDE_SWITCH_20241219.add_state('part2', CHAPTER_20241219_PART2) ASIDE_SWITCH_20241219.add_state('sp', CHAPTER_20241219_SP) @@ -321,6 +322,33 @@ class CampaignUI(MapOperation, CampaignEvent, CampaignOcr): self.campaign_ensure_aside_20241219('sp') self.campaign_ensure_chapter(chapter) return True + if self.config.MAP_CHAPTER_SWITCH_20241219_SPEX: + if self._campaign_name_is_hard(f'{chapter}{stage}'): + self.config.override(Campaign_Mode='hard') + # normal, sp, ex + try: + ASIDE_SWITCH_20241219.offset = area_offset((-20, -20, 20, 20), (0, -37)) + if chapter in ['sp', 't', 'ht']: + self.ui_goto_event() + self.campaign_ensure_mode_20241219('combat') + # normal is on the position of part2 + self.campaign_ensure_aside_20241219('part2') + self.campaign_ensure_chapter(chapter) + return True + if chapter in ['ex_sp']: + self.ui_goto_event() + self.campaign_ensure_mode_20241219('combat') + self.campaign_ensure_aside_20241219('sp') + self.campaign_ensure_chapter(chapter) + return True + if chapter in ['ex_sp']: + self.ui_goto_event() + self.campaign_ensure_mode_20241219('combat') + self.campaign_ensure_aside_20241219('sp') + self.campaign_ensure_chapter(chapter) + return True + finally: + ASIDE_SWITCH_20241219.offset = (20, 20) return False def campaign_set_chapter(self, name, mode='normal'): diff --git a/module/config/config_manual.py b/module/config/config_manual.py index f928f67f2..d8045f7fc 100644 --- a/module/config/config_manual.py +++ b/module/config/config_manual.py @@ -118,6 +118,7 @@ class ManualConfig: # Events from 20240725 to 20241219 introduced new chapter switches MAP_CHAPTER_SWITCH_20241219 = False MAP_CHAPTER_SWITCH_20241219_SP = False + MAP_CHAPTER_SWITCH_20241219_SPEX = False # Since event_20241219_cn chapter B unlocks event startup # which means chapter AB are continuous STAGE_INCREASE_AB = False diff --git a/module/ui/switch.py b/module/ui/switch.py index 1ce601ae4..98aa5a04f 100644 --- a/module/ui/switch.py +++ b/module/ui/switch.py @@ -29,7 +29,7 @@ class Switch: """ self.name = name self.is_selector = is_selector - self.offset = offset + self._offset = offset self.state_list = [] self.set_unknown_timer = Timer(5, count=10) self.set_click_timer = Timer(1, count=2) @@ -49,9 +49,19 @@ class Switch: 'state': state, 'check_button': check_button, 'click_button': click_button if click_button is not None else check_button, - 'offset': offset if offset else self.offset + 'offset': offset if offset else self._offset }) + @property + def offset(self): + return self._offset + + @offset.setter + def offset(self, value): + self._offset = value + for data in self.state_list: + data['offset'] = value + def appear(self, main): """ Args: From 45faa7c46d42904bfacf2902b2d42bf9fab62f33 Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Sat, 18 Apr 2026 01:12:24 +0800 Subject: [PATCH 06/10] Add: Chapter SP --- .../cn/template/TEMPLATE_SIREN_ArkRoyalG.gif | Bin 0 -> 2219 bytes .../cn/template/TEMPLATE_SIREN_Bremerton.gif | Bin 0 -> 2215 bytes .../cn/template/TEMPLATE_SIREN_Cheshire.gif | Bin 0 -> 5462 bytes assets/cn/template/TEMPLATE_SIREN_FuShunG.gif | Bin 0 -> 5473 bytes .../cn/template/TEMPLATE_SIREN_Lexington2.gif | Bin 0 -> 3311 bytes .../cn/template/TEMPLATE_SIREN_Nakhimov.gif | Bin 0 -> 6537 bytes .../cn/template/TEMPLATE_SIREN_Raffaello.gif | Bin 0 -> 4409 bytes .../cn/template/TEMPLATE_SIREN_Yorktown2.gif | Bin 0 -> 2191 bytes .../en/template/TEMPLATE_SIREN_ArkRoyalG.gif | Bin 0 -> 2219 bytes .../en/template/TEMPLATE_SIREN_Bremerton.gif | Bin 0 -> 2215 bytes .../en/template/TEMPLATE_SIREN_Cheshire.gif | Bin 0 -> 5462 bytes assets/en/template/TEMPLATE_SIREN_FuShunG.gif | Bin 0 -> 5473 bytes .../en/template/TEMPLATE_SIREN_Lexington2.gif | Bin 0 -> 3311 bytes .../en/template/TEMPLATE_SIREN_Nakhimov.gif | Bin 0 -> 6537 bytes .../en/template/TEMPLATE_SIREN_Raffaello.gif | Bin 0 -> 4409 bytes .../en/template/TEMPLATE_SIREN_Yorktown2.gif | Bin 0 -> 2191 bytes .../jp/template/TEMPLATE_SIREN_ArkRoyalG.gif | Bin 0 -> 2219 bytes .../jp/template/TEMPLATE_SIREN_Bremerton.gif | Bin 0 -> 2215 bytes .../jp/template/TEMPLATE_SIREN_Cheshire.gif | Bin 0 -> 5462 bytes assets/jp/template/TEMPLATE_SIREN_FuShunG.gif | Bin 0 -> 5473 bytes .../jp/template/TEMPLATE_SIREN_Lexington2.gif | Bin 0 -> 3311 bytes .../jp/template/TEMPLATE_SIREN_Nakhimov.gif | Bin 0 -> 6537 bytes .../jp/template/TEMPLATE_SIREN_Raffaello.gif | Bin 0 -> 4409 bytes .../jp/template/TEMPLATE_SIREN_Yorktown2.gif | Bin 0 -> 2191 bytes .../tw/template/TEMPLATE_SIREN_ArkRoyalG.gif | Bin 0 -> 2219 bytes .../tw/template/TEMPLATE_SIREN_Bremerton.gif | Bin 0 -> 2215 bytes .../tw/template/TEMPLATE_SIREN_Cheshire.gif | Bin 0 -> 5462 bytes assets/tw/template/TEMPLATE_SIREN_FuShunG.gif | Bin 0 -> 5473 bytes .../tw/template/TEMPLATE_SIREN_Lexington2.gif | Bin 0 -> 3311 bytes .../tw/template/TEMPLATE_SIREN_Nakhimov.gif | Bin 0 -> 6537 bytes .../tw/template/TEMPLATE_SIREN_Raffaello.gif | Bin 0 -> 4409 bytes .../tw/template/TEMPLATE_SIREN_Yorktown2.gif | Bin 0 -> 2191 bytes campaign/event_20260417_cn/campaign_base.py | 38 ++++++ campaign/event_20260417_cn/sp.py | 114 ++++++++++++++++++ campaign/event_20260417_cn/sp1.py | 91 ++++++++++++++ campaign/event_20260417_cn/sp2.py | 79 ++++++++++++ campaign/event_20260417_cn/sp3.py | 91 ++++++++++++++ campaign/event_20260417_cn/sp4.py | 80 ++++++++++++ dev_tools/map_extractor.py | 14 ++- module/campaign/run.py | 3 + module/template/assets.py | 6 + 41 files changed, 514 insertions(+), 2 deletions(-) create mode 100644 assets/cn/template/TEMPLATE_SIREN_ArkRoyalG.gif create mode 100644 assets/cn/template/TEMPLATE_SIREN_Bremerton.gif create mode 100644 assets/cn/template/TEMPLATE_SIREN_Cheshire.gif create mode 100644 assets/cn/template/TEMPLATE_SIREN_FuShunG.gif create mode 100644 assets/cn/template/TEMPLATE_SIREN_Lexington2.gif create mode 100644 assets/cn/template/TEMPLATE_SIREN_Nakhimov.gif create mode 100644 assets/cn/template/TEMPLATE_SIREN_Raffaello.gif create mode 100644 assets/cn/template/TEMPLATE_SIREN_Yorktown2.gif create mode 100644 assets/en/template/TEMPLATE_SIREN_ArkRoyalG.gif create mode 100644 assets/en/template/TEMPLATE_SIREN_Bremerton.gif create mode 100644 assets/en/template/TEMPLATE_SIREN_Cheshire.gif create mode 100644 assets/en/template/TEMPLATE_SIREN_FuShunG.gif create mode 100644 assets/en/template/TEMPLATE_SIREN_Lexington2.gif create mode 100644 assets/en/template/TEMPLATE_SIREN_Nakhimov.gif create mode 100644 assets/en/template/TEMPLATE_SIREN_Raffaello.gif create mode 100644 assets/en/template/TEMPLATE_SIREN_Yorktown2.gif create mode 100644 assets/jp/template/TEMPLATE_SIREN_ArkRoyalG.gif create mode 100644 assets/jp/template/TEMPLATE_SIREN_Bremerton.gif create mode 100644 assets/jp/template/TEMPLATE_SIREN_Cheshire.gif create mode 100644 assets/jp/template/TEMPLATE_SIREN_FuShunG.gif create mode 100644 assets/jp/template/TEMPLATE_SIREN_Lexington2.gif create mode 100644 assets/jp/template/TEMPLATE_SIREN_Nakhimov.gif create mode 100644 assets/jp/template/TEMPLATE_SIREN_Raffaello.gif create mode 100644 assets/jp/template/TEMPLATE_SIREN_Yorktown2.gif create mode 100644 assets/tw/template/TEMPLATE_SIREN_ArkRoyalG.gif create mode 100644 assets/tw/template/TEMPLATE_SIREN_Bremerton.gif create mode 100644 assets/tw/template/TEMPLATE_SIREN_Cheshire.gif create mode 100644 assets/tw/template/TEMPLATE_SIREN_FuShunG.gif create mode 100644 assets/tw/template/TEMPLATE_SIREN_Lexington2.gif create mode 100644 assets/tw/template/TEMPLATE_SIREN_Nakhimov.gif create mode 100644 assets/tw/template/TEMPLATE_SIREN_Raffaello.gif create mode 100644 assets/tw/template/TEMPLATE_SIREN_Yorktown2.gif create mode 100644 campaign/event_20260417_cn/campaign_base.py create mode 100644 campaign/event_20260417_cn/sp.py create mode 100644 campaign/event_20260417_cn/sp1.py create mode 100644 campaign/event_20260417_cn/sp2.py create mode 100644 campaign/event_20260417_cn/sp3.py create mode 100644 campaign/event_20260417_cn/sp4.py diff --git a/assets/cn/template/TEMPLATE_SIREN_ArkRoyalG.gif b/assets/cn/template/TEMPLATE_SIREN_ArkRoyalG.gif new file mode 100644 index 0000000000000000000000000000000000000000..e04cd24c52c12b7851415dd8b978676004596010 GIT binary patch literal 2219 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 Ezr*~L@c;k- literal 0 HcmV?d00001 diff --git a/assets/cn/template/TEMPLATE_SIREN_Cheshire.gif b/assets/cn/template/TEMPLATE_SIREN_Cheshire.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c91cd8f7f65ceac5c9e599e4be1ed09d35a47e1 GIT binary patch literal 5462 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 literal 0 HcmV?d00001 diff --git a/assets/cn/template/TEMPLATE_SIREN_FuShunG.gif b/assets/cn/template/TEMPLATE_SIREN_FuShunG.gif new file mode 100644 index 0000000000000000000000000000000000000000..a4a21e06e3b3fbf3b8880b0b5602bd7e370f78b5 GIT binary patch literal 5473 zcmeI$X;4%58prW}LI?o@B#00QLfAn;5=00~@gzV11x%FMsMH3;1+5yCDlXN8umnU6 zh#1@&HbqMoJ zPh5h48mckkXE92~rJ=g#fhw+99W`uqET z_~D1|zyJQb@4ox?+i$O5zkco7wZ6W-Z@&5F^5x4tJv|pMUhM4b{PN2$&zw1P>eQ*v zKKty`Pd{yHYWn1pPZ}E=j~_qY(9lp{Uw`Dtk-ECN+S=Oc>S~Qfvv1$N%F4<;d-m+! zy}PWethBULrBdzMwQJ|jojZ2yC@wB8Dk>@{C{QRAGMQ}4mMxn$ZQ8J5!}|5>v$M0; zty{Nt?OLf+x@OIq)vH&pTD9ukci&yHV#U&>OEWSu($dl-63IL7yz}OfFE?l^9 z{`~o3vG}dG-kLXW-kWc}nUaz+ckbLdbLNOdBB4+?d-m+)r@bIv(FfNxH8X7u%`t;!7;Gm!&HkFMF&;pXP%?Ck8|;DG-B_isD_w^x?Qu_<$-dBWJBscaL%t5?YFDT(3+-^Ks; z@ALa>f+(-hLPoq$(x$eh-H5DY@yJfhfYgRj5vEhPX7)aBelXB3Cy4T}Yd!4(rDOI; zeWqerSGhY%&F-4(ZBsIF!^4rga|d<%{A06&H@4O#(55*^d+)a%=_Vp!RaqlpKw#zV ztv8&C&La?rL^2g2p6O24nDSbE|B`qzg-o?mF%eecH?xd;H;YBGp}X2KxKf!`jsnm4 zhE?Zv=bKupl$|mSGNCfa+R=gLM6*EBRdSx;|^OLm?*uh!F7-h-hOhZME1 z{FaZ9Vee8MUN6ZNsKOG;Mhryd4jKiqg?mW^!XF=AAui0H^781>qdye}=LKvT8XCfR zxpnK-&6_vDmK!&2jI#w)xpe6gz;gcl`R?v+;N|SuvmG5BZEbB@t@f+0z5;4apFZ8( z+zif~IB^1;`S|0Hftrs#`Utf7@WT&}9Xp1bbNKLKqdA8T9XfdM;DG}N_V3@1`=eH? z_wL6?6CkG&U@4fc`B2XwR zD+?4d6105z@@31GfkKNHFHTQS$01s@XpzyP1q&A778w-+g211oq$DFj@$vC-adDtf zbab?lAY2|`XWF!B91bTSAYk(3$zYC`m)E38lboEK?CtIC?Cfl9Z7nP;{*Bk}HTq1z zW1F2&ipgAk?Aw;hd9oH44^D<&+@jH0My%17WL7Qh$~TJ`7(Kdski3gqfF5y72FVAe zC0?a1P_$bi&jOOwvs)yz$C2rz9?FfKNoPAXclu=)#v%f$ChAp-DK>8DiH+t1-t9yp zi9}@}gRIzFcuaaND_6PQfwc`saeV5DF{(|No85=c2hFC zA=M+EJkN?@K|0#nK~+z)ccvjJxvkKe8NNlMkG{kVSwT&bN?F5dKaM~-%F>Vzg|5=; zE47;S#7S;yja*Sfst8%usTA4r2=mdp%aNSmc#(T>r1-#OtTgSRd}4f~v|n^bsF~tp z&rl9a%q9k`q2-62yq$C~Fd@d22j0?Xf62#R1#~HQuu;9G4AKC&$#cSw@Ov&z}SpCNm=4OCFkM*I%Fz%z`47 z()6wh@963ViH8q;ueBM4%CN+AMXVW0?g?G~E<4%;8iRppWHJMSaP?HGu?Hbaqb;l$q}R^3Wsa+aPJOE84( z@`=Jy4eaV%dc^AMwf8;Jc=rhIsVsVRIzp@sz4dOb6h3hfJ0z5(Q>@jTZI4+2&uV;< zO-KY}Q0B%ISA}fv^%U`RJd!7A0(Qb=Y0*wWu|}jYv*Lzot^OuJ{u@EYO&omRjI{$A z1SSsfftSd*i35T_jOg`x9FeZBE{GAxkd~GfKm=br;0TN!eDN45!7~I9fdIjG4~|Gx zRTZosXb|H7!tH?R1G}fBq{LVsAV_|GeqLT4zJY)ea0D6zcLW;5xP%}w zY{L2qO`pPxm+zIC-C56xE|QUFG@s{r7M7^s+2r)M9HzRs#x_wbnv|WTf{kt5`K@P@ z_Qy=gApMlslbflm&BX2F2b0p6`97$0o*o zqA7=fMPvVCh8XW8a3mRfA;AS1dn5rtjJFX;kFUS}8tk}o<%)63;3WccrnR*d_|WNe z5F;Q6elUS+36uyvWMIYM69zH_KbwrT0|MkvCk!|Ow-jiQv5w#+0*(M8a=9EIGUIv# z-!kKlDl1p6go}!i5@U~y+cL%^`6DIxq8Xd@>>;%7*4t1xlfKos;r_z33F^G|IQvCFC8?V68 zBZSSBA{~KDT+qDR01QL40$PEHZa+ARf0yh+uZbAt~AfYK@3%x8VO$9_Hp@RfMQHr<; zpcfRC#R@ivlqkqj6amo*ML<*pK}AH_eVY(u3Wx+ zxvs9Rwzl@trAsw6HRsNqtFErDs;WA3=1gT}WqEn|>C>mn%F0fiI#p6qQdCrQ;>3x9 zf`a_~{Jgw89*>uklf&h5v$L}^Gcz+XGSbu2Q&Uq@Qc{wWlarE?I2;a}%}z{AJa+8Z z(W6I?966GZkZ}0$;rRIY*x1-ZhYlS)crYd=COSGgDk>@>B4XdZec|EZVPRpRp`k%R zL4kpR0RaL2{{DV`e!jlGd-m+vy?ghrUAuPf+__`N4j&&MZ*T8y+qP}py4B0e%hS`- z!^6Yf-JQu~y1Kf$xVShwJ8#*t#mULZ(b3Vt!NK0%o=&IR+1c6J+FDy%(`Ym*mAZNJ zW-BWzOG`@&3k!2|b2BqDQ&UqD6O&DwHf`Lv(a6Zi(9qDpz<@%b=<4c{$z<5i^S3uZ zSeAFS^YpNxG3^ZXDG2!TGK}yEi6(%-y5EL>dnPdSGR%&I7K^0{)D$szZ#?bk=5r%C)Fe5aDjwf8(uh#f6<2xFNTNI}Qa7Ss z+=%2Mq|GSo^5F+OEo#Z@M5eGsmPAv+>KCC7?Z^#*Yii2;kYBSsT0rKa(VBq?lgr-rf{cL9x@?8ci%PxW^vwK0A**yiV1 z&qFdw4gT3&B94PglxeD}8zK;)TSQXV0DiVxByC(%0Ab z=+UFz-rk;`9zaZcd%MJ!rlzL5ckkZ5ef!p}TY#AQ`g)+u_3PImXaFu3E?j_oIeYdj zkcH3Z16cqorKP1mvXYydE0HBDD@%e)T3QEY@H2#m&tP5W`?FfHHuXKlR1N#s(0x5*Hu~0L9qYc%>=&`uci$ zdOA8f+S=MgB2iOQ^KU<{p9B7|0lC*I=Y%Ng;`R0UW6#gN9)UC>}~y151Go z3#AY;at;^_s|ls2rO+j+BUC2K$tvL*4aD#i9S@CM=C7lf87O&^nA{nubhga8g^rNg zKnIMb`@UGRpgaYuj;v^u<@w2}>U(ly4LCHLe6pKNGd@WuETs4}9QTcG&6fK|aA)m( zaf)=de*9QE!JnS3PK_KHs~)9`3gs9J$gnFRj54c3eWGrEdq$4Aif#Y>d>N-QeV;p3 zj>Og+yzwqNC89}2shGB-gfh_cLjLsTh$<67EuYRe36#^TpBq=uphbPCfzKh5IGUL~ zwZo&LE~0JHpz&`_`ITs{%<5cH*lO+n2uw4YYuym^?Cf9GuMJ3?O;(EDm^?&lRZE}< z?NzOoFql6#Yf3a62vGVHGD~J@RS4KxifhWVm!%(sSQlMUeGUegJhaDXq5GJ5h zK&ITgcTXr3-nnz<=FOWcdqol}7cX8sfBrm(708o{iVA^1091iWrMS2lsB-e;Nzf~W zg@ux20kA;50!js7@?)t$jRFEiA_-^|2oumK5GMQg?_XIe0F&V0;O}DPyHeS{eLIMi zm6-xD^1m_#Y7`JCP@O<&BI%M18#aJ00eXNa0eXNgS+{N-f$;4I{dxZH8vusbD6m-U z#FL6>jBZ3D70yNx1G+FQSfaE#RU1p?H?mV@H55Z8nJ`$Ae2^!GwW_I+BddldF(X(g zI7;ONDU@l0E>K2U_)%G6X(i+ur^W%cz)>0R#bnNi*+{hZW+e?#WT z+CPJ{ZvNd_O<(U|Q4!+zhXT{+K5wgNZOp$YVY$u`|4xg<>UcHsc|B*iT4vji!`vt~ z%(XN|YeKO~N;cmjt_w@ZmxAY5#rHMC=Yv;O*u)KW==)aKx~9ljE*TH^l9h?({z4Oj h-j+7S_42A{f-(9y-!PNUlhG)2^F_#eA(1fi{{pu|M0EfF literal 0 HcmV?d00001 diff --git a/assets/cn/template/TEMPLATE_SIREN_Nakhimov.gif b/assets/cn/template/TEMPLATE_SIREN_Nakhimov.gif new file mode 100644 index 0000000000000000000000000000000000000000..65115da483af44bc0e42cf4f5633d82362c17a27 GIT binary patch literal 6537 zcmeI0{a4fV0>{7KJ+mhFH{LZv$L~5|NQg4d-rB$X71j-`_oT9-MMpTdV2cDAAkJehaYa= zzJ2S~t(!M*PEAcsPELOJ-FM%9`|XVzH?Cj5{>?YvT)TE{Vq)U!ufHB2AHRJ0^4Qqe z=;-Lk$cWqR{_3l*E?v6x<(FSxym;}8FTVKv^Up6_xG+3C{Ml!poj-s6(@#G=d-m*^ zGiQc|hFmV!>C>k_`Q($2KmK@daByH?pufNW)TvW_eSIfSp6u=Ibvm8h-Q6~u?W2!A zI&tDeS6A2Zu>)yS4Uw{4e#>U2mhK9Pj zI+Mw?efxH!(O6MYq1WrRTCGN-*|u%lE3dp#US7U+>(-ZEda1Ouw4|g&rBZF&xUsmn zxTvT|E|<$>vKL=`F)uGqDwQrAt50;I-1MnMn*~<70Secy<r;6U8_hr0hvAi^vZ#Hbq82w|9jX0V13 zNQfrnvN~%~dMwtAI!KhT6j_H2c95u{DXL+cdr37pE=M*EjiT{1 z;WGWSl#SXMMN7OrjoOz<4vK1&r5+B&`9%tZYL!$$-pym+MCws&6)L=_e{wjB4KtE9 zIA?5dw^voDqVLs!oB3$HZ)Ah%P-$!L&frB7`Blqh0-o#(O{j+S#GUlm_<`m+1-{;! z9tfFTt0#x@nbw|b{=7WJiI%vfSbTc;poFQz?V!e})D&1is=$#s za%suBB%k1C<+pio0pw30mMYlpW?PTx*1y-9rV-diBan(GS)1*>F9$vsWz4g~NImlF zTdM?U`883#|Ni?2PyhfARyrWzujNolYaw%8n5NuvD-C>4#p*NTHH1WMfR4xhG_M8 zA|)`bU9J)1y=hT032O{ZqRkbnhphr#C3CJ&-2uT_7)r3xY;_5o1V2H;wA5}nSr;)^ z)$ba`RC>=1YLj+$+bS6eF^kIEn@0y3vB@~KwYH~nN36V$JLR@(;h4hSvZ7F3k6$3) zQugxUeL5TotE6~s!AeZbB;_y?kHt5V12_;Oa7cEAg|9l`%5KHuS%Ewe1>&EqrbNiv z*AEr+647+7)QZ4}h8-n4BA*h9Omu1**OmwOVDTwA$2wr0-o#|Z5X_Vj8;Ts5H>?~& zog~ePTVae=L#%EzHWh>9xlz3&MvOv68-XD`7F9jTM_Ae&{;@83H;zkyAqa+ln;;%J z`F}X_d(Fhdk^jX^9?ua#5Dz}ydFLI#4v(S$aJ=!x8^BVUnws|P*|U51ZU7OFtC-DZ zz>x={0#E`(1y~9&lg*nq1Bh(cutA|v05btvvV8e+U?zYjSy@>kk;tPZadC06v9Ul) zA|fI@GONJz4(CTt-#D#8mR9=2$`sR(aK2Y~RL&|XMPbBIXvdW=!>zrhuot?@r>DY9 zwM1587-Nh0Z#58MtLQ?geQ{u-WI=fcrJ49z{QAa0z5uKDjg#BtQ&xKmDRk{|uEwsz z*Dy0r&`up@qp?s#0i`xH4C_r#-I-VdhogHTsO*SQ(2DhD#I0$v=0nB`LQINeaA>sR z1|vdt8R2WN6@(y#Xp%BkW@5zTbW8|FGK^*#qc4rDGmys@$c;v+up16e3Y}peWVg-` zgIFmWp-C8}C5f^XJgWsq4oJ+Fs`Al@_7UFksGjlI2k04~9=|A=t5>grnE3muU`-HX7%dTfFqu;$;ik6VUw1Y226y<<8e5gu&^*+ zU!c8zeNW^K0BU52^5eA`Xbc8N;M+!YS~QNraSO&Xwo}<$zLGzpH9o^k%(lASOUdL^ zv7P~sIt=9KMfz#?O-&;);a|;t6rs}?xU#uPbx0$o6WDwVtG;);FFUkOm72g72PFTU zhYUk})9$3z+_GU_Pn8$9$hGl~dqk)SDHwd!Zb9SCa|LatLsWyqK*Z#>b)fcF5t+%G zT&xx2l16f1C_xUj8R|kKOhi;G}LkVyz#MeSTSXoJ`Fn3#zXBDqS_jm9PAp6-|`5PQ>t>1mN_#D=c(3c(EK z#m?&`6GCzslu4Ey9l&44nY4~Au3>DOGlYU54CZmp0S1v@tRWA#%cBO7KNlm9nMEFE z$Zr;mXCit3{r3St9*!8Wm;ic!t;Axn0387?0xSeCX)nJTwWSul74k;ckHU>wfNCs@ko7iO4f;gYgGw?K~%nxCzoZXUs) zsm~VZDYa(`cZAJfVV+buhy-d#d74)!N=&ByqdR-Zma#NoUYJAyS@wI=2|h77Q!B<% z{?BbLHBsX1*geVrJbKYM(!Hc+UeTbbHvX0n&Dr2Grq+$&Yv-mns`F9vMU^C|!8vg= zGi!SQPtoTZb!O0ggE<(L)LCI>^41TU{pN{%P#MW`D*_>;x!g6%y(1R!4lkd?a+;W`P6egO75`9~~@@QjZ6#$Dd1%KWrZlZ>kRu9{?LbJpeYqxav_4&-~#TT7i84 zcz~@Hzyqj$Fb+^F>(;FUz*xI>Eto$%*#epcFau6iBiH} zx|^4+G$~7Z2Fz6X`LZb%O0S71b~P+7KxOWXVCE%O`_z;UZu6`W9lgZyY?JlV3 zuk;C|OC~j!2j(ynie1eu8U0j$<^q`lI}>6?$@Ks$?yF=pL2E`-}?T3r}O*$_3QKh=X}n2@AG-=`EvKD85tfP9vT`N92|W3 z@ZtUY_wU`iclYkyTeoiAym|A+jT=2ZJ=d>azjp1~<;$15y1F_#I@;UY+uGV%TU%RN zTAG`iPoF;B)YR12*m&Z^iDSo(9XWF3(4j+exxB8fuC}&TCX-cERFs#Omz9;3mX;P5 z7Z(;5=I7_<<>lq%()g@MXg=CcFmeKk&%%R5fS0x;bCE60)b%Fs#PH&A;H1H zK|w*wmM!!5_vi6=TrSto&(GJ_cj?llK0ZF)-rinbUY?$w9v&VX4u{QVvsf%QH#a7e z$zU+(bh?X+i?g%y;>C+;G@6r>lcS@fgM)*;y}g~C9hFM8wY9aev01ce5rsmrva*^# zf4-%qrG*m&;TxpU^sF)}jJ*Vmstd$x{_ zj<&Y8rlzKbh6VzGfc?Jy$0tCXoaxIB@ONWy*)|I)s_@B481XX#MFfwv`s>kueI_u} zB=HQ(&FHA^nM?DLz*h1C>F?!~{1);Bec!jl> zwX|JN=F5obsZy(z=el@qHJ!yoSNp4SnVWYB4nG*jsQ%MWI)hQ8A(AoaXk1LWpu11( zrAM+tkmM8aMK)3hM$}6kqC;UladpqiZFO+021VHQIgD*Dg5V7V$y}Gz!IU0M z+6*a8D7c-eP47fHq+wpZy#Y^CGnLG^^|re1sh(-t7g)HehbV2PU%!!!Nu)BL z+vcX`M?h=&4t!RX&yu;u2Hy|ju{6tEHYN=UbvD2n|J2@o6U$MB!~cGa8IUz!zkdDn z>C?xLA3uEf@b2BaH*em&diCn%%a=eO$eq#AQHY+$j~@el06mW$J%Z>N7#INVK;m4z zdKE&av$GSpqfjU=Uc7kW!Uf>YxpU{vo;`c!%$buXPeSM%K71H*=itGEz@3_!nyRWQ zpigCG<$(hSfIfhpef#zm6%|4Hf(fI(8JR3edxL?U1i1dvjn#Kc4ZP<(tm z00`(48ymZR{d%C!GFMg~Li%7Z7@!Xdh5GCL|9$=UP5>}+F$G&K z$&)d}{WrTKGEi8mNe)6ql~Y+}?-ZBPJk0c%yVDTnDPx}R+F6C!S4=T03!;-e1NX6YMx5B$mqZ zpbsLnsmA3&`Mfn*MS2<-0ynNwp+WTe1mjZLa`AR6m>yD?NTi~@xGcRpf&oJ^lMtDU z62jV$>V|n`cbd%oGGTKYVdG6>erR<(zo@G{id*T%ggIguqgpZ=hpreDwSTIhC%3=^ zJW;nPJL{dim@?EwWQ#P+#v@=^xlXx=&)t1Ptzz@dm|2u?M05|*IKt>bbA(hQSIubr z4Wo#oSwX{RQ45CGX5;54P%#L6vSNs(n@}@Er~ep{@87=zM816aGBGjnGfI>d0}=*u z1gaQ72^2D*V(#3zbNlvf&@z2}eV}DP#Q;;TT)6^RQHIR<^XGvhpkhv)It4UoXlSUf zum882fR@?2ckiA(dqB<<6cj+3WM^jsO2lIE)STI|V+SajC}|V)sy^vbBYCPUvuLNMciZh89~|gilZBma6E25UnP;P^YM)!;iG)jq)=NAz z1_Tki_3UE536r&J#VV>u10#w+ruK&;MOp(ds@0f{(bTu%3h9hILIBFH2UFc!!C1rO z<_m`48HOJH_03HxiVQEY0lc)Tl_^1(PrQjCku{59xWiN$0=-)eWfhu3c+kbGvWIOf zB9mfnm>AoJjtLUvylVQckVL{`QeTBfy!ujkPgu5@Pj+Q?*f7hhmYqEkk{SoUbil2M z>}egY8|8(?d)>$ISr#f1>+NI<+Iv**eqGNj)CyVc?h-9r&s#O(dU8R=oK4`r?5Bo+ z-J>)Fw8+#Dfo9OO_4DAt15hE58z4mb`}?681nJS++Y81JprgCH8!RCZCD054T>?c3 z7(^UeoL%<~3x^*j9 zMF0~}B%3yE0;>p$5{MCK8$opft)kVdR|8CxhAdyce5xVJZKNDV?(Xi&VWeC|5F^t9 zMY)Zp4WnOU1R6;oS@3u~G?hTLK$w8v7>!0Fk;q^Bp#Bf<0*2hF57Tkyn$VM;mKFGq zYV7k0BwS;-y}eq(+Pd7i;ExXPJTpUsi5@rX(*27ABq6Oj9TIIv|Kf%c%21Ah{iYXE zPyY;0j1G%yb;4GHnrW9fFk9c5qxmsEjO?2QC$0U!C5nV7B0nXu z0ITASBU5qul*&pW9OF<{Y!R25rfC!0&=Ren!&6mftfjUxyXZpnuHli-so|+$@5X2%F|j_jH;Q8XNo=)xGA|O%Go`U{i35#wd>J#- fV8tLd3Tx~j?%{D%%rU7RX6pj5QezC*;*0+USXaYPkl8_;5a< z`B29kCV5$AXs)SQfzP@WQ!6vi@cALz6f3hV?%Ud2yKeVmKi&H;c<;T>=XEgf0G$zG z2ABew0AMf}K7aoF>C>mp&CL%VK5T4kynp|GeSQ7iyLWHjzJ2rN&Dz?UUawzSS$X~X z_44xa($dnx!ou9#-0bY^%*@R6^t4W=d-?L^#Kgq-`1p$#FP=YtJ~}%3?Af!YPoF+{ z@?>OWWO#UZXlQ6~a8Rq&4h#(R_xC?~^r*MDx2LD4ySuxyv$Lb4qrJVot*uR?(Wuqx zhYuegsFPt|^tus;a8W%1XIhe);m{($do6;^LyBqQb(${QUgf+}xa;ob2pusZ^Sto-P)P zMIzC~ix<<<($1ehpPHJQl9G~~oP6%wxx~c8xVX63*x2ak=%}cu$jHd!$B!R7b}TF` zjK||~xm-U#KVM&8FE1|!gF&a$Jv}}5?c3+!;oGbDHMu}i_4xp zdz_t}9UUF*?d|RC>_{XMkw~<)wZ-9ZHa0d`EY`}(%F@!(!omWLMkA3(;Q##C1&9V@ zuz%0YebM7A{|!e0dW9VF2LU`l{x&wk(Oh(7G62pzujR0_ewCQ)WTZ~v+}NUagc&)mv8Ta7Ywa1c(8D`J>i!-7%Rwa_ zu-D3&@uTBxqb_44l5`Zk$ZOBArYFp)G&RzoY@7Wp%*v3?K(uSrOi#qHbikTy89#`) z+72(=6;ih%Ta*4I_lT=qKv%M*1-PR{BRZMGpMTI}IufxBoKC4Zm2!a&og4Vs>+BK% zG6_gb@#Yp-ELFiOrgfVAcOz_Q$Xg%>Yx%B3`)(?5CUZg&VCek@PY;fGa{w%WmiSw4YNoAhxPq* znV>8mKYsk470{H`)zvLlUcGv?xVQ+)GCx1Rh0D~`)a2wO=*w4J#>U3J#bryD$B!TX z1DC$OKG2u0t}aj(&=io8*4Ea0_wIq9G&eUlH8pLq@~@`cxN)PVrsi8#6beN}MFl9! zl`B`u%gf8k%0ORAN=hzWx&#s(?`6jeTR>dcg<*q{g2xd4Ucqb!yjOoOSkQD564&`8!^Lgf;F>^{D?L>F>b}Mp6 zmMkJ?myck)vHmQ12h7qgh;t}G1hJtfK({SezI^%g>C?xLA3uEf z@c#Y#ckkZ4ef##!n>Vjtzkc!J#q;OSpFMl_^y$;bk00N^fB)XSd)KdDzk2oRl`B^+ zUc7kj+_~e&j~_U2VE_L8d-v|$wQJY*?c29)+qQM<)-7AMY~H+i&6+jKmoHzkWXZgF z^XAT-JA3x*88c=~pFVxclqvoF{hghiZEbDM&CQLCjSUSA)z#HiRaKRhl@%2g<>lq2 zrKKe$B}GL=g@uKAd3l+cnd#~2X=!Pxsi`R`DapynNl8hGiHY&?@o{l+v9Yl+F)`86 z(NR%Rk&%%R5fS0x;bCE6p`oF{!NEa6L4kpR0RaJiety2bzCJ!aUS3|Fo}L~a9&T=K zuCA^wE-uc_&Q4BFj*gBF4i5JA_I7r5wzjr5Ha6DQ)>c+l78Vxf=H_N*W~Qd5CMG7v z#>PfQMuvul1_lQD`uci$dOA8fT3T9~nwlCK8tUrmYHDh#s;Vj~D$2^rN=izKii!#f z3i9&ua&mIAva&KVGSbr05)u+(Vq&7Aq9P(9!otErLP89qfR-Vk_@CR)H6+;CF~HSG z&w!cn|9=L>pDY}TKs$9n_JXnr1IK@c-#Y}8lsq~GG`iMIJbdK1yleQr8p+A6-m|R| zH!ScJ(GXl{S0i*YGdY!0Sh+^zU?LL>dykm9%?=Be<>y6=vp@7~5l}qD%+A3f6EMN~ zjF?`?ye)!8hr1e>S%nNV8WodG9|~~%>~c<8KcJvu zW>K?q8?R~v$B%@z<6=&!OH2xbSQ#3)_1k(l3>GwtSrJrt(RufQDB&IoJ&BiLSfP5XT1{@EB|mbO-k+TlMh|fp!m3z|B_t9uRD&+ zCwK&;%<9hEY)+rB&^U5lN95zBTw>b3DOZdDlP6A`IC}Ib zu$0-cV+Xu&*|cfXh7B9mu3fu&_3BltRxMk$3|Pu6Uc7kGqDAxP&j%Jaz_MoAv}wSC zX5z$&6DCaP>goa(Hys@v?d|O?EiJ&}rna`Wrltm1=s-%Gva&K@aZ_Ae3@mO63JUV` z^Ru$DkV_n3S(A{EK(M$82?>FeIKbk@-`^jz#Bq0b$6Dy1l{l7`mIMnOU0q#VEpjik2i;>4OHazeg+o9nL!d?F+%%i?TLLGYoDMKD zvGeg*G(2DyHnN@PBY9cns3?m)uZ~87gCnPZ85)=*Vr(P=5}YON3J)FVe0-Ekf?dxx zWkbS3Cr-!e15+kWPVbko*3Od1R7&mWkqBpc*cjZ#+H2p$FjX-4$uT~SoG(udlTYx> zGN^phvvbk&Zh`yu$2Lq1?hu%+>3?7kZ%<>lq2rKLA--n@SO`qisfFJHb~SXh{wo12}T zotc@Lo}QkXno_A$larGZ6BFa(<6~oEqobqGpFe;0?Agf3$nfy+lP6CeKYsk^(W8eC z9}W%<4h#(R_xJbp_4W4l-oJlesZ@4#btx1Ixm+0%iYip~kt1Bxj%gf74OG`^i zN{Wk%#bU8gC@d^2%+Jry&CNY^>eR`TCo?lMGcq#L)6>(^(o#}Vl9G~+9Xpnon3#}| z5EmDB!S zW@bi4MhFB#M@L6nTO0BvpJxH=mTo93GQyk5W;v0_P>roE2zCR2VZk=ycH{P&Kww*t zu|z88s4i09l#$rP%kzRdgr$^n!vA5NBSwZsA~mF5S_a4kw?WQykCD~4zoq{@i2;h> zM!~5Q_%4_>DP=-dv?A!vN8-OC$JDD35<)=R@UkjVcaI~1y|yIR)ULu?iPwq@8O%HY zzNdP989H}X*O+7+`@>A3CPWK?#$b3Id74l-4Awg?OI zHv>&M_{OuA6alcIF>PC(#T4j;i?QOh3?()d06v{iw7I$Y;lqcGjSUbSP@A`J-+oHX z;^HDm&HVhlT9_9vUVyxOY|GQ9PeE9QhK4>?rKhJytqMp=M@PrqyLa2$+tr?2zka>7 zwN)(%$Vg*jBglwEA~}Eld`(RaXh=mx1!zcFS(%y<&=8SGw8IFW&p&hK%<0pob8>RB zv$Ic}IFXf=rIsW)IT^&{`0?XAp740QPf1aG5)~B{85tQ75dp%YCPnQDD2bn+-wq~T zUS9tz36)9(F>!Tu1wGlnfB%0-*|%>Ws0v8R-o1N4Qta&Pc2vRR@jI}9s+gObqfjVQ zQ&STY6JujzBoYbovVG%U^7$743Aqrw!7B(f&^K}6R$#UX@sDPV3c&S)lcGgRJKFsZI@Gmm!8+!Ix`5b)tQ!4MH~B z+1AhwRSLOR@E3Yf&uLol;3rqSCJe=>>40be$W1e;q8H@}MQ z=ZMj_TS;b9!d{e9{Jq3^T%(>jC2hRD`P%GR3yJ`y4_Ao#f2C)%=5_NExJ+M5E=Y*` Ezr*~L@c;k- literal 0 HcmV?d00001 diff --git a/assets/en/template/TEMPLATE_SIREN_Cheshire.gif b/assets/en/template/TEMPLATE_SIREN_Cheshire.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c91cd8f7f65ceac5c9e599e4be1ed09d35a47e1 GIT binary patch literal 5462 zcmeI$`BRg30>|+{AOw{=+yN7W5H3l$Ob{`F5W;~w3 zKtQmJMWhIpwh=i38xYi5anN!^#13PTQmY*u_Pg`UFieX(o&90gnfCb$zIi6kYu=x) zrx%?>j@5*z!3trpjg5^rZ{Ga+>#wV;t1n)>SXo*5@y8!!GTGwd;=;nh+}zyb$B$=c zXCFLx@ZERc-M@eT-o1Nw@7|rBo}QYTl1ioHkpMCo2r#U$}+1c4APo6w}{CHMYRz^k!i^WP$PyghT zPtwxTQd3ip9Xpnkl$4m5n2?abWHRI9I5;>cC@3&6Fd!hn-{0TY*Vo(Io55gsdV137bPo>? z8ja@e?(XL1Mxjs+9z5vk>U!Y70T&mS{rmSjJ3Es|Bqt{)M@L5o2M2q5dpkQjB9TZS z5cclfYhz<$ZEbC3Wo2n;iO1t{IGm}eDF%ZvGBQG=(T0YG+S=N%zn}l>8^CVt^!Er2 zai<1)*zG02co1m*}UJ*@7TjF+9;!0|5!@8_3np=HQF4?o$LobJKlU6v8+$h7>CopqLOe0;2(heEm5!J$;v zB3(siZ(Q}1n8+=zR(HzAU&~x7eT+9>lm#0sk0$%_w^Yin-7l6y7M~`M^W*$C#`2F|a zzYiLTL;{EbzI^-bw_Aw;xLmn%rK6*xt*s6Ca_Q2g#>PfKOnG@Zz~$`OvwS`uu#%sj z&*5;+oH=v)^l2aq0OiDq6A&nwnVDNn`S|0Hfhj2|Dapyn?_&j+0zmmQn)vzo0Z@E= ze1IulUS5EeO;Z3UR4NrRWh*FTGI`&=ecPI1Yiqm73NXdO!UC{jW@ct$VuHnDfh@+x z#sC)}i-7_7$Nl|$5N`nJ@eApBV7^2VuB<6Ob{(fuXT6_^>A!^V5~6U{>FIgT{2Cmh znthKA4(0Q;_VrHPVlmZ>$gKP9jtm-7Lm951p3N3{qxT)Z%hz`|8xxqgG1>Y;IamQP z^==zOYDM=w^Gc`4(m5i<>XEfz<7&RK>}it2>!Ug~CSh^3u1 z%~+QDT}Sw7W8I2T30ryq~$G}n2)SnbZQs$y`1Nw&7#FFR8C8g zmQWQ#!11SI@_8z$5BMDw!#k?X{jP+H0-FZ8ioYDdN2JG4VDgHgA~(wRbi9507P#@# zPd`C*vb?;!RgWi6o&Z1q9b4-Jq{+m@1gH~`CYw<*Ffj1dS6_iN>FewJ;)^eU8vu>V zmoK-pw16lPi9{DKUc7MO0!Wj(y1LrhS`a9em6bxF5M&By6iAZ7!a|TKpizJ)AXC_E zHbe^4D&QURF)sj`_VkSG5|qkQzyN84t~A7O!d<$bXNN(I0IVg=ap$5`143+NSd zb8`?Y02YW89UUDM3ZJ6JJU@YtI&hN6c~ZA!sk1kq)G_r+rN6|&Jq3D)UrU5=rP6vU-)c-`Fi(D`ohP5I9BN)x zLrA(XJ2x-$u14W~mzRmn%8xCQ22jt53S;L8^t6U{xkA52=dhuc{t6nh(kh}?ii|Ii zs;QW@bxy}SOKXS;H?u6gnmDuqMHD9MwFVO@K-(wF7;9~L@03*a2y>WuDpwJX6p0lK zbJf+i=i}YGcTjc!IG#Ow24)Rt4iFqrZ9r-OFD54^p)~_K16ng6GQR%$YoG@3;>L{| zV9)?Hz>fL+^Ut@!(bUwmX$Mpu=g*%9eALv`06sv1l$Mr4d_XG)Z1Mr-4oDM#2q+R= zUEROZm-|8dR=`K}RMUKO8Bz|8%*N0zPn;(n$e>KeBe=@i+IR|Mm3gPZ>G0L;jtpLa zk$uphWF}p#CUVJrH7i#slT=_~I~*9(d(MieC)Vc3_JEH|rgR!X9Y#?ir!7Cs`~;G+`;j^S0wVRni`<>oGI?o0PbU)?IVVuw6C#bE_i(|Xi% z`$B0I;b=iu?MwK0jS97RDBFHmdfqBb8l~UuHX^i)%3YyUAd1Tj6D6JGdqc>w-Tqza zR&S;kZWk%4sCQwShov=mx6_0odvhvBafhC1I$@rpsG?6|vla9Nfo|`~kKca#ZEbB0 z%ogCs($W%W58%fSKl}iu3WNuA6>{g!9Y6@Ej?vLkuv2c`x+NBiAwv55`yoHR{PIh1 zC(_;B4dn-92^cTnW&|29AVnZfs;jF39u*Z8P<}u|W-~lCR}6GH0?F~a6|O+0q*-VNpq@IzBm^Mm-T{xXLEe)we1u$X>Iz>j2g8N&bK zK2ox^&_3~2v7WUKnh+>cGja^B4;6BT%Z(jE+eH*g-iU~t>)V!>A!7)3;KEiIb|Va| zYtB-8lf2@XhN&?cg@nPxdh>g+MHBsN8S~x4?nq2zXM_eVNwvW_6)51E7wjf0bmKF`I82gDZH-q`P*YP%68mk%Dp}RG_($p#>lOi zkj~k`_B?Gzu literal 0 HcmV?d00001 diff --git a/assets/en/template/TEMPLATE_SIREN_FuShunG.gif b/assets/en/template/TEMPLATE_SIREN_FuShunG.gif new file mode 100644 index 0000000000000000000000000000000000000000..a4a21e06e3b3fbf3b8880b0b5602bd7e370f78b5 GIT binary patch literal 5473 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%0Ab z=+UFz-rk;`9zaZcd%MJ!rlzL5ckkZ5ef!p}TY#AQ`g)+u_3PImXaFu3E?j_oIeYdj zkcH3Z16cqorKP1mvXYydE0HBDD@%e)T3QEY@H2#m&tP5W`?FfHHuXKlR1N#s(0x5*Hu~0L9qYc%>=&`uci$ zdOA8f+S=MgB2iOQ^KU<{p9B7|0lC*I=Y%Ng;`R0UW6#gN9)UC>}~y151Go z3#AY;at;^_s|ls2rO+j+BUC2K$tvL*4aD#i9S@CM=C7lf87O&^nA{nubhga8g^rNg zKnIMb`@UGRpgaYuj;v^u<@w2}>U(ly4LCHLe6pKNGd@WuETs4}9QTcG&6fK|aA)m( zaf)=de*9QE!JnS3PK_KHs~)9`3gs9J$gnFRj54c3eWGrEdq$4Aif#Y>d>N-QeV;p3 zj>Og+yzwqNC89}2shGB-gfh_cLjLsTh$<67EuYRe36#^TpBq=uphbPCfzKh5IGUL~ zwZo&LE~0JHpz&`_`ITs{%<5cH*lO+n2uw4YYuym^?Cf9GuMJ3?O;(EDm^?&lRZE}< z?NzOoFql6#Yf3a62vGVHGD~J@RS4KxifhWVm!%(sSQlMUeGUegJhaDXq5GJ5h zK&ITgcTXr3-nnz<=FOWcdqol}7cX8sfBrm(708o{iVA^1091iWrMS2lsB-e;Nzf~W zg@ux20kA;50!js7@?)t$jRFEiA_-^|2oumK5GMQg?_XIe0F&V0;O}DPyHeS{eLIMi zm6-xD^1m_#Y7`JCP@O<&BI%M18#aJ00eXNa0eXNgS+{N-f$;4I{dxZH8vusbD6m-U z#FL6>jBZ3D70yNx1G+FQSfaE#RU1p?H?mV@H55Z8nJ`$Ae2^!GwW_I+BddldF(X(g zI7;ONDU@l0E>K2U_)%G6X(i+ur^W%cz)>0R#bnNi*+{hZW+e?#WT z+CPJ{ZvNd_O<(U|Q4!+zhXT{+K5wgNZOp$YVY$u`|4xg<>UcHsc|B*iT4vji!`vt~ z%(XN|YeKO~N;cmjt_w@ZmxAY5#rHMC=Yv;O*u)KW==)aKx~9ljE*TH^l9h?({z4Oj h-j+7S_42A{f-(9y-!PNUlhG)2^F_#eA(1fi{{pu|M0EfF literal 0 HcmV?d00001 diff --git a/assets/en/template/TEMPLATE_SIREN_Nakhimov.gif b/assets/en/template/TEMPLATE_SIREN_Nakhimov.gif new file mode 100644 index 0000000000000000000000000000000000000000..65115da483af44bc0e42cf4f5633d82362c17a27 GIT binary patch literal 6537 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 Ezr*~L@c;k- literal 0 HcmV?d00001 diff --git a/assets/jp/template/TEMPLATE_SIREN_Cheshire.gif b/assets/jp/template/TEMPLATE_SIREN_Cheshire.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c91cd8f7f65ceac5c9e599e4be1ed09d35a47e1 GIT binary patch literal 5462 zcmeI$`BRg30>|+{AOw{=+yN7W5H3l$Ob{`F5W;~w3 zKtQmJMWhIpwh=i38xYi5anN!^#13PTQmY*u_Pg`UFieX(o&90gnfCb$zIi6kYu=x) zrx%?>j@5*z!3trpjg5^rZ{Ga+>#wV;t1n)>SXo*5@y8!!GTGwd;=;nh+}zyb$B$=c zXCFLx@ZERc-M@eT-o1Nw@7|rBo}QYTl1ioHkpMCo2r#U$}+1c4APo6w}{CHMYRz^k!i^WP$PyghT zPtwxTQd3ip9Xpnkl$4m5n2?abWHRI9I5;>cC@3&6Fd!hn-{0TY*Vo(Io55gsdV137bPo>? z8ja@e?(XL1Mxjs+9z5vk>U!Y70T&mS{rmSjJ3Es|Bqt{)M@L5o2M2q5dpkQjB9TZS z5cclfYhz<$ZEbC3Wo2n;iO1t{IGm}eDF%ZvGBQG=(T0YG+S=N%zn}l>8^CVt^!Er2 zai<1)*zG02co1m*}UJ*@7TjF+9;!0|5!@8_3np=HQF4?o$LobJKlU6v8+$h7>CopqLOe0;2(heEm5!J$;v zB3(siZ(Q}1n8+=zR(HzAU&~x7eT+9>lm#0sk0$%_w^Yin-7l6y7M~`M^W*$C#`2F|a zzYiLTL;{EbzI^-bw_Aw;xLmn%rK6*xt*s6Ca_Q2g#>PfKOnG@Zz~$`OvwS`uu#%sj z&*5;+oH=v)^l2aq0OiDq6A&nwnVDNn`S|0Hfhj2|Dapyn?_&j+0zmmQn)vzo0Z@E= ze1IulUS5EeO;Z3UR4NrRWh*FTGI`&=ecPI1Yiqm73NXdO!UC{jW@ct$VuHnDfh@+x z#sC)}i-7_7$Nl|$5N`nJ@eApBV7^2VuB<6Ob{(fuXT6_^>A!^V5~6U{>FIgT{2Cmh znthKA4(0Q;_VrHPVlmZ>$gKP9jtm-7Lm951p3N3{qxT)Z%hz`|8xxqgG1>Y;IamQP z^==zOYDM=w^Gc`4(m5i<>XEfz<7&RK>}it2>!Ug~CSh^3u1 z%~+QDT}Sw7W8I2T30ryq~$G}n2)SnbZQs$y`1Nw&7#FFR8C8g zmQWQ#!11SI@_8z$5BMDw!#k?X{jP+H0-FZ8ioYDdN2JG4VDgHgA~(wRbi9507P#@# zPd`C*vb?;!RgWi6o&Z1q9b4-Jq{+m@1gH~`CYw<*Ffj1dS6_iN>FewJ;)^eU8vu>V zmoK-pw16lPi9{DKUc7MO0!Wj(y1LrhS`a9em6bxF5M&By6iAZ7!a|TKpizJ)AXC_E zHbe^4D&QURF)sj`_VkSG5|qkQzyN84t~A7O!d<$bXNN(I0IVg=ap$5`143+NSd zb8`?Y02YW89UUDM3ZJ6JJU@YtI&hN6c~ZA!sk1kq)G_r+rN6|&Jq3D)UrU5=rP6vU-)c-`Fi(D`ohP5I9BN)x zLrA(XJ2x-$u14W~mzRmn%8xCQ22jt53S;L8^t6U{xkA52=dhuc{t6nh(kh}?ii|Ii zs;QW@bxy}SOKXS;H?u6gnmDuqMHD9MwFVO@K-(wF7;9~L@03*a2y>WuDpwJX6p0lK zbJf+i=i}YGcTjc!IG#Ow24)Rt4iFqrZ9r-OFD54^p)~_K16ng6GQR%$YoG@3;>L{| zV9)?Hz>fL+^Ut@!(bUwmX$Mpu=g*%9eALv`06sv1l$Mr4d_XG)Z1Mr-4oDM#2q+R= zUEROZm-|8dR=`K}RMUKO8Bz|8%*N0zPn;(n$e>KeBe=@i+IR|Mm3gPZ>G0L;jtpLa zk$uphWF}p#CUVJrH7i#slT=_~I~*9(d(MieC)Vc3_JEH|rgR!X9Y#?ir!7Cs`~;G+`;j^S0wVRni`<>oGI?o0PbU)?IVVuw6C#bE_i(|Xi% z`$B0I;b=iu?MwK0jS97RDBFHmdfqBb8l~UuHX^i)%3YyUAd1Tj6D6JGdqc>w-Tqza zR&S;kZWk%4sCQwShov=mx6_0odvhvBafhC1I$@rpsG?6|vla9Nfo|`~kKca#ZEbB0 z%ogCs($W%W58%fSKl}iu3WNuA6>{g!9Y6@Ej?vLkuv2c`x+NBiAwv55`yoHR{PIh1 zC(_;B4dn-92^cTnW&|29AVnZfs;jF39u*Z8P<}u|W-~lCR}6GH0?F~a6|O+0q*-VNpq@IzBm^Mm-T{xXLEe)we1u$X>Iz>j2g8N&bK zK2ox^&_3~2v7WUKnh+>cGja^B4;6BT%Z(jE+eH*g-iU~t>)V!>A!7)3;KEiIb|Va| zYtB-8lf2@XhN&?cg@nPxdh>g+MHBsN8S~x4?nq2zXM_eVNwvW_6)51E7wjf0bmKF`I82gDZH-q`P*YP%68mk%Dp}RG_($p#>lOi zkj~k`_B?Gzu literal 0 HcmV?d00001 diff --git a/assets/jp/template/TEMPLATE_SIREN_FuShunG.gif b/assets/jp/template/TEMPLATE_SIREN_FuShunG.gif new file mode 100644 index 0000000000000000000000000000000000000000..a4a21e06e3b3fbf3b8880b0b5602bd7e370f78b5 GIT binary patch literal 5473 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%0Ab z=+UFz-rk;`9zaZcd%MJ!rlzL5ckkZ5ef!p}TY#AQ`g)+u_3PImXaFu3E?j_oIeYdj zkcH3Z16cqorKP1mvXYydE0HBDD@%e)T3QEY@H2#m&tP5W`?FfHHuXKlR1N#s(0x5*Hu~0L9qYc%>=&`uci$ zdOA8f+S=MgB2iOQ^KU<{p9B7|0lC*I=Y%Ng;`R0UW6#gN9)UC>}~y151Go z3#AY;at;^_s|ls2rO+j+BUC2K$tvL*4aD#i9S@CM=C7lf87O&^nA{nubhga8g^rNg zKnIMb`@UGRpgaYuj;v^u<@w2}>U(ly4LCHLe6pKNGd@WuETs4}9QTcG&6fK|aA)m( zaf)=de*9QE!JnS3PK_KHs~)9`3gs9J$gnFRj54c3eWGrEdq$4Aif#Y>d>N-QeV;p3 zj>Og+yzwqNC89}2shGB-gfh_cLjLsTh$<67EuYRe36#^TpBq=uphbPCfzKh5IGUL~ zwZo&LE~0JHpz&`_`ITs{%<5cH*lO+n2uw4YYuym^?Cf9GuMJ3?O;(EDm^?&lRZE}< z?NzOoFql6#Yf3a62vGVHGD~J@RS4KxifhWVm!%(sSQlMUeGUegJhaDXq5GJ5h zK&ITgcTXr3-nnz<=FOWcdqol}7cX8sfBrm(708o{iVA^1091iWrMS2lsB-e;Nzf~W zg@ux20kA;50!js7@?)t$jRFEiA_-^|2oumK5GMQg?_XIe0F&V0;O}DPyHeS{eLIMi zm6-xD^1m_#Y7`JCP@O<&BI%M18#aJ00eXNa0eXNgS+{N-f$;4I{dxZH8vusbD6m-U z#FL6>jBZ3D70yNx1G+FQSfaE#RU1p?H?mV@H55Z8nJ`$Ae2^!GwW_I+BddldF(X(g zI7;ONDU@l0E>K2U_)%G6X(i+ur^W%cz)>0R#bnNi*+{hZW+e?#WT z+CPJ{ZvNd_O<(U|Q4!+zhXT{+K5wgNZOp$YVY$u`|4xg<>UcHsc|B*iT4vji!`vt~ z%(XN|YeKO~N;cmjt_w@ZmxAY5#rHMC=Yv;O*u)KW==)aKx~9ljE*TH^l9h?({z4Oj h-j+7S_42A{f-(9y-!PNUlhG)2^F_#eA(1fi{{pu|M0EfF literal 0 HcmV?d00001 diff --git a/assets/jp/template/TEMPLATE_SIREN_Nakhimov.gif b/assets/jp/template/TEMPLATE_SIREN_Nakhimov.gif new file mode 100644 index 0000000000000000000000000000000000000000..65115da483af44bc0e42cf4f5633d82362c17a27 GIT binary patch literal 6537 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 Ezr*~L@c;k- literal 0 HcmV?d00001 diff --git a/assets/tw/template/TEMPLATE_SIREN_Cheshire.gif b/assets/tw/template/TEMPLATE_SIREN_Cheshire.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c91cd8f7f65ceac5c9e599e4be1ed09d35a47e1 GIT binary patch literal 5462 zcmeI$`BRg30>|+{AOw{=+yN7W5H3l$Ob{`F5W;~w3 zKtQmJMWhIpwh=i38xYi5anN!^#13PTQmY*u_Pg`UFieX(o&90gnfCb$zIi6kYu=x) zrx%?>j@5*z!3trpjg5^rZ{Ga+>#wV;t1n)>SXo*5@y8!!GTGwd;=;nh+}zyb$B$=c zXCFLx@ZERc-M@eT-o1Nw@7|rBo}QYTl1ioHkpMCo2r#U$}+1c4APo6w}{CHMYRz^k!i^WP$PyghT zPtwxTQd3ip9Xpnkl$4m5n2?abWHRI9I5;>cC@3&6Fd!hn-{0TY*Vo(Io55gsdV137bPo>? z8ja@e?(XL1Mxjs+9z5vk>U!Y70T&mS{rmSjJ3Es|Bqt{)M@L5o2M2q5dpkQjB9TZS z5cclfYhz<$ZEbC3Wo2n;iO1t{IGm}eDF%ZvGBQG=(T0YG+S=N%zn}l>8^CVt^!Er2 zai<1)*zG02co1m*}UJ*@7TjF+9;!0|5!@8_3np=HQF4?o$LobJKlU6v8+$h7>CopqLOe0;2(heEm5!J$;v zB3(siZ(Q}1n8+=zR(HzAU&~x7eT+9>lm#0sk0$%_w^Yin-7l6y7M~`M^W*$C#`2F|a zzYiLTL;{EbzI^-bw_Aw;xLmn%rK6*xt*s6Ca_Q2g#>PfKOnG@Zz~$`OvwS`uu#%sj z&*5;+oH=v)^l2aq0OiDq6A&nwnVDNn`S|0Hfhj2|Dapyn?_&j+0zmmQn)vzo0Z@E= ze1IulUS5EeO;Z3UR4NrRWh*FTGI`&=ecPI1Yiqm73NXdO!UC{jW@ct$VuHnDfh@+x z#sC)}i-7_7$Nl|$5N`nJ@eApBV7^2VuB<6Ob{(fuXT6_^>A!^V5~6U{>FIgT{2Cmh znthKA4(0Q;_VrHPVlmZ>$gKP9jtm-7Lm951p3N3{qxT)Z%hz`|8xxqgG1>Y;IamQP z^==zOYDM=w^Gc`4(m5i<>XEfz<7&RK>}it2>!Ug~CSh^3u1 z%~+QDT}Sw7W8I2T30ryq~$G}n2)SnbZQs$y`1Nw&7#FFR8C8g zmQWQ#!11SI@_8z$5BMDw!#k?X{jP+H0-FZ8ioYDdN2JG4VDgHgA~(wRbi9507P#@# zPd`C*vb?;!RgWi6o&Z1q9b4-Jq{+m@1gH~`CYw<*Ffj1dS6_iN>FewJ;)^eU8vu>V zmoK-pw16lPi9{DKUc7MO0!Wj(y1LrhS`a9em6bxF5M&By6iAZ7!a|TKpizJ)AXC_E zHbe^4D&QURF)sj`_VkSG5|qkQzyN84t~A7O!d<$bXNN(I0IVg=ap$5`143+NSd zb8`?Y02YW89UUDM3ZJ6JJU@YtI&hN6c~ZA!sk1kq)G_r+rN6|&Jq3D)UrU5=rP6vU-)c-`Fi(D`ohP5I9BN)x zLrA(XJ2x-$u14W~mzRmn%8xCQ22jt53S;L8^t6U{xkA52=dhuc{t6nh(kh}?ii|Ii zs;QW@bxy}SOKXS;H?u6gnmDuqMHD9MwFVO@K-(wF7;9~L@03*a2y>WuDpwJX6p0lK zbJf+i=i}YGcTjc!IG#Ow24)Rt4iFqrZ9r-OFD54^p)~_K16ng6GQR%$YoG@3;>L{| zV9)?Hz>fL+^Ut@!(bUwmX$Mpu=g*%9eALv`06sv1l$Mr4d_XG)Z1Mr-4oDM#2q+R= zUEROZm-|8dR=`K}RMUKO8Bz|8%*N0zPn;(n$e>KeBe=@i+IR|Mm3gPZ>G0L;jtpLa zk$uphWF}p#CUVJrH7i#slT=_~I~*9(d(MieC)Vc3_JEH|rgR!X9Y#?ir!7Cs`~;G+`;j^S0wVRni`<>oGI?o0PbU)?IVVuw6C#bE_i(|Xi% z`$B0I;b=iu?MwK0jS97RDBFHmdfqBb8l~UuHX^i)%3YyUAd1Tj6D6JGdqc>w-Tqza zR&S;kZWk%4sCQwShov=mx6_0odvhvBafhC1I$@rpsG?6|vla9Nfo|`~kKca#ZEbB0 z%ogCs($W%W58%fSKl}iu3WNuA6>{g!9Y6@Ej?vLkuv2c`x+NBiAwv55`yoHR{PIh1 zC(_;B4dn-92^cTnW&|29AVnZfs;jF39u*Z8P<}u|W-~lCR}6GH0?F~a6|O+0q*-VNpq@IzBm^Mm-T{xXLEe)we1u$X>Iz>j2g8N&bK zK2ox^&_3~2v7WUKnh+>cGja^B4;6BT%Z(jE+eH*g-iU~t>)V!>A!7)3;KEiIb|Va| zYtB-8lf2@XhN&?cg@nPxdh>g+MHBsN8S~x4?nq2zXM_eVNwvW_6)51E7wjf0bmKF`I82gDZH-q`P*YP%68mk%Dp}RG_($p#>lOi zkj~k`_B?Gzu literal 0 HcmV?d00001 diff --git a/assets/tw/template/TEMPLATE_SIREN_FuShunG.gif b/assets/tw/template/TEMPLATE_SIREN_FuShunG.gif new file mode 100644 index 0000000000000000000000000000000000000000..a4a21e06e3b3fbf3b8880b0b5602bd7e370f78b5 GIT binary patch literal 5473 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%0Ab z=+UFz-rk;`9zaZcd%MJ!rlzL5ckkZ5ef!p}TY#AQ`g)+u_3PImXaFu3E?j_oIeYdj zkcH3Z16cqorKP1mvXYydE0HBDD@%e)T3QEY@H2#m&tP5W`?FfHHuXKlR1N#s(0x5*Hu~0L9qYc%>=&`uci$ zdOA8f+S=MgB2iOQ^KU<{p9B7|0lC*I=Y%Ng;`R0UW6#gN9)UC>}~y151Go z3#AY;at;^_s|ls2rO+j+BUC2K$tvL*4aD#i9S@CM=C7lf87O&^nA{nubhga8g^rNg zKnIMb`@UGRpgaYuj;v^u<@w2}>U(ly4LCHLe6pKNGd@WuETs4}9QTcG&6fK|aA)m( zaf)=de*9QE!JnS3PK_KHs~)9`3gs9J$gnFRj54c3eWGrEdq$4Aif#Y>d>N-QeV;p3 zj>Og+yzwqNC89}2shGB-gfh_cLjLsTh$<67EuYRe36#^TpBq=uphbPCfzKh5IGUL~ zwZo&LE~0JHpz&`_`ITs{%<5cH*lO+n2uw4YYuym^?Cf9GuMJ3?O;(EDm^?&lRZE}< z?NzOoFql6#Yf3a62vGVHGD~J@RS4KxifhWVm!%(sSQlMUeGUegJhaDXq5GJ5h zK&ITgcTXr3-nnz<=FOWcdqol}7cX8sfBrm(708o{iVA^1091iWrMS2lsB-e;Nzf~W zg@ux20kA;50!js7@?)t$jRFEiA_-^|2oumK5GMQg?_XIe0F&V0;O}DPyHeS{eLIMi zm6-xD^1m_#Y7`JCP@O<&BI%M18#aJ00eXNa0eXNgS+{N-f$;4I{dxZH8vusbD6m-U z#FL6>jBZ3D70yNx1G+FQSfaE#RU1p?H?mV@H55Z8nJ`$Ae2^!GwW_I+BddldF(X(g zI7;ONDU@l0E>K2U_)%G6X(i+ur^W%cz)>0R#bnNi*+{hZW+e?#WT z+CPJ{ZvNd_O<(U|Q4!+zhXT{+K5wgNZOp$YVY$u`|4xg<>UcHsc|B*iT4vji!`vt~ z%(XN|YeKO~N;cmjt_w@ZmxAY5#rHMC=Yv;O*u)KW==)aKx~9ljE*TH^l9h?({z4Oj h-j+7S_42A{f-(9y-!PNUlhG)2^F_#eA(1fi{{pu|M0EfF literal 0 HcmV?d00001 diff --git a/assets/tw/template/TEMPLATE_SIREN_Nakhimov.gif b/assets/tw/template/TEMPLATE_SIREN_Nakhimov.gif new file mode 100644 index 0000000000000000000000000000000000000000..65115da483af44bc0e42cf4f5633d82362c17a27 GIT binary patch literal 6537 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 Date: Sat, 18 Apr 2026 02:55:27 +0800 Subject: [PATCH 07/10] Opt: Faster receiving if no drop record --- module/commission/commission.py | 9 ++++--- module/research/research.py | 48 ++++++++++++++++++++------------- 2 files changed, 35 insertions(+), 22 deletions(-) diff --git a/module/commission/commission.py b/module/commission/commission.py index 5931f1b00..08a70a4d8 100644 --- a/module/commission/commission.py +++ b/module/commission/commission.py @@ -16,8 +16,8 @@ from module.handler.info_handler import InfoHandler from module.logger import logger from module.map.map_grids import SelectedGrids from module.retire.assets import DOCK_CHECK -from module.ui.assets import BACK_ARROW, COMMISSION_CHECK, REWARD_GOTO_COMMISSION -from module.ui.page import page_reward, page_commission +from module.ui.assets import BACK_ARROW, REWARD_GOTO_COMMISSION +from module.ui.page import page_commission, page_reward from module.ui.scroll import Scroll from module.ui.switch import Switch from module.ui.ui import UI @@ -525,8 +525,9 @@ class RewardCommission(UI, InfoHandler): for button in [EXP_INFO_S_REWARD, GET_ITEMS_1, GET_ITEMS_2, GET_ITEMS_3]: if self.appear(button, interval=1): - self.ensure_no_info_bar(timeout=1) - drop.add(self.device.image) + if drop: + self.ensure_no_info_bar(timeout=1) + drop.add(self.device.image) REWARD_SAVE_CLICK.name = button.name self.device.click(REWARD_SAVE_CLICK) diff --git a/module/research/research.py b/module/research/research.py index 62b35b042..6ffd45eed 100644 --- a/module/research/research.py +++ b/module/research/research.py @@ -358,12 +358,13 @@ class RewardResearch(ResearchSelector, ResearchQueue, StorageHandler): total = 0 with self.stat.new( genre='research', method=self.config.DropRecord_ResearchRecord - ) as record: + ) as drop: # Take screenshots of project list - record.add(self.device.image) + drop.add(self.device.image) end_confirm = Timer(1, count=3) item_confirm = Timer(1.5, count=5) + item_interval = Timer(0.2, count=0) record_button = None while 1: if skip_first_screenshot: @@ -380,31 +381,42 @@ class RewardResearch(ResearchSelector, ResearchQueue, StorageHandler): end_confirm.reset() # Get items - appear_button = self.get_items() - if appear_button is not None: - if appear_button == record_button: - if item_confirm.reached(): - # Record drops and close get items - self.drop_record(drop=record) - self.device.click(GET_ITEMS_RESEARCH_SAVE) + if drop: + # record item drop + appear_button = self.get_items() + if appear_button is not None: + if appear_button == record_button: + if item_confirm.reached(): + # Record drops and close get items + self.drop_record(drop=drop) + self.device.click(GET_ITEMS_RESEARCH_SAVE) + item_confirm.reset() + record_button = None + total += 1 + continue + else: + logger.info(f'{appear_button} appeared') + record_button = appear_button item_confirm.reset() - record_button = None + else: + item_confirm.reset() + record_button = None + else: + # no drop saving, just click it + if item_interval.reached(): + appear_button = self.get_items() + if appear_button is not None: + self.device.click(GET_ITEMS_RESEARCH_SAVE) + item_interval.reset() total += 1 continue - else: - logger.info(f'{appear_button} appeared') - record_button = appear_button - item_confirm.reset() - else: - item_confirm.reset() - record_button = None # Claim rewards if self.appear_then_click(QUEUE_CLAIM_REWARD, offset=None, interval=5): continue if total <= 0: - record.clear() + drop.clear() logger.info(f'Received rewards from {total} projects') return total From 65cea8d07c331145bb1bfeae0e63216947b2640f Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Sat, 18 Apr 2026 03:28:11 +0800 Subject: [PATCH 08/10] Upd: Button extract --- module/template/assets.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/module/template/assets.py b/module/template/assets.py index 2a1a2a1f1..cefe72137 100644 --- a/module/template/assets.py +++ b/module/template/assets.py @@ -168,6 +168,7 @@ TEMPLATE_SIREN_LeMars_ghost = Template(file={'cn': './assets/cn/template/TEMPLAT TEMPLATE_SIREN_Leipzig = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_Leipzig.gif', 'en': './assets/en/template/TEMPLATE_SIREN_Leipzig.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_Leipzig.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_Leipzig.gif'}) TEMPLATE_SIREN_Leipzig_g = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_Leipzig_g.gif', 'en': './assets/en/template/TEMPLATE_SIREN_Leipzig_g.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_Leipzig_g.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_Leipzig_g.gif'}) TEMPLATE_SIREN_Lexington = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_Lexington.gif', 'en': './assets/en/template/TEMPLATE_SIREN_Lexington.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_Lexington.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_Lexington.gif'}) +TEMPLATE_SIREN_Lexington2 = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_Lexington2.gif', 'en': './assets/en/template/TEMPLATE_SIREN_Lexington2.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_Lexington2.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_Lexington2.gif'}) TEMPLATE_SIREN_Littorio = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_Littorio.gif', 'en': './assets/en/template/TEMPLATE_SIREN_Littorio.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_Littorio.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_Littorio.gif'}) TEMPLATE_SIREN_Lover = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_Lover.gif', 'en': './assets/en/template/TEMPLATE_SIREN_Lover.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_Lover.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_Lover.gif'}) TEMPLATE_SIREN_Magdeburg = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_Magdeburg.gif', 'en': './assets/en/template/TEMPLATE_SIREN_Magdeburg.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_Magdeburg.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_Magdeburg.gif'}) @@ -258,6 +259,7 @@ TEMPLATE_SIREN_Weser = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN TEMPLATE_SIREN_Wichita = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_Wichita.gif', 'en': './assets/en/template/TEMPLATE_SIREN_Wichita.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_Wichita.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_Wichita.gif'}) TEMPLATE_SIREN_Yamashiro = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_Yamashiro.gif', 'en': './assets/en/template/TEMPLATE_SIREN_Yamashiro.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_Yamashiro.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_Yamashiro.gif'}) TEMPLATE_SIREN_York = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_York.gif', 'en': './assets/en/template/TEMPLATE_SIREN_York.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_York.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_York.gif'}) +TEMPLATE_SIREN_Yorktown2 = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_Yorktown2.gif', 'en': './assets/en/template/TEMPLATE_SIREN_Yorktown2.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_Yorktown2.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_Yorktown2.gif'}) TEMPLATE_SIREN_Yuudachi = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_Yuudachi.gif', 'en': './assets/en/template/TEMPLATE_SIREN_Yuudachi.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_Yuudachi.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_Yuudachi.gif'}) TEMPLATE_SIREN_Z18 = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_Z18.png', 'en': './assets/en/template/TEMPLATE_SIREN_Z18.png', 'jp': './assets/jp/template/TEMPLATE_SIREN_Z18.png', 'tw': './assets/tw/template/TEMPLATE_SIREN_Z18.png'}) TEMPLATE_SIREN_Z19 = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_Z19.png', 'en': './assets/en/template/TEMPLATE_SIREN_Z19.png', 'jp': './assets/jp/template/TEMPLATE_SIREN_Z19.png', 'tw': './assets/tw/template/TEMPLATE_SIREN_Z19.png'}) From 53d8ff809906c3b073884c89daec7bb94fdbc6bc Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Sat, 18 Apr 2026 03:28:45 +0800 Subject: [PATCH 09/10] Upd: Shop cost icons --- assets/shop/cost/Coins_5.png | Bin 0 -> 1286 bytes assets/shop/cost/Coins_6.png | Bin 0 -> 1326 bytes assets/shop/cost/Core_4.png | Bin 0 -> 993 bytes assets/shop/cost/Gems_5.png | Bin 0 -> 1005 bytes assets/shop/cost/GuildCoins_6.png | Bin 0 -> 1221 bytes assets/shop/cost/GuildCoins_7.png | Bin 0 -> 1317 bytes assets/shop/cost/Medal_4.png | Bin 0 -> 1044 bytes assets/shop/cost/Merit_5.png | Bin 0 -> 1106 bytes assets/shop/cost/Merit_6.png | Bin 0 -> 1024 bytes 9 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/shop/cost/Coins_5.png create mode 100644 assets/shop/cost/Coins_6.png create mode 100644 assets/shop/cost/Core_4.png create mode 100644 assets/shop/cost/Gems_5.png create mode 100644 assets/shop/cost/GuildCoins_6.png create mode 100644 assets/shop/cost/GuildCoins_7.png create mode 100644 assets/shop/cost/Medal_4.png create mode 100644 assets/shop/cost/Merit_5.png create mode 100644 assets/shop/cost/Merit_6.png diff --git a/assets/shop/cost/Coins_5.png b/assets/shop/cost/Coins_5.png new file mode 100644 index 0000000000000000000000000000000000000000..2d143cc1a2fd144e66981a8171f56b2babcea06c GIT binary patch literal 1286 zcmV+h1^N1kP)y5qXIU2x<{V7+y2X``&ZU>A8RiNq0_e_PKYTb=KZ{?F&oZ zuL1K60(R@-uSbql?b)*)Li*yh&X{!Iz}15X>q<85fLL5`WIlxVLGvFMw!2&@07!gG zRXXO62m)S|Yywc94k0ZqV;}9hke0Lhe<0{+Z`18v+zCyR%li(e<}JgbWFZ;^Ab_xM zV1zT=esm825kj!t{;j*bY5|15|K@}H#^>5^POd0go>`iLL=>Hf4Bi|HJ&zQAUGTW! z$ym>LlnBm(9QUSt08D9V-)FCRdlsVQ@^7kojBjc`JXCr39m`^QjwC|>LdZ)25acZG z{@e*E4a#E0m)ihD$@W98()Un;f}_zNdGx8zeps@?X-%_&g~k}0^GzuVf7+tzzt`_I zeRsC`E04%j`B;1(9Jg|2)#Qhu4M-wv_SyxT|-#tKZcj9JzBpZ%0v5 zfq9^{0kyXB5?FuV_Y=d2vkiD-a6Sf6Vh=~V&v_{-WVnco`(iDBWmI^uB#ibBX@uT8 zS&U{PSG|!9r;k25*Q3vPFZdUHv3BYDwNO%mmrh68{(+*H%mR8`o9cQDG1PU+Awr$? zjaW3V6-ykRB;{Cg|kk)kI;L1{GT%8dm7`u4Qz46VCGmThAy}w+y+a*F~ z<SPv8qq04ki|kG zhCD?u}*Y*m~LalJbCU!bfD|>-de6DBY@3}AFl(9wzs>tlp3fA5|wDfehmSh z2*eT|>h@a5*`=N(iaL%Ig+#)i?#&8#Rh`lWLy4foGy@a@#U?XCB?X~ikZTD!7F!V0 zyblJwUKI-%#gWKo$zd{L!AqeanW!oQ0_7d|R22ddjszJ>N!cH0?Q*Zocs@MN>luv@ z|EM}EZNej|u?#bWGNp?3#~V15VpYNeK7epmnH1$P9_Oj&Zfd=9Zxw0od8>s z#B}y_1U{P*(_I-BM*>JsRWj4+Pqbya9W1VS%Caz}E!}~B;VolQdz!BL>Nmt9nz$^r zY zUD*%}sj^k^^^W_Wj2Oj(h-WdKlCg*mmRIJhlT(QpXl5yQ+wIp@6zdGa;?335Jp%(B zfA^d(JtE!#>#DH~GYeFv=*-N=kRc`}zSvl+mE5tf^^EcNNXHX%2#$poQ$X z`}C1AEgs`rgYS(?;Z`~Uy|07*qoM6N<$f)b!#KmY&$ literal 0 HcmV?d00001 diff --git a/assets/shop/cost/Coins_6.png b/assets/shop/cost/Coins_6.png new file mode 100644 index 0000000000000000000000000000000000000000..e21442a7c6551a35a69cb58a26de89c8cef6484e GIT binary patch literal 1326 zcmV+}1=0G6P)rUbz=t@!B`0{ZWz6XRoF0jK~| zp{sX$4xdrRCRLvBM3_^%xcZ|tSy?ekzv=6XG_F2aR9^Gab~+Y&qNk&y86a_`ty3O} zIH^H&1B)1O$N)riiY3~AePHv!7JvwV%~!U^Gq*D3{)Nh9@O&Wf836h5?OogVZxh{C zqR5bnI`&ja%S$uQJe=x279zSnXZ6y;MJ3GEllQf6Nj*Hf@Pn>%fxxE#^w*DfZ``%U zBC1rLLWCgAoOX|usv4WlJPE>)G=YwET$&0!0Ym+(wN9iAAK;qW`d{|1aJ%8~=WTNf zvP##M0Hrg@aYRELMu^=CX0P(8VTeVdW49k9CZ=pdPfz)KsbdZj1gxs9%9!zA+aG|C zXHic6vfP;}d$(Pdqsg5|>w%jE*lQ%?VgI#9H-d~?VQH3AN}Ip4pWCXmg)u-8#MJ9_!=*u{2Re1xbP$74r%NhA@~M*8sa<69V~!4ALO zmBwOWbVBV<3Tg@vM-ZZH!{(`Vq)Qg8Pj;SSw=;z)3|Vr;_@sM5J~t`Ls!3M@uy}GZ zvtG%lXkMtrRKW>Xzv}`CfxQu=<;;ro2MExmR+>6TNdWXc(L_ zk-(VC$+RI#za^U3yXW_XpA@t5MW_mRH}ha9a`)b!=f3JPbdstpGbU+e!}XtzSUHZS z^2m!~X<24c;8`pphxPF2MEJUageKrjiD<_`4)kP#jE*GX1!@XNKG|NqZ4CwbtYp1a zKHkC)3@N-UM;#8!og0tRMQipFqCUK@_FZ6@r*5`eL?qcU(CJ1)*e=GeTm_a(j%gy7 z6XL`4NJj{}T+;I8#TmIyZFv02weybTV{Bn9im0wU0!JJ?`HKW!Rw`ETkF-N#tF!jK&%;b zH4?MsxXL$F7vwn@F?(TN*;{_+tYRi%@>;gG$!wk!!|t=k4kbFR4FMnI1GT^{}@yaQZ!~pc7d)Pf$vz*_NyV{t3k1 kY(BBL@m&t{GhdJY0SSveXzogc1^@s607*qoM6N<$g4sTjE&u=k literal 0 HcmV?d00001 diff --git a/assets/shop/cost/Core_4.png b/assets/shop/cost/Core_4.png new file mode 100644 index 0000000000000000000000000000000000000000..c902d3827f65a3fb400d0af389846bb47b2d0bbd GIT binary patch literal 993 zcmV<710MW|P)G)TNCan6^oMTZ##~w3JH}mad%L#lUGF{j9M4)ejb`V^`@ZMqeV_Ne@AKRX zHb2?JES%KHuiNhRjHGk1SPUTqVfpCMH!gj5#TRb2ipw}bV3s~$5lEFMBX*V-2m=_v z@vRT-IQ+tM1e+KW4lsm+tvfrKqU)9dVrx#HD~CNmsAB+N5Ca0YMzynVLshM}+eC+} z`j~hf7D7=8SrSN})10_ahX9Rf7U6Acu(I4#KYn7z!2aDAJGYl^+(`BH#;;u){Op5A z?{E5JFjmTEkzO%Pv@=qUaYUzIKw31Bf=Iqs<C1dEQrMG{5TN?m?nC8Xqhr52fesWi*Q?$;>(-0vZ z8T#`_jyOa}2?B;jK?q%5OiYGn_I>gFp{_2&e;XdQ*V`p2EeHZeW_0!Hd|nNQLbyg54|<;6gE6ML zX-S%rRe#F^oGc|MwblB0Fpgsfjn7HxrMXcgzDY=5dd;&Y!l{Z7R&oDPR;xhoP0*L0VvOBRczZCf^zc_Gqa zKvvCM{x(J<9qE}&Rs%2?2rYafod>8hkx`k`#(uf_`teuyKHY&3wpgt6h+;k6TXiuM znjF~M#WI+#VCeUulu}sV{tVsgB2Z6N&wpQOV=6^$c4jpG!}-2XqtU2MU<9Gg3i(5a zU$PJ?e{gd=F_xZMyL}gx&OgdtKmj#FodBT#J#8I(PMo`7RJ5EtiDu-1uRphmHZ_ql zStBWD@7wbDA`1BTtNrh%P_?uLC9~=>>E=*DmR7EN(CuIKpNhW#lP0>15x|g% P00000NkvXXu0mjfD+Jb| literal 0 HcmV?d00001 diff --git a/assets/shop/cost/Gems_5.png b/assets/shop/cost/Gems_5.png new file mode 100644 index 0000000000000000000000000000000000000000..38f4740c62a685dcde481d02c63c0f7183953153 GIT binary patch literal 1005 zcmVSsMQ$Bx>e}J<0RZA018{^!;(zbIHWEhc!L}|~fl>fcm8=LhC6gaD zJ+{-{fG|hEX(0pWg=Z>8=i{@}iO4UBh*TV(O{cC0e)ei;s9|fXe;2y*o&w1uLs1fr zC})|cw*&_RdL(bQS1zMm85=$2+1UEXUdEWXvgP*f?UFOj5UF2v{KG*EqDZa*TSA%r zYdo@cdp?*_1S`lXLf~BZ(xs;1W5CNeQBe3{hZ$E7t2Ag0R`u+%wUqCiAq z;Q^MV3T<7Zyw^XosqVRjpD>Yt0S5HJd?3$m^$(+m)<09orkC`EgT|4$3% zrG3*xdk?mmMgFo1Hq7y+-2YNc7>AI`(_gsOw-w}sOC06RPd$IcVS9GuWGFQC>w$NJxikdBT_ zB7KC3KKQT_C!73Y44kr|{6YM~m=I%l28l+a2{FcG#sr8# zMbX3rS$G)1EQ%%$a7+k~EvT>t9gnpe-9}5h-MjXl`+j(4^vlV2PEO7_zu)(Lzw@DM zdtXKn1Vs>UrKi?Szw^ev`uh4pp};SwaNo2LSytRG9NK~R-oHCNPcwGpeZ%@n3#EPf_*@L!&E}MXM@ZW2py$nt&(@rfC!k`9vZPscziZDT>nUY(5ri{QQgl z_V!ht3j2xvegfvUEEo?bW|p@`?*2V#w=)#wuB=2M+fqr8Wv#Y0dhz0~H*a2vwX9nj zv$w5Wu9}#kF+H7~ST2`)I5C}kx>+|(QBnv3FBUVY)L*-Hy-g5=q9~FCb6id)*SVZ5 z$Cs;pRmVQ*hXL=|^CqS!$c>wKbVDsKh&GZ2K#^3ly2k(fmQDG&Jc1DiK0LVo+1~Zt zy+Bq9b0tlYxrGunnV%icDlEF)6pY+FLozk zA$5IGITS^59Ov`-2#!-I953Yg#)y&4=5!rHF*Ki>3;3#`?v9`ME}2X=$JZ`j)**wE zuEOB{)s#V4mW?nBD-Z|(061XNJUTe|hlNt7PM#Dc@Y1%e3~S?fphE%(_T%}1hRD)IAQXoVh#=M!l_im+sJftc zYATJvR8Bq0WTw(9*K8R2ZMakhvMMW@Vw!R|6gD(Xk;LreJxvBnYHQQ!2jk-p;6fC! zp`lB-ritN5OIKIdxpSx8Rl(`$M-?t7iXytE1%m-qwenA9SjHX>$Hwp9@l^-I;d%^* zw~TMk9K(jMU1dC;`%~%HUfo@s88=mltyogzC7@c8iC6pmE812&94?w>X`4;A6kXLU z9X);OYlLCZhD1{0p1k|PXF{PEs*8U4)kmAyQT42SB80 zW^8O^WaNTEkRD%vaC-w{iJ!=2waY)WE?XT9#Z1eL$5+yJM@2;i{9N4pJdKlzBEvB> zG%zzeDPxO`g>|~|x~7D~?FA*S1j@f(yFlSgq431z@?$tuo(LNTK~RWk4i283oh=Pt jIm>!$P!#otnxOv&so_ZE_9+;+00000NkvXXu0mjf|F=q8 literal 0 HcmV?d00001 diff --git a/assets/shop/cost/GuildCoins_7.png b/assets/shop/cost/GuildCoins_7.png new file mode 100644 index 0000000000000000000000000000000000000000..8c301b971af6cb50fd6e88e819c826cf5b0244ae GIT binary patch literal 1317 zcmV+=1={+FP)7qLI0?XFnaeH*GE~1)f2cl?8gXT?joe z!_1LGZ&mvJHk)lFo)RTVc_N)AmDA47gCjSBTWa0F{{cSbPsg8}d;eHbu}_v|Ob>Q< z_oI+p<|^b^YHn`v?w^xq&KzS|2>{@1Hgll!kltj05%fQPmd?+aZ)zwj@t*tqG~ChAq0wj_{;g2aB+01NC;|gMUpa!HU=9+`^V_!VR^+ho zcs@fic?KLs5oc);OHscJ_Cv`erG&L0Z_~!L>12#&#T3CP@i-F24Hzd#r#?G>`0Y3E zhaSw#PATQ)Mbu_B0fHdQDNmULQYaK5J(^nvWMF1yLMaKAWduR=``09s8HQ!6EB!C+ zXum%(<|(hr)m)Z&LD1>6ZnyjR@#7Fd03-=4%`c3P&p90a#l4S7S9YLf?k{lcytgEZE+43WimG<`5WHKpA zB8Fk{c$~~qN+LAFDh($|Dl{ABIF2APH*WO9H8o9wC`IG(ra{OxMUg#{QS&qqO zChkq5Fv7D83PH*E6Ed@Evljspkj)Yniko|T1A zd?jjkRq+xm%2J9Ti;GGW&Ju@56ovbfP-2qL$Rr#Q` zBsYtY+zbLiy}1BLg3F0$sQ1e?E^kSRSF6*j)R>|+nxWWiCKg)`heHHQ8Z0&?DZ9)2 bbbkB;qAGp;Ubp=}00000NkvXXu0mjf2hnYw literal 0 HcmV?d00001 diff --git a/assets/shop/cost/Medal_4.png b/assets/shop/cost/Medal_4.png new file mode 100644 index 0000000000000000000000000000000000000000..a3be155141de2b3b88f6a4b4f28460bc541db4d4 GIT binary patch literal 1044 zcmV+v1nc{WP)X0ssI2SX@%T000BqNklAu;)7tpR%EDX%tlw8GzicC;&CSmMzq3Lu zKBgQk&G8G7$+E1wwFjv1qNjhP{hrT1bSDz;`4&fO*n6tlaNyxw+lalU;mDeQiQ~YW z!)ZQQcd(>jJs4|k?Zm3QL~JB69q?dv+5F6$es^YRmC@W(Ykuu$`}daydxmG-iyX&# zX1(|4BNsrXJM5m9&Nf{Cs`uu%eH7xaU%kPx!l`$g?yUs9zV#Fi+0dy8``c|T?y0{C zCWVLga{?b&4&)aZzW(4dkIT0sTffCg(6!mn2sqcs0 z@?)kWFTA+qpK&kXZ9hw1kLQmLnm}Gfr)h%iZN}rc4^i}q@BC@NNI*U z!HI-c$NS&8++uaw{!*rADFiJoO1vsv1Vq;Q^Y!Ws4b9BaG1jQdb>8ZZCqF;`)3oER zXUy*RE}r?Y#WwIelg5{n<;x>3A9uBV8CnR6MAYaq1(mQ&sMjsk)Sg`J*x=-=7aCcP z@4R&7#5qfE*R_eE$?<{P6TeNYt%r}j(de17A3y&x!z)g{*~Y2T;p1jYygh`3gMm5c zpP9;7f6o<)p+kX)Hcw~$sN?-le^zB>=M@+kHgOl||0Yx}fO=1H`9FRy39k2bciRT0 zd>)^hMaCNQeJcWi)TN=$)D<2+?OhH$*IfU}wKn&fW~+f)iZ-4pl3!V8sxw8SF{9>a znmXfw9h7u`lI6^~_M*~4rnn**nluLm#tlPCgf5rYK0F-acm3b41OEd24xTLH$lK5W O0000h@ zBVwFG24V{K4+j}5j7NEtX_d#AJPIppl1 zAxp#+eZPRB1Ok59Ta`&CPCeEuuP&73)1&4%|y;`(P1n=DxutWIe zi+MZzU1(~(yD&r3!j`sc1VI)S7KZPm2^2k@_jXyT&$UhbGThTz zTwHv8paa9mF2f+Jo=T-^{_@<``WkzUqfY()cLr`*0=X!NSg82$4RdEd9lDPekQ19( zlas$Hl}Z4XlgK+jOfU?PCZ@`w)v_b$d%E!3+2%3VoE7KetBwa@@lOKiX}mh{a`7u> z^KF47WZmV$a4>oClaQE%f1?vZ2ExiLu_`MQF537Q>YTThetd;TQK2%0_EP=xDlCK& z;oj{&llfT0_OL7H(dwg^EY4SgmHqpi<@m(IdR;4x1J9=CrSrz12sw98xI8X9jsYI; z*zm1LX|Ub7kt|&sUJ`Q3_y$>VF4n4%hj71b%CdA1%Rcv0QN#W5Z(j84;{)BlJ;fJC zmHx2tUc<;W<8-W24BSg!PQsxn^t*2?;Vgsji|?_D35KPZbDGTW+i;Ock>dbjHX%)LBqnsPjFf3zS07{0?3 zDqmEg434F2aUO z|L1qFpWeL&VIMwxSU^DNwc>fZz{=a{IpWd|= z5==lf|Nb#DGO@gU`&!G&9b|-nl74i09t$(mKL(Z`zy2>@u?i@7nI$4Tq z8Xn%b7|8zf=g;G$v7z{qFi z5aM9{U0zwqA*qh09^r~_pFaTo3}o<&NVH5}`r_GRc?G4FYc>MYi;Iiv)k`PBqT}HD zzkPa-#Rzxh59OY`(DZZdTv|%potx)*c=@*NI>5=vnU$5*QeOj+{qo`M`Eq55edrzu z*8Y0*;*&F%9-iGbZU5B|pFS~OxqjQp*`1k*QC@_VkLkG-7pHDq&$XpN+OZo1L?y9@ z#kz^XzaL(HeEo`wfzk07N?g1m5m8a=*REE2zggH&>&DK*au()Jel^@WZdg153CP!* zSN(qbQB70**T=X29-pqAFh||O1(^1jxIf?6wpT_)^8f!YzJ|isgY(DN&x<0(PMp7a z*xZAcE5)wl7^^Ys{Jm!mMhfhl+;DZmqCziz{CoEN8xJ?vt^=34Q!EuepMe?i|NrfCN0%mw@QA9u ze(~<-*I$R3HK$*d&`jERxX0|@zrUaeI=62^nQ!fu-#u4&H=KFQ$-;c~=7aJ`%P`@q zKfixte7`g2+Jn!$9DL7iod5fUulXK7#PLAT7t9tj;kuZt^0Z*yh-o*3#HFE$_{7#) zf6d?Q%pMLVd<@?he_dPiaej{U^l1R+@1&|Lo53~!0000 Date: Sat, 18 Apr 2026 03:38:26 +0800 Subject: [PATCH 10/10] Fix: [JP] Remove wrong "/" in meta counter (#5608) --- module/os_ash/meta.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/module/os_ash/meta.py b/module/os_ash/meta.py index b17b124f3..c11023ffe 100644 --- a/module/os_ash/meta.py +++ b/module/os_ash/meta.py @@ -41,6 +41,13 @@ class MetaDigitCounter(DigitCounter): if re.match(r'^[0123]3$', result): result = f'{result[0]}/{result[1]}' + # 1/40/1400 -> 140/1400 + for suffix in ['/1400', '/200']: + if result.endswith(suffix): + point = result[:-len(suffix)] + point = point.replace('/', '') + result = point + suffix + return result