From 2cb32d2ca06335d7730c241183e959f2ec9b9612 Mon Sep 17 00:00:00 2001 From: sui-feng-cb <2518179942@qq.com> Date: Thu, 9 Jul 2026 20:12:47 +0800 Subject: [PATCH 1/3] Upd: research S9 --- assets/cn/research/TEMPLATE_S9.png | Bin 0 -> 648 bytes assets/research_blueprint/duncan.png | Bin 0 -> 14752 bytes assets/research_blueprint/maximmelmann.png | Bin 0 -> 14815 bytes assets/research_blueprint/orage.png | Bin 0 -> 14944 bytes assets/research_blueprint/takahashi.png | Bin 0 -> 15028 bytes assets/research_blueprint/valparaiso.png | Bin 0 -> 14495 bytes config/template.json | 4 +- dev_tools/research_extractor.py | 7 +- module/config/argument/args.json | 7 +- module/config/argument/argument.yaml | 17 +++-- module/config/config_generated.py | 4 +- module/config/i18n/en-US.json | 3 + module/config/i18n/ja-JP.json | 3 + module/config/i18n/zh-CN.json | 3 + module/config/i18n/zh-TW.json | 3 + module/research/assets.py | 1 + module/research/preset.py | 66 ++++++++++++++++++ module/research/preset_generator.py | 4 +- module/research/project.py | 19 ++++-- module/research/project_data.py | 75 +++++++++++++++++++++ module/research/selector.py | 5 +- module/research/series.py | 2 + 22 files changed, 199 insertions(+), 24 deletions(-) create mode 100644 assets/cn/research/TEMPLATE_S9.png create mode 100644 assets/research_blueprint/duncan.png create mode 100644 assets/research_blueprint/maximmelmann.png create mode 100644 assets/research_blueprint/orage.png create mode 100644 assets/research_blueprint/takahashi.png create mode 100644 assets/research_blueprint/valparaiso.png diff --git a/assets/cn/research/TEMPLATE_S9.png b/assets/cn/research/TEMPLATE_S9.png new file mode 100644 index 0000000000000000000000000000000000000000..210648bebad6e7e3bdf7ed8efd58d99e12303c37 GIT binary patch literal 648 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 literal 0 HcmV?d00001 diff --git a/config/template.json b/config/template.json index 900eac7e7..b124099f7 100644 --- a/config/template.json +++ b/config/template.json @@ -1298,8 +1298,8 @@ "UseCoin": "always_use", "UsePart": "always_use", "AllowDelay": true, - "PresetFilter": "series_8_blueprint_305", - "CustomFilter": "S8-DR0.5 > S8-PRY0.5 > S8-Q0.5 > S8-H0.5 > Q0.5 > S8-DR2.5\n> S8-G1.5 > S8-Q1 > S8-DR5 > 0.5 > S8-G4 > S8-Q2 > S8-PRY2.5 > reset\n> S8-DR8 > Q1 > 1 > S8-E-315 > S8-G2.5 > G1.5 > 1.5 > S8-E-031\n> S8-Q4 > Q2 > E2 > 2 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S8-PRY5\n> S8-PRY8 > Q4 > G4 > 4 > S8-C6 > DR5 > PRY5 > 5 > C6 > 6 > S8-C8\n> S8-C12 > DR8 > PRY8 > C8 > 8 > C12 > 12" + "PresetFilter": "series_9_blueprint_ta152", + "CustomFilter": "S9-DR0.5 > S9-PRY0.5 > S9-Q0.5 > S9-H0.5 > Q0.5 > S9-DR2.5\n> S9-G1.5 > S9-Q1 > S9-DR5 > 0.5 > S9-G4 > S9-Q2 > S9-PRY2.5 > reset\n> S9-DR8 > Q1 > 1 > S9-E-315 > S9-G2.5 > G1.5 > 1.5 > S9-E-031\n> S9-Q4 > Q2 > E2 > 2 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S9-PRY5\n> S9-PRY8 > Q4 > G4 > 4 > S9-C6 > DR5 > PRY5 > 5 > C6 > 6 > S9-C8\n> S9-C12 > DR8 > PRY8 > C8 > 8 > C12 > 12" }, "Storage": { "Storage": {} diff --git a/dev_tools/research_extractor.py b/dev_tools/research_extractor.py index 54a525baa..be28270b0 100644 --- a/dev_tools/research_extractor.py +++ b/dev_tools/research_extractor.py @@ -55,6 +55,11 @@ DIC_TRANSLATION = { '蓝图:埃吉尔': 'Blueprint - Ägir', '蓝图:奥古斯特·冯·帕塞瓦尔': 'Blueprint - August von Parseval', '蓝图:马可波罗': 'Blueprint - Marco Polo', + '蓝图:瓦尔帕莱索': 'Blueprint - Valparaíso', + '蓝图:{namecode:565}': 'Blueprint - Max Immelmann', + '蓝图:邓肯': 'Blueprint - Duncan', + '蓝图:{namecode:313}': 'Blueprint - Takahashi', + '蓝图:暴风雨': 'Blueprint - Orage', } @@ -139,7 +144,7 @@ Arguments: FILE: Path to AzurLaneData, '/AzurLaneData' SAVE: File to save, 'module/research/project_data.py' """ -FOLDER = '' +FOLDER = '../AzurLaneLuaScripts' SAVE = 'module/research/project_data.py' TechnologyTemplate().write(SAVE) diff --git a/module/config/argument/args.json b/module/config/argument/args.json index 41f7a8237..5180a0f15 100644 --- a/module/config/argument/args.json +++ b/module/config/argument/args.json @@ -6946,9 +6946,12 @@ }, "PresetFilter": { "type": "select", - "value": "series_8_blueprint_305", + "value": "series_9_blueprint_ta152", "option": [ "custom", + "series_9_blueprint_ta152", + "series_9_blueprint_only", + "series_9_ta152_only", "series_8_blueprint_305", "series_8_blueprint_only", "series_8_305_only", @@ -6975,7 +6978,7 @@ }, "CustomFilter": { "type": "textarea", - "value": "S8-DR0.5 > S8-PRY0.5 > S8-Q0.5 > S8-H0.5 > Q0.5 > S8-DR2.5\n> S8-G1.5 > S8-Q1 > S8-DR5 > 0.5 > S8-G4 > S8-Q2 > S8-PRY2.5 > reset\n> S8-DR8 > Q1 > 1 > S8-E-315 > S8-G2.5 > G1.5 > 1.5 > S8-E-031\n> S8-Q4 > Q2 > E2 > 2 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S8-PRY5\n> S8-PRY8 > Q4 > G4 > 4 > S8-C6 > DR5 > PRY5 > 5 > C6 > 6 > S8-C8\n> S8-C12 > DR8 > PRY8 > C8 > 8 > C12 > 12" + "value": "S9-DR0.5 > S9-PRY0.5 > S9-Q0.5 > S9-H0.5 > Q0.5 > S9-DR2.5\n> S9-G1.5 > S9-Q1 > S9-DR5 > 0.5 > S9-G4 > S9-Q2 > S9-PRY2.5 > reset\n> S9-DR8 > Q1 > 1 > S9-E-315 > S9-G2.5 > G1.5 > 1.5 > S9-E-031\n> S9-Q4 > Q2 > E2 > 2 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S9-PRY5\n> S9-PRY8 > Q4 > G4 > 4 > S9-C6 > DR5 > PRY5 > 5 > C6 > 6 > S9-C8\n> S9-C12 > DR8 > PRY8 > C8 > 8 > C12 > 12" } }, "Storage": { diff --git a/module/config/argument/argument.yaml b/module/config/argument/argument.yaml index 927dab96d..8dfe05e47 100644 --- a/module/config/argument/argument.yaml +++ b/module/config/argument/argument.yaml @@ -385,9 +385,12 @@ Research: option: [ always_use, only_05_hour, only_no_project, do_not_use ] AllowDelay: true PresetFilter: - value: series_8_blueprint_305 + value: series_9_blueprint_ta152 option: - custom + - series_9_blueprint_ta152 + - series_9_blueprint_only + - series_9_ta152_only - series_8_blueprint_305 - series_8_blueprint_only - series_8_305_only @@ -411,12 +414,12 @@ Research: - series_2_blueprint_only - series_2_457_only CustomFilter: |- - S8-DR0.5 > S8-PRY0.5 > S8-Q0.5 > S8-H0.5 > Q0.5 > S8-DR2.5 - > S8-G1.5 > S8-Q1 > S8-DR5 > 0.5 > S8-G4 > S8-Q2 > S8-PRY2.5 > reset - > S8-DR8 > Q1 > 1 > S8-E-315 > S8-G2.5 > G1.5 > 1.5 > S8-E-031 - > S8-Q4 > Q2 > E2 > 2 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S8-PRY5 - > S8-PRY8 > Q4 > G4 > 4 > S8-C6 > DR5 > PRY5 > 5 > C6 > 6 > S8-C8 - > S8-C12 > DR8 > PRY8 > C8 > 8 > C12 > 12 + S9-DR0.5 > S9-PRY0.5 > S9-Q0.5 > S9-H0.5 > Q0.5 > S9-DR2.5 + > S9-G1.5 > S9-Q1 > S9-DR5 > 0.5 > S9-G4 > S9-Q2 > S9-PRY2.5 > reset + > S9-DR8 > Q1 > 1 > S9-E-315 > S9-G2.5 > G1.5 > 1.5 > S9-E-031 + > S9-Q4 > Q2 > E2 > 2 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S9-PRY5 + > S9-PRY8 > Q4 > G4 > 4 > S9-C6 > DR5 > PRY5 > 5 > C6 > 6 > S9-C8 + > S9-C12 > DR8 > PRY8 > C8 > 8 > C12 > 12 Dorm: Collect: true Feed: true diff --git a/module/config/config_generated.py b/module/config/config_generated.py index dfa178b0b..df931aeab 100644 --- a/module/config/config_generated.py +++ b/module/config/config_generated.py @@ -214,8 +214,8 @@ class GeneratedConfig: Research_UseCoin = 'always_use' # always_use, only_05_hour, only_no_project, do_not_use Research_UsePart = 'always_use' # always_use, only_05_hour, only_no_project, do_not_use Research_AllowDelay = True - Research_PresetFilter = 'series_8_blueprint_305' # custom, series_8_blueprint_305, series_8_blueprint_only, series_8_305_only, series_7_blueprint_la9, series_7_blueprint_only, series_7_la9_only, series_6_blueprint_203, series_6_blueprint_only, series_6_203_only, series_5_blueprint_152, series_5_blueprint_only, series_5_152_only, series_4_blueprint_tenrai, series_4_blueprint_only, series_4_tenrai_only, series_3_blueprint_234, series_3_blueprint_only, series_3_234_only, series_2_than_3_457_234, series_2_blueprint_457, series_2_blueprint_only, series_2_457_only - Research_CustomFilter = 'S8-DR0.5 > S8-PRY0.5 > S8-Q0.5 > S8-H0.5 > Q0.5 > S8-DR2.5\n> S8-G1.5 > S8-Q1 > S8-DR5 > 0.5 > S8-G4 > S8-Q2 > S8-PRY2.5 > reset\n> S8-DR8 > Q1 > 1 > S8-E-315 > S8-G2.5 > G1.5 > 1.5 > S8-E-031\n> S8-Q4 > Q2 > E2 > 2 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S8-PRY5\n> S8-PRY8 > Q4 > G4 > 4 > S8-C6 > DR5 > PRY5 > 5 > C6 > 6 > S8-C8\n> S8-C12 > DR8 > PRY8 > C8 > 8 > C12 > 12' + Research_PresetFilter = 'series_9_blueprint_ta152' # custom, series_9_blueprint_ta152, series_9_blueprint_only, series_9_ta152_only, series_8_blueprint_305, series_8_blueprint_only, series_8_305_only, series_7_blueprint_la9, series_7_blueprint_only, series_7_la9_only, series_6_blueprint_203, series_6_blueprint_only, series_6_203_only, series_5_blueprint_152, series_5_blueprint_only, series_5_152_only, series_4_blueprint_tenrai, series_4_blueprint_only, series_4_tenrai_only, series_3_blueprint_234, series_3_blueprint_only, series_3_234_only, series_2_than_3_457_234, series_2_blueprint_457, series_2_blueprint_only, series_2_457_only + Research_CustomFilter = 'S9-DR0.5 > S9-PRY0.5 > S9-Q0.5 > S9-H0.5 > Q0.5 > S9-DR2.5\n> S9-G1.5 > S9-Q1 > S9-DR5 > 0.5 > S9-G4 > S9-Q2 > S9-PRY2.5 > reset\n> S9-DR8 > Q1 > 1 > S9-E-315 > S9-G2.5 > G1.5 > 1.5 > S9-E-031\n> S9-Q4 > Q2 > E2 > 2 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S9-PRY5\n> S9-PRY8 > Q4 > G4 > 4 > S9-C6 > DR5 > PRY5 > 5 > C6 > 6 > S9-C8\n> S9-C12 > DR8 > PRY8 > C8 > 8 > C12 > 12' # Group `Dorm` Dorm_Collect = True diff --git a/module/config/i18n/en-US.json b/module/config/i18n/en-US.json index 2922d2e8b..83b704860 100644 --- a/module/config/i18n/en-US.json +++ b/module/config/i18n/en-US.json @@ -1491,6 +1491,9 @@ "name": "Preset Filter Select", "help": "See research drops rates and spawn rates in https://azur-stats.lyoko.io/. People without a basic knowledge of these are recommended to use pre-optimized presets instead of writing custom filters", "custom": "custom", + "series_9_blueprint_ta152": "Series 9 Blueprints+Ta152", + "series_9_blueprint_only": "Series 9 Blueprints Only", + "series_9_ta152_only": "Series 9 Ta152 Only", "series_8_blueprint_305": "Series 8 Blueprints+305", "series_8_blueprint_only": "Series 8 Blueprints Only", "series_8_305_only": "Series 8 305 Only", diff --git a/module/config/i18n/ja-JP.json b/module/config/i18n/ja-JP.json index 495b74bcd..fdd5bcaab 100644 --- a/module/config/i18n/ja-JP.json +++ b/module/config/i18n/ja-JP.json @@ -1491,6 +1491,9 @@ "name": "Research.PresetFilter.name", "help": "Research.PresetFilter.help", "custom": "custom", + "series_9_blueprint_ta152": "Series 9 Blueprints+Ta152", + "series_9_blueprint_only": "Series 9 Blueprints Only", + "series_9_ta152_only": "Series 9 Ta152 Only", "series_8_blueprint_305": "Series 8 Blueprints+305", "series_8_blueprint_only": "Series 8 Blueprints Only", "series_8_305_only": "Series 8 305 Only", diff --git a/module/config/i18n/zh-CN.json b/module/config/i18n/zh-CN.json index bfc45fad0..a02661630 100644 --- a/module/config/i18n/zh-CN.json +++ b/module/config/i18n/zh-CN.json @@ -1491,6 +1491,9 @@ "name": "科研过滤器", "help": "科研掉落和项目刷新见 https://azur-stats.lyoko.io/,对这些没有基本了解的人不建议编写自定义过滤器,建议使用预优化科研过滤器", "custom": "自定义", + "series_9_blueprint_ta152": "九期 蓝图+Ta152", + "series_9_blueprint_only": "九期 仅蓝图", + "series_9_ta152_only": "九期 仅Ta152", "series_8_blueprint_305": "八期 蓝图+305", "series_8_blueprint_only": "八期 仅蓝图", "series_8_305_only": "八期 仅305", diff --git a/module/config/i18n/zh-TW.json b/module/config/i18n/zh-TW.json index 7b70e15e1..3ff726c6a 100644 --- a/module/config/i18n/zh-TW.json +++ b/module/config/i18n/zh-TW.json @@ -1491,6 +1491,9 @@ "name": "科研過濾器", "help": "科研掉落和項目刷新見 https://azur-stats.lyoko.io/,對這些沒有基本了解的人不建議編寫自定義過濾器,建議使用預優化科研過濾器", "custom": "自定義", + "series_9_blueprint_ta152": "九期 藍圖+Ta152", + "series_9_blueprint_only": "九期 僅藍圖", + "series_9_ta152_only": "九期 僅Ta152", "series_8_blueprint_305": "八期 藍圖+305", "series_8_blueprint_only": "八期 僅藍圖", "series_8_305_only": "八期 僅305", diff --git a/module/research/assets.py b/module/research/assets.py index c828bae42..e07460263 100644 --- a/module/research/assets.py +++ b/module/research/assets.py @@ -70,4 +70,5 @@ TEMPLATE_S5 = Template(file={'cn': './assets/cn/research/TEMPLATE_S5.png', 'en': TEMPLATE_S6 = Template(file={'cn': './assets/cn/research/TEMPLATE_S6.png', 'en': './assets/en/research/TEMPLATE_S6.png', 'jp': './assets/jp/research/TEMPLATE_S6.png', 'tw': './assets/tw/research/TEMPLATE_S6.png'}) TEMPLATE_S7 = Template(file={'cn': './assets/cn/research/TEMPLATE_S7.png', 'en': './assets/en/research/TEMPLATE_S7.png', 'jp': './assets/jp/research/TEMPLATE_S7.png', 'tw': './assets/tw/research/TEMPLATE_S7.png'}) TEMPLATE_S8 = Template(file={'cn': './assets/cn/research/TEMPLATE_S8.png', 'en': './assets/cn/research/TEMPLATE_S8.png', 'jp': './assets/cn/research/TEMPLATE_S8.png', 'tw': './assets/cn/research/TEMPLATE_S8.png'}) +TEMPLATE_S9 = Template(file={'cn': './assets/cn/research/TEMPLATE_S9.png', 'en': './assets/cn/research/TEMPLATE_S9.png', 'jp': './assets/cn/research/TEMPLATE_S9.png', 'tw': './assets/cn/research/TEMPLATE_S9.png'}) TEMPLATE_WAITING = Template(file={'cn': './assets/cn/research/TEMPLATE_WAITING.png', 'en': './assets/en/research/TEMPLATE_WAITING.png', 'jp': './assets/jp/research/TEMPLATE_WAITING.png', 'tw': './assets/tw/research/TEMPLATE_WAITING.png'}) diff --git a/module/research/preset.py b/module/research/preset.py index 9d607e1fa..794e32330 100644 --- a/module/research/preset.py +++ b/module/research/preset.py @@ -1,6 +1,72 @@ FILTER_STRING_SHORTEST = '0.5 > 1 > 1.5 > 2 > 2.5 > 3 > 4 > 5 > 6 > 8 > 10 > 12' FILTER_STRING_CHEAPEST = 'Q1 > Q2 > T3 > T4 > Q4 > C6 > T6 > C8 > C12 > G1.5 > D2.5 > G2.5 > D5 > Q0.5 > G4 > D8 > H1 > H2 > H0.5 > D0.5 > H4' DICT_FILTER_PRESET = { + # Goal: DR_blurprint=0, PRY_blueprint=0, tanrai_blueprint=150 + # Average time cost: 153.41706666666678 + # Average rewards: [238.69016631 238.37881965 529.71190834 528.92520834 528.39586667 150.07973333] + 'series_9_ta152_only_cube': """ + S9-Q0.5 > S9-DR0.5 > S9-PRY0.5 > Q0.5 > S9-Q4 > S9-Q2 > S9-Q1 > 0.5 + > S9-E-315 > S9-G1.5 > S9-G4 > Q1 > reset > S9-H1 > H1 > 1 > S9-E-031 + > S9-DR2.5 > S9-PRY2.5 > S9-G2.5 > G1.5 > 1.5 > Q2 > E2 > S9-H2 > H2 + > 2 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S9-DR5 > S9-PRY5 > Q4 > G4 + > S9-H4 > H4 > 4 > S9-C6 > DR5 > PRY5 > 5 > S9-DR8 > S9-PRY8 > S9-C8 + > C6 > 6 > S9-C12 > DR8 > PRY8 > C8 > 8 > C12 > 12 + """, + # Goal: DR_blurprint=0, PRY_blueprint=0, tanrai_blueprint=150 + # Average time cost: 161.37177965277806 + # Average rewards: [241.92774575 241.13046242 421.82134358 421.04494941 420.46893024 150.07799978] + 'series_9_ta152_only': """ + S9-Q0.5 > S9-PRY0.5 > S9-DR0.5 > Q0.5 > S9-Q4 > S9-Q2 > S9-Q1 > 0.5 + > S9-E-315 > S9-G4 > S9-G1.5 > Q1 > 1 > S9-E-031 > S9-DR2.5 > reset + > S9-G2.5 > S9-PRY2.5 > G1.5 > 1.5 > Q2 > E2 > 2 > DR2.5 > PRY2.5 + > G2.5 > 2.5 > S9-DR5 > S9-PRY5 > Q4 > G4 > 4 > S9-C6 > DR5 > PRY5 + > 5 > S9-DR8 > S9-PRY8 > S9-C8 > C6 > 6 > DR8 > PRY8 > C8 > 8 + > S9-C12 > C12 > 12 + """, + # Goal: DR_blurprint=513, PRY_blueprint=343, tanrai_blueprint=100 + # Average time cost: 124.67622465277958 + # Average rewards: [531.93022864 529.81919864 510.27473326 510.18530159 510.11215826 100.8088164] + 'series_9_blueprint_ta152_cube': """ + S9-DR0.5 > S9-Q0.5 > S9-PRY0.5 > 0.5 > S9-DR2.5 > S9-Q1 > S9-Q2 + > S9-H1 > S9-E-315 > S9-G1.5 > reset > S9-Q4 > S9-G4 > S9-H2 > Q1 + > H1 > 1 > S9-G2.5 > S9-DR5 > S9-PRY2.5 > G1.5 > 1.5 > S9-E-031 + > S9-DR8 > Q2 > E2 > H2 > 2 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S9-H4 + > S9-PRY5 > Q4 > G4 > H4 > 4 > S9-C6 > S9-PRY8 > DR5 > PRY5 > 5 > C6 + > 6 > S9-C8 > DR8 > PRY8 > C8 > 8 > S9-C12 > C12 > 12 + """, + # Goal: DR_blurprint=513, PRY_blueprint=343, tanrai_blueprint=100 + # Average time cost: 143.56399131945145 + # Average rewards: [520.06195858 519.19883191 392.86544828 392.64870495 392.49383995 102.2368499] + 'series_9_blueprint_ta152': """ + S9-DR0.5 > S9-PRY0.5 > S9-Q0.5 > S9-H0.5 > Q0.5 > S9-DR2.5 + > S9-G1.5 > S9-Q1 > S9-DR5 > 0.5 > S9-G4 > S9-Q2 > S9-PRY2.5 > reset + > S9-DR8 > Q1 > 1 > S9-E-315 > S9-G2.5 > G1.5 > 1.5 > S9-E-031 + > S9-Q4 > Q2 > E2 > 2 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S9-PRY5 + > S9-PRY8 > Q4 > G4 > 4 > S9-C6 > DR5 > PRY5 > 5 > C6 > 6 > S9-C8 + > S9-C12 > DR8 > PRY8 > C8 > 8 > C12 > 12 + """, + # Goal: DR_blurprint=513, PRY_blueprint=343, tanrai_blueprint=0 + # Average time cost: 82.0121088194467 + # Average rewards: [519.0311752 514.64003687 653.77171198 653.72126532 653.66129615 26.97694791] + 'series_9_blueprint_only_cube': """ + S9-DR0.5 > S9-PRY0.5 > S9-H0.5 > S9-H1 > S9-H2 > S9-DR2.5 > S9-DR5 + > 0.5 > S9-DR8 > reset > S9-H4 > S9-Q1 > Q1 > H1 > 1 > S9-G1.5 > G1.5 + > 1.5 > S9-G2.5 > S9-Q2 > S9-E-315 > S9-E-031 > Q2 > E2 > H2 > 2 + > S9-PRY2.5 > S9-G4 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S9-Q4 > Q4 > G4 + > H4 > 4 > S9-PRY5 > S9-PRY8 > S9-C6 > DR5 > PRY5 > 5 > C6 > 6 + > S9-C8 > S9-C12 > DR8 > PRY8 > C8 > 8 > C12 > 12 + """, + # Goal: DR_blurprint=513, PRY_blueprint=343, tanrai_blueprint=0 + # Average time cost: 124.71616166666873 + # Average rewards: [514.96354877 514.70099977 355.58865468 354.96831385 354.66888635 56.48432238] + 'series_9_blueprint_only': """ + S9-DR0.5 > S9-H0.5 > S9-PRY0.5 > S9-DR8 > S9-DR5 > S9-DR2.5 + > S9-G1.5 > S9-PRY2.5 > 0.5 > S9-G2.5 > S9-G4 > reset > S9-Q1 > Q1 + > 1 > S9-PRY5 > G1.5 > 1.5 > S9-Q2 > S9-E-031 > S9-E-315 > Q2 > E2 + > 2 > S9-PRY8 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S9-Q4 > Q4 > G4 > 4 + > S9-C6 > DR5 > PRY5 > 5 > C6 > 6 > S9-C8 > DR8 > PRY8 > C8 > 8 + > S9-C12 > C12 > 12 + """, # Goal: DR_blurprint=0, PRY_blueprint=0, tanrai_blueprint=150 # Average time cost: 153.41706666666678 # Average rewards: [238.69016631 238.37881965 529.71190834 528.92520834 528.39586667 150.07973333] diff --git a/module/research/preset_generator.py b/module/research/preset_generator.py index a7d61edcf..480d1969f 100644 --- a/module/research/preset_generator.py +++ b/module/research/preset_generator.py @@ -80,6 +80,8 @@ def translate(string: str, target='series_4_tenrai_only_cube', for_simulate=Fals def convert_name(name, series): name = re.sub(r'series_\d', f'series_{series}', name) + if 'series_9' in name: + name = name.replace('tenrai', 'ta152') if 'series_8' in name: name = name.replace('tenrai', '305') if 'series_7' in name: @@ -104,7 +106,7 @@ if __name__ == '__main__': Value( FILTER_STRING_CHEAPEST='Q1 > Q2 > T3 > T4 > Q4 > C6 > T6 > C8 > C12 > G1.5 > D2.5 > G2.5 > D5 > Q0.5 > G4 > D8 > H1 > H2 > H0.5 > D0.5 > H4') with Dict('DICT_FILTER_PRESET'): - for series in [8, 7, 6, 5, 4, 3, 2]: + for series in [9, 8, 7, 6, 5, 4, 3, 2]: def new_filter(**kwargs): for k, v in kwargs.items(): k = convert_name(k, series) diff --git a/module/research/project.py b/module/research/project.py index bc6a93e00..c7b54dcb4 100644 --- a/module/research/project.py +++ b/module/research/project.py @@ -408,6 +408,7 @@ class ResearchProject: '|kearsarge|hindenburg|shimanto|schultz|flandre' '|napoli|nakhimov|halford|bayard|daisen' '|goudenleeuw|mecklenburg|dmitri|kansas|vittorio' + '|valparaiso|maximmelmann|duncan|takahashi|orage' ')') REGEX_INPUT = re.compile('(coin|cube|part)') REGEX_DR_SHIP = re.compile( @@ -418,6 +419,7 @@ class ResearchProject: '|kearsarge|hindenburg' '|napoli|nakhimov' '|goudenleeuw|mecklenburg' + '|valparaiso|maximmelmann' ) # Generate with: """ @@ -436,12 +438,13 @@ class ResearchProject: '377', '395', '708', '763', '775', '782', '768', '308', '363', '375', '382', '368', '719', '778', '786', '788', '793', '319', '378', '386', '388', '393', '783', '713', '739', '771', '796', '383', '313', '339', '371', '396', '703', '758', '766', '790', '797', '303', '358', '366', '390', '397', '780', '736', '787', '711', '764', '380', - '336', '387', '311', '364', '418', '431', '444', '459', '474', '492', '018', '031', '044', '059', '074', '092', - '405', '412', '446', '457', '479', '494', '005', '012', '046', '057', '079', '094', '421', '422', '472', '477', - '495', '021', '022', '072', '077', '095', '408', '463', '475', '482', '468', '008', '063', '075', '082', '068', - '419', '478', '486', '488', '493', '019', '078', '086', '088', '093', '483', '413', '439', '471', '496', '083', - '013', '039', '071', '096', '403', '458', '466', '490', '497', '003', '058', '066', '090', '097', '480', '436', - '487', '411', '464', '080', '036', '087', '011', '064'] + '336', '387', '311', '364', '737', '781', '732', '740', '747', '337', '381', '332', '340', '347', '418', '431', + '444', '459', '474', '492', '018', '031', '044', '059', '074', '092', '405', '412', '446', '457', '479', '494', + '005', '012', '046', '057', '079', '094', '421', '422', '472', '477', '495', '021', '022', '072', '077', '095', + '408', '463', '475', '482', '468', '008', '063', '075', '082', '068', '419', '478', '486', '488', '493', '019', + '078', '086', '088', '093', '483', '413', '439', '471', '496', '083', '013', '039', '071', '096', '403', '458', + '466', '490', '497', '003', '058', '066', '090', '097', '480', '436', '487', '411', '464', '080', '036', '087', + '011', '064', '437', '481', '432', '440', '447', '037', '081', '032', '040', '047'] def __init__(self, name, series): """ @@ -633,7 +636,8 @@ class ResearchProjectJp: SHIP_S6 = ['kearsarge', 'hindenburg', 'shimanto', 'schultz', 'flandre'] SHIP_S7 = ['napoli', 'nakhimov', 'halford', 'bayard', 'daisen'] SHIP_S8 = ['goudenleeuw', 'mecklenburg', 'dmitri', 'kansas', 'vittorio'] - SHIP_ALL = SHIP_S1 + SHIP_S2 + SHIP_S3 + SHIP_S4 + SHIP_S5 + SHIP_S6 + SHIP_S7 + SHIP_S8 + SHIP_S9 = ['valparaiso', 'maximmelmann', 'duncan', 'takahashi', 'orage'] + SHIP_ALL = SHIP_S1 + SHIP_S2 + SHIP_S3 + SHIP_S4 + SHIP_S5 + SHIP_S6 + SHIP_S7 + SHIP_S8 + SHIP_S9 DR_SHIP = [ 'azuma', 'friedrich', 'drake', @@ -642,6 +646,7 @@ class ResearchProjectJp: 'kearsarge', 'hindenburg', 'napoli', 'nakhimov', 'goudenleeuw', 'mecklenburg', + 'valparaiso', 'maximmelmann', ] def __init__(self): diff --git a/module/research/project_data.py b/module/research/project_data.py index 9d7579029..4b9368af7 100644 --- a/module/research/project_data.py +++ b/module/research/project_data.py @@ -372,6 +372,11 @@ LIST_RESEARCH_PROJECT = [ {'name': 'T-249-MI', 'series': 8, 'time': 21600, 'task': 'Complete 6 commissions.', 'input': [], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, {'name': 'E-031-MI', 'series': 8, 'time': 7200, 'task': 'Scrap 8 pieces of gear.', 'input': [], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}, {'name': 'Coins'}]}, {'name': 'E-315-MI', 'series': 8, 'time': 7200, 'task': 'Scrap 15 pieces of gear.', 'input': [], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}, {'name': 'Coins'}]}, + {'name': 'E-180-MI', 'series': 8, 'time': 21600, 'task': '', 'input': [{'name': 'T3 Iron Blood Tech Pack', 'amount': 15}], 'output': [{'name': '试作型四联装305mmSKC39主炮T0设计图'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'E-136-MI', 'series': 8, 'time': 21600, 'task': '', 'input': [{'name': 'T3 Iron Blood Tech Pack', 'amount': 15}], 'output': [{'name': '试作型三联装283mm/54.5主炮T0设计图'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'E-111-MI', 'series': 8, 'time': 21600, 'task': '', 'input': [{'name': 'T3 Eagle Tech Pack', 'amount': 15}], 'output': [{'name': '试作型三联装406mm/45主炮Mk7T0设计图'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'E-164-MI', 'series': 8, 'time': 21600, 'task': '', 'input': [{'name': 'T3 Iron Blood Tech Pack', 'amount': 15}], 'output': [{'name': '试作型六联装Scotti20mm机炮Model1941T0设计图'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'E-187-MI', 'series': 8, 'time': 21600, 'task': '', 'input': [{'name': 'T3 Eagle Tech Pack', 'amount': 15}], 'output': [{'name': '试作型B-1-P\xa0三联装180mm主炮Model1932改T0设计图'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, {'name': 'G-412-MI', 'series': 8, 'time': 5400, 'task': '', 'input': [{'name': 'Coins', 'amount': 1500}], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}]}, {'name': 'G-236-MI', 'series': 8, 'time': 9000, 'task': '', 'input': [{'name': 'Coins', 'amount': 3000}], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}]}, {'name': 'G-531-MI', 'series': 8, 'time': 14400, 'task': '', 'input': [{'name': 'Coins', 'amount': 6000}], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, @@ -402,6 +407,51 @@ LIST_RESEARCH_PROJECT = [ {'name': 'Q-089-MI', 'series': 8, 'time': 14400, 'task': '', 'input': [{'name': 'T3 Aircraft Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, {'name': 'H-387-MI', 'series': 8, 'time': 3600, 'task': '', 'input': [{'name': 'Wisdom Cube', 'amount': 3}], 'output': [{'name': 'Random Blueprint'}, {'name': 'T1 Mystery Retrofit Blueprint'}, {'name': 'Cognitive Chips'}]}, {'name': 'H-339-MI', 'series': 8, 'time': 7200, 'task': '', 'input': [{'name': 'Wisdom Cube', 'amount': 6}], 'output': [{'name': 'Random Blueprint'}, {'name': 'T2 Mystery Retrofit Blueprint'}, {'name': 'Cognitive Chips'}]}, + {'name': 'C-153-MI', 'series': 9, 'time': 21600, 'task': '', 'input': [], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}, {'name': 'Coins'}]}, + {'name': 'C-185-MI', 'series': 9, 'time': 28800, 'task': '', 'input': [], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'B-622-MI', 'series': 9, 'time': 14400, 'task': 'Clear Chapter 3 or onward stages for 6 times on Normal Mode ', 'input': [], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}]}, + {'name': 'B-636-MI', 'series': 9, 'time': 14400, 'task': 'Clear Chapter 4 or onward stages for 6 times on Normal Mode ', 'input': [], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}]}, + {'name': 'B-654-MI', 'series': 9, 'time': 14400, 'task': 'Clear Chapter 5 or onward stages for 6 times on Normal Mode ', 'input': [], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}]}, + {'name': 'B-682-MI', 'series': 9, 'time': 14400, 'task': 'Clear Chapter 6 or onward stages for 6 times on Normal Mode ', 'input': [], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}]}, + {'name': 'B-235-MI', 'series': 9, 'time': 14400, 'task': 'Clear Chapter 7 or onward stages for 5 times on Normal Mode ', 'input': [], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'B-268-MI', 'series': 9, 'time': 14400, 'task': 'Clear Chapter 8 or onward stages for 5 times on Normal Mode ', 'input': [], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'B-128-MI', 'series': 9, 'time': 14400, 'task': 'Clear Chapter 9 or onward stages for 4 times on Normal Mode ', 'input': [], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'B-164-MI', 'series': 9, 'time': 14400, 'task': 'Clear Chapter 10 or onward stages for 4 times on Normal Mode ', 'input': [], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'T-018-MI', 'series': 9, 'time': 10800, 'task': 'Complete 2 commissions.', 'input': [], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}, {'name': 'Coins'}]}, + {'name': 'T-384-MI', 'series': 9, 'time': 14400, 'task': 'Complete 4 commissions.', 'input': [], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}, {'name': 'Coins'}]}, + {'name': 'T-249-MI', 'series': 9, 'time': 21600, 'task': 'Complete 6 commissions.', 'input': [], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'E-031-MI', 'series': 9, 'time': 7200, 'task': 'Scrap 8 pieces of gear.', 'input': [], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}, {'name': 'Coins'}]}, + {'name': 'E-315-MI', 'series': 9, 'time': 7200, 'task': 'Scrap 15 pieces of gear.', 'input': [], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}, {'name': 'Coins'}]}, + {'name': 'G-412-MI', 'series': 9, 'time': 5400, 'task': '', 'input': [{'name': 'Coins', 'amount': 1500}], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}]}, + {'name': 'G-236-MI', 'series': 9, 'time': 9000, 'task': '', 'input': [{'name': 'Coins', 'amount': 3000}], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}]}, + {'name': 'G-531-MI', 'series': 9, 'time': 14400, 'task': '', 'input': [{'name': 'Coins', 'amount': 6000}], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'D-737-MI', 'series': 9, 'time': 9000, 'task': '', 'input': [{'name': 'Coins', 'amount': 3000}], 'output': [{'name': 'Blueprint - Valparaíso'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}]}, + {'name': 'D-781-MI', 'series': 9, 'time': 9000, 'task': '', 'input': [{'name': 'Coins', 'amount': 3000}], 'output': [{'name': 'Blueprint - Max Immelmann'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}]}, + {'name': 'D-732-MI', 'series': 9, 'time': 9000, 'task': '', 'input': [{'name': 'Coins', 'amount': 3000}], 'output': [{'name': 'Blueprint - Duncan'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}]}, + {'name': 'D-740-MI', 'series': 9, 'time': 9000, 'task': '', 'input': [{'name': 'Coins', 'amount': 3000}], 'output': [{'name': 'Blueprint - Takahashi'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}]}, + {'name': 'D-747-MI', 'series': 9, 'time': 9000, 'task': '', 'input': [{'name': 'Coins', 'amount': 3000}], 'output': [{'name': 'Blueprint - Orage'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}]}, + {'name': 'D-337-MI', 'series': 9, 'time': 18000, 'task': '', 'input': [{'name': 'Coins', 'amount': 5000}], 'output': [{'name': 'Blueprint - Valparaíso'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'D-381-MI', 'series': 9, 'time': 18000, 'task': '', 'input': [{'name': 'Coins', 'amount': 5000}], 'output': [{'name': 'Blueprint - Max Immelmann'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'D-332-MI', 'series': 9, 'time': 18000, 'task': '', 'input': [{'name': 'Coins', 'amount': 5000}], 'output': [{'name': 'Blueprint - Duncan'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'D-340-MI', 'series': 9, 'time': 18000, 'task': '', 'input': [{'name': 'Coins', 'amount': 5000}], 'output': [{'name': 'Blueprint - Takahashi'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'D-347-MI', 'series': 9, 'time': 18000, 'task': '', 'input': [{'name': 'Coins', 'amount': 5000}], 'output': [{'name': 'Blueprint - Orage'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'Q-302-MI', 'series': 9, 'time': 3600, 'task': '', 'input': [{'name': 'T1 General Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}, {'name': 'Coins'}]}, + {'name': 'Q-310-MI', 'series': 9, 'time': 3600, 'task': '', 'input': [{'name': 'T1 Main Gun Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}, {'name': 'Coins'}]}, + {'name': 'Q-351-MI', 'series': 9, 'time': 3600, 'task': '', 'input': [{'name': 'T1 Torpedo Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}, {'name': 'Coins'}]}, + {'name': 'Q-368-MI', 'series': 9, 'time': 3600, 'task': '', 'input': [{'name': 'T1 Anti-Air Gun Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}, {'name': 'Coins'}]}, + {'name': 'Q-389-MI', 'series': 9, 'time': 3600, 'task': '', 'input': [{'name': 'T1 Aircraft Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}, {'name': 'Coins'}]}, + {'name': 'Q-202-MI', 'series': 9, 'time': 7200, 'task': '', 'input': [{'name': 'T2 General Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}, {'name': 'Coins'}]}, + {'name': 'Q-210-MI', 'series': 9, 'time': 7200, 'task': '', 'input': [{'name': 'T2 Main Gun Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}, {'name': 'Coins'}]}, + {'name': 'Q-251-MI', 'series': 9, 'time': 7200, 'task': '', 'input': [{'name': 'T2 Torpedo Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}, {'name': 'Coins'}]}, + {'name': 'Q-268-MI', 'series': 9, 'time': 7200, 'task': '', 'input': [{'name': 'T2 Anti-Air Gun Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}, {'name': 'Coins'}]}, + {'name': 'Q-289-MI', 'series': 9, 'time': 7200, 'task': '', 'input': [{'name': 'T2 Aircraft Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}, {'name': 'Coins'}]}, + {'name': 'Q-002-MI', 'series': 9, 'time': 14400, 'task': '', 'input': [{'name': 'T3 General Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'Q-010-MI', 'series': 9, 'time': 14400, 'task': '', 'input': [{'name': 'T3 Main Gun Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'Q-051-MI', 'series': 9, 'time': 14400, 'task': '', 'input': [{'name': 'T3 Torpedo Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'Q-068-MI', 'series': 9, 'time': 14400, 'task': '', 'input': [{'name': 'T3 Anti-Air Gun Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'Q-089-MI', 'series': 9, 'time': 14400, 'task': '', 'input': [{'name': 'T3 Aircraft Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'H-387-MI', 'series': 9, 'time': 3600, 'task': '', 'input': [{'name': 'Wisdom Cube', 'amount': 3}], 'output': [{'name': 'Random Blueprint'}, {'name': 'T1 Mystery Retrofit Blueprint'}, {'name': 'Cognitive Chips'}]}, + {'name': 'H-339-MI', 'series': 9, 'time': 7200, 'task': '', 'input': [{'name': 'Wisdom Cube', 'amount': 6}], 'output': [{'name': 'Random Blueprint'}, {'name': 'T2 Mystery Retrofit Blueprint'}, {'name': 'Cognitive Chips'}]}, {'name': 'C-038-RF', 'series': 1, 'time': 43200, 'task': '', 'input': [], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, {'name': 'B-351-RF', 'series': 1, 'time': 14400, 'task': 'Clear Chapter 11 or onward stages for 3 times on Normal Mode ', 'input': [], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, {'name': 'B-397-RF', 'series': 1, 'time': 14400, 'task': 'Clear Chapter 12 or onward stages for 3 times on Normal Mode ', 'input': [], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, @@ -599,4 +649,29 @@ LIST_RESEARCH_PROJECT = [ {'name': 'Q-068-UL', 'series': 8, 'time': 1800, 'task': '', 'input': [{'name': 'Coins', 'amount': 5000}, {'name': 'T3 Anti-Air Gun Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, {'name': 'Q-089-UL', 'series': 8, 'time': 1800, 'task': '', 'input': [{'name': 'Coins', 'amount': 5000}, {'name': 'T3 Aircraft Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, {'name': 'H-063-UL', 'series': 8, 'time': 1800, 'task': '', 'input': [{'name': 'Coins', 'amount': 8000}, {'name': 'Wisdom Cube', 'amount': 3}], 'output': [{'name': 'Random Blueprint'}, {'name': 'T3 Mystery Retrofit Blueprint'}, {'name': 'Cognitive Chips'}]}, + {'name': 'E-880-MI', 'series': 8, 'time': 7200, 'task': '', 'input': [{'name': 'T3 Triple 283mm Main Gun (SK C/34) Design', 'amount': 45}], 'output': [{'name': '试作型四联装305mmSKC39主炮T0设计图'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'E-836-MI', 'series': 8, 'time': 7200, 'task': '', 'input': [{'name': 'T3 Triple 283mm Main Gun (SK C/28) Design', 'amount': 45}], 'output': [{'name': '试作型三联装283mm/54.5主炮T0设计图'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'E-811-MI', 'series': 8, 'time': 7200, 'task': '', 'input': [{'name': 'T3 Triple 406mm MK6 Main Gun Design', 'amount': 45}], 'output': [{'name': '试作型三联装406mm/45主炮Mk7T0设计图'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'E-864-MI', 'series': 8, 'time': 7200, 'task': '', 'input': [{'name': 'Twin 37mm AA Gun (M1932) T3 Design', 'amount': 45}], 'output': [{'name': '试作型六联装Scotti20mm机炮Model1941T0设计图'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'E-887-MI', 'series': 8, 'time': 7200, 'task': '', 'input': [{'name': 'T3 Single 130mm Main Gun Design', 'amount': 45}], 'output': [{'name': '试作型B-1-P\xa0三联装180mm主炮Model1932改T0设计图'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'C-038-RF', 'series': 9, 'time': 43200, 'task': '', 'input': [], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'B-351-RF', 'series': 9, 'time': 14400, 'task': 'Clear Chapter 11 or onward stages for 3 times on Normal Mode ', 'input': [], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'B-397-RF', 'series': 9, 'time': 14400, 'task': 'Clear Chapter 12 or onward stages for 3 times on Normal Mode ', 'input': [], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'D-437-RF', 'series': 9, 'time': 28800, 'task': '', 'input': [{'name': 'Coins', 'amount': 8000}], 'output': [{'name': 'Blueprint - Valparaíso'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'D-481-RF', 'series': 9, 'time': 28800, 'task': '', 'input': [{'name': 'Coins', 'amount': 8000}], 'output': [{'name': 'Blueprint - Max Immelmann'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'D-432-RF', 'series': 9, 'time': 28800, 'task': '', 'input': [{'name': 'Coins', 'amount': 8000}], 'output': [{'name': 'Blueprint - Duncan'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'D-440-RF', 'series': 9, 'time': 28800, 'task': '', 'input': [{'name': 'Coins', 'amount': 8000}], 'output': [{'name': 'Blueprint - Takahashi'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'D-447-RF', 'series': 9, 'time': 28800, 'task': '', 'input': [{'name': 'Coins', 'amount': 8000}], 'output': [{'name': 'Blueprint - Orage'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'H-207-RF', 'series': 9, 'time': 14400, 'task': '', 'input': [{'name': 'Wisdom Cube', 'amount': 10}], 'output': [{'name': 'Random Blueprint'}, {'name': 'T3 Mystery Retrofit Blueprint'}, {'name': 'Cognitive Chips'}]}, + {'name': 'D-037-UL', 'series': 9, 'time': 1800, 'task': '', 'input': [{'name': 'Coins', 'amount': 5000}, {'name': 'Wisdom Cube', 'amount': 5}], 'output': [{'name': 'Blueprint - Valparaíso'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'D-081-UL', 'series': 9, 'time': 1800, 'task': '', 'input': [{'name': 'Coins', 'amount': 5000}, {'name': 'Wisdom Cube', 'amount': 5}], 'output': [{'name': 'Blueprint - Max Immelmann'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'D-032-UL', 'series': 9, 'time': 1800, 'task': '', 'input': [{'name': 'Coins', 'amount': 5000}, {'name': 'Wisdom Cube', 'amount': 5}], 'output': [{'name': 'Blueprint - Duncan'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'D-040-UL', 'series': 9, 'time': 1800, 'task': '', 'input': [{'name': 'Coins', 'amount': 5000}, {'name': 'Wisdom Cube', 'amount': 5}], 'output': [{'name': 'Blueprint - Takahashi'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'D-047-UL', 'series': 9, 'time': 1800, 'task': '', 'input': [{'name': 'Coins', 'amount': 5000}, {'name': 'Wisdom Cube', 'amount': 5}], 'output': [{'name': 'Blueprint - Orage'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'Q-002-UL', 'series': 9, 'time': 1800, 'task': '', 'input': [{'name': 'Coins', 'amount': 5000}, {'name': 'T3 General Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'Q-010-UL', 'series': 9, 'time': 1800, 'task': '', 'input': [{'name': 'Coins', 'amount': 5000}, {'name': 'T3 Main Gun Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'Q-051-UL', 'series': 9, 'time': 1800, 'task': '', 'input': [{'name': 'Coins', 'amount': 5000}, {'name': 'T3 Torpedo Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'Q-068-UL', 'series': 9, 'time': 1800, 'task': '', 'input': [{'name': 'Coins', 'amount': 5000}, {'name': 'T3 Anti-Air Gun Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'Q-089-UL', 'series': 9, 'time': 1800, 'task': '', 'input': [{'name': 'Coins', 'amount': 5000}, {'name': 'T3 Aircraft Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, + {'name': 'H-063-UL', 'series': 9, 'time': 1800, 'task': '', 'input': [{'name': 'Coins', 'amount': 8000}, {'name': 'Wisdom Cube', 'amount': 3}], 'output': [{'name': 'Random Blueprint'}, {'name': 'T3 Mystery Retrofit Blueprint'}, {'name': 'Cognitive Chips'}]}, ] diff --git a/module/research/selector.py b/module/research/selector.py index 0e94dc36d..05146c330 100644 --- a/module/research/selector.py +++ b/module/research/selector.py @@ -12,7 +12,7 @@ from module.research.project import research_detect, research_jp_detect from module.research.ui import ResearchUI RESEARCH_ENTRANCE = [ENTRANCE_1, ENTRANCE_2, ENTRANCE_3, ENTRANCE_4, ENTRANCE_5] -FILTER_REGEX = re.compile('(s[12345678])?' +FILTER_REGEX = re.compile('(s[123456789])?' '-?' '(neptune|monarch|ibuki|izumo|roon|saintlouis' '|seattle|georgia|kitakaze|azuma|friedrich' @@ -21,7 +21,8 @@ FILTER_REGEX = re.compile('(s[12345678])?' '|plymouth|rupprecht|harbin|chkalov|brest' '|kearsarge|hindenburg|shimanto|schultz|flandre' '|napoli|nakhimov|halford|bayard|daisen' - '|goudenleeuw|mecklenburg|dmitri|kansas|vittorio)?' + '|goudenleeuw|mecklenburg|dmitri|kansas|vittorio' + '|valparaiso|maximmelmann|duncan|takahashi|orage)?' '(dr|pry)?' '([bcdeghqt])?' '-?' diff --git a/module/research/series.py b/module/research/series.py index 479996d3d..89e534c45 100644 --- a/module/research/series.py +++ b/module/research/series.py @@ -14,6 +14,8 @@ RESEARCH_SCALING = [ def match_series(image, scaling): image = rgb2gray(image) + if TEMPLATE_S9.match(image, scaling=scaling): + return 9 if TEMPLATE_S8.match(image, scaling=scaling): return 8 if TEMPLATE_S7.match(image, scaling=scaling): From 55e1d58fa03f5ef01d8e6074b025b893c79c92fc Mon Sep 17 00:00:00 2001 From: sui-feng-cb <2518179942@qq.com> Date: Thu, 9 Jul 2026 21:40:34 +0800 Subject: [PATCH 2/3] Upd: project data --- module/research/project_data.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/module/research/project_data.py b/module/research/project_data.py index 4b9368af7..0b84e90d2 100644 --- a/module/research/project_data.py +++ b/module/research/project_data.py @@ -372,11 +372,11 @@ LIST_RESEARCH_PROJECT = [ {'name': 'T-249-MI', 'series': 8, 'time': 21600, 'task': 'Complete 6 commissions.', 'input': [], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, {'name': 'E-031-MI', 'series': 8, 'time': 7200, 'task': 'Scrap 8 pieces of gear.', 'input': [], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}, {'name': 'Coins'}]}, {'name': 'E-315-MI', 'series': 8, 'time': 7200, 'task': 'Scrap 15 pieces of gear.', 'input': [], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}, {'name': 'Coins'}]}, - {'name': 'E-180-MI', 'series': 8, 'time': 21600, 'task': '', 'input': [{'name': 'T3 Iron Blood Tech Pack', 'amount': 15}], 'output': [{'name': '试作型四联装305mmSKC39主炮T0设计图'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, - {'name': 'E-136-MI', 'series': 8, 'time': 21600, 'task': '', 'input': [{'name': 'T3 Iron Blood Tech Pack', 'amount': 15}], 'output': [{'name': '试作型三联装283mm/54.5主炮T0设计图'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, - {'name': 'E-111-MI', 'series': 8, 'time': 21600, 'task': '', 'input': [{'name': 'T3 Eagle Tech Pack', 'amount': 15}], 'output': [{'name': '试作型三联装406mm/45主炮Mk7T0设计图'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, - {'name': 'E-164-MI', 'series': 8, 'time': 21600, 'task': '', 'input': [{'name': 'T3 Iron Blood Tech Pack', 'amount': 15}], 'output': [{'name': '试作型六联装Scotti20mm机炮Model1941T0设计图'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, - {'name': 'E-187-MI', 'series': 8, 'time': 21600, 'task': '', 'input': [{'name': 'T3 Eagle Tech Pack', 'amount': 15}], 'output': [{'name': '试作型B-1-P\xa0三联装180mm主炮Model1932改T0设计图'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'E-180-MI', 'series': 8, 'time': 21600, 'task': '', 'input': [{'name': 'T3 Iron Blood Tech Pack', 'amount': 15}], 'output': [{'name': 'Prototype Quadruple 305mm SKC39 Main Gun Mount T0 Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'E-136-MI', 'series': 8, 'time': 21600, 'task': '', 'input': [{'name': 'T3 Iron Blood Tech Pack', 'amount': 15}], 'output': [{'name': 'Prototype Triple 283mm/54.5 Main Gun Mount T0 Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'E-111-MI', 'series': 8, 'time': 21600, 'task': '', 'input': [{'name': 'T3 Eagle Tech Pack', 'amount': 15}], 'output': [{'name': 'Prototype Triple 406mm/45 MK7 Main Gun Mount T0 Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'E-164-MI', 'series': 8, 'time': 21600, 'task': '', 'input': [{'name': 'T3 Iron Blood Tech Pack', 'amount': 15}], 'output': [{'name': 'Prototype Sextuple 20mm Scotti Model 1941 Anti-Air Gun T0 Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'E-187-MI', 'series': 8, 'time': 21600, 'task': '', 'input': [{'name': 'T3 Eagle Tech Pack', 'amount': 15}], 'output': [{'name': 'Prototype Triple 180mm B-1-P\xa0Model 1932\xa0(Impr.)\xa0Main\xa0Gun\xa0Mount\xa0T0\xa0Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, {'name': 'G-412-MI', 'series': 8, 'time': 5400, 'task': '', 'input': [{'name': 'Coins', 'amount': 1500}], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}]}, {'name': 'G-236-MI', 'series': 8, 'time': 9000, 'task': '', 'input': [{'name': 'Coins', 'amount': 3000}], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T2'}]}, {'name': 'G-531-MI', 'series': 8, 'time': 14400, 'task': '', 'input': [{'name': 'Coins', 'amount': 6000}], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, @@ -649,11 +649,11 @@ LIST_RESEARCH_PROJECT = [ {'name': 'Q-068-UL', 'series': 8, 'time': 1800, 'task': '', 'input': [{'name': 'Coins', 'amount': 5000}, {'name': 'T3 Anti-Air Gun Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, {'name': 'Q-089-UL', 'series': 8, 'time': 1800, 'task': '', 'input': [{'name': 'Coins', 'amount': 5000}, {'name': 'T3 Aircraft Part', 'amount': 20}], 'output': [{'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, {'name': 'H-063-UL', 'series': 8, 'time': 1800, 'task': '', 'input': [{'name': 'Coins', 'amount': 8000}, {'name': 'Wisdom Cube', 'amount': 3}], 'output': [{'name': 'Random Blueprint'}, {'name': 'T3 Mystery Retrofit Blueprint'}, {'name': 'Cognitive Chips'}]}, - {'name': 'E-880-MI', 'series': 8, 'time': 7200, 'task': '', 'input': [{'name': 'T3 Triple 283mm Main Gun (SK C/34) Design', 'amount': 45}], 'output': [{'name': '试作型四联装305mmSKC39主炮T0设计图'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, - {'name': 'E-836-MI', 'series': 8, 'time': 7200, 'task': '', 'input': [{'name': 'T3 Triple 283mm Main Gun (SK C/28) Design', 'amount': 45}], 'output': [{'name': '试作型三联装283mm/54.5主炮T0设计图'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, - {'name': 'E-811-MI', 'series': 8, 'time': 7200, 'task': '', 'input': [{'name': 'T3 Triple 406mm MK6 Main Gun Design', 'amount': 45}], 'output': [{'name': '试作型三联装406mm/45主炮Mk7T0设计图'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, - {'name': 'E-864-MI', 'series': 8, 'time': 7200, 'task': '', 'input': [{'name': 'Twin 37mm AA Gun (M1932) T3 Design', 'amount': 45}], 'output': [{'name': '试作型六联装Scotti20mm机炮Model1941T0设计图'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, - {'name': 'E-887-MI', 'series': 8, 'time': 7200, 'task': '', 'input': [{'name': 'T3 Single 130mm Main Gun Design', 'amount': 45}], 'output': [{'name': '试作型B-1-P\xa0三联装180mm主炮Model1932改T0设计图'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'E-880-MI', 'series': 8, 'time': 7200, 'task': '', 'input': [{'name': 'T3 Triple 283mm Main Gun (SK C/34) Design', 'amount': 45}], 'output': [{'name': 'Prototype Quadruple 305mm SKC39 Main Gun Mount T0 Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'E-836-MI', 'series': 8, 'time': 7200, 'task': '', 'input': [{'name': 'T3 Triple 283mm Main Gun (SK C/28) Design', 'amount': 45}], 'output': [{'name': 'Prototype Triple 283mm/54.5 Main Gun Mount T0 Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'E-811-MI', 'series': 8, 'time': 7200, 'task': '', 'input': [{'name': 'T3 Triple 406mm MK6 Main Gun Design', 'amount': 45}], 'output': [{'name': 'Prototype Triple 406mm/45 MK7 Main Gun Mount T0 Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'E-864-MI', 'series': 8, 'time': 7200, 'task': '', 'input': [{'name': 'Twin 37mm AA Gun (M1932) T3 Design', 'amount': 45}], 'output': [{'name': 'Prototype Sextuple 20mm Scotti Model 1941 Anti-Air Gun T0 Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, + {'name': 'E-887-MI', 'series': 8, 'time': 7200, 'task': '', 'input': [{'name': 'T3 Single 130mm Main Gun Design', 'amount': 45}], 'output': [{'name': 'Prototype Triple 180mm B-1-P\xa0Model 1932\xa0(Impr.)\xa0Main\xa0Gun\xa0Mount\xa0T0\xa0Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, {'name': 'C-038-RF', 'series': 9, 'time': 43200, 'task': '', 'input': [], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}, {'name': 'Coins'}]}, {'name': 'B-351-RF', 'series': 9, 'time': 14400, 'task': 'Clear Chapter 11 or onward stages for 3 times on Normal Mode ', 'input': [], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, {'name': 'B-397-RF', 'series': 9, 'time': 14400, 'task': 'Clear Chapter 12 or onward stages for 3 times on Normal Mode ', 'input': [], 'output': [{'name': 'Random Blueprint'}, {'name': 'Random Gear Design'}, {'name': 'Random Gear Design T3'}]}, From 99d327d0f70745fb0095089ecb00d5f0bf56deb8 Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Thu, 9 Jul 2026 22:40:12 +0800 Subject: [PATCH 3/3] Upd: [TW] Event entrance of Miracle by Midnight (event_20260625_cn) --- campaign/Readme.md | 1 + module/config/argument/args.json | 32 ++++++++------------------------ module/config/i18n/zh-TW.json | 2 +- 3 files changed, 10 insertions(+), 25 deletions(-) diff --git a/campaign/Readme.md b/campaign/Readme.md index 0a1820c4d..52aa38dd4 100644 --- a/campaign/Readme.md +++ b/campaign/Readme.md @@ -304,3 +304,4 @@ To add a new event, add a new row in here, and run `python -m module.config.conf | 20260625 | event 20230223 cn | Revelations of Dust | - | - | - | 復刻湮燼塵墟 | | 20260625 | event 20260625 cn | Miracle by Midnight | 美梦巡演奇妙夜 | Miracle by Midnight | 幻夢のカヴァルカード | - | | 20260703 | coalition 20230323 | Frostfall | - | - | - | 極地風暴 | +| 20260709 | event 20260625 cn | Miracle by Midnight | - | - | - | 美夢巡演奇秒夜 | diff --git a/module/config/argument/args.json b/module/config/argument/args.json index 5180a0f15..2280571ef 100644 --- a/module/config/argument/args.json +++ b/module/config/argument/args.json @@ -1663,7 +1663,6 @@ "type": "select", "value": "campaign_main", "option": [ - "event_20230223_cn", "event_20260625_cn" ], "option_cn": [ @@ -1676,10 +1675,9 @@ "event_20260625_cn" ], "option_tw": [ - "event_20230223_cn" + "event_20260625_cn" ], "option_bold": [ - "event_20230223_cn", "event_20260625_cn" ] }, @@ -2070,7 +2068,6 @@ "type": "select", "value": "campaign_main", "option": [ - "event_20230223_cn", "event_20260625_cn" ], "option_cn": [ @@ -2083,10 +2080,9 @@ "event_20260625_cn" ], "option_tw": [ - "event_20230223_cn" + "event_20260625_cn" ], "option_bold": [ - "event_20230223_cn", "event_20260625_cn" ] }, @@ -2467,7 +2463,6 @@ "type": "select", "value": "campaign_main", "option": [ - "event_20230223_cn", "event_20260625_cn" ], "option_cn": [ @@ -2480,10 +2475,9 @@ "event_20260625_cn" ], "option_tw": [ - "event_20230223_cn" + "event_20260625_cn" ], "option_bold": [ - "event_20230223_cn", "event_20260625_cn" ] }, @@ -4216,7 +4210,6 @@ "type": "select", "value": "campaign_main", "option": [ - "event_20230223_cn", "event_20260625_cn" ], "option_cn": [ @@ -4229,10 +4222,9 @@ "event_20260625_cn" ], "option_tw": [ - "event_20230223_cn" + "event_20260625_cn" ], "option_bold": [ - "event_20230223_cn", "event_20260625_cn" ] }, @@ -4630,7 +4622,6 @@ "type": "select", "value": "campaign_main", "option": [ - "event_20230223_cn", "event_20260625_cn" ], "option_cn": [ @@ -4643,10 +4634,9 @@ "event_20260625_cn" ], "option_tw": [ - "event_20230223_cn" + "event_20260625_cn" ], "option_bold": [ - "event_20230223_cn", "event_20260625_cn" ] }, @@ -5044,7 +5034,6 @@ "type": "select", "value": "campaign_main", "option": [ - "event_20230223_cn", "event_20260625_cn" ], "option_cn": [ @@ -5057,10 +5046,9 @@ "event_20260625_cn" ], "option_tw": [ - "event_20230223_cn" + "event_20260625_cn" ], "option_bold": [ - "event_20230223_cn", "event_20260625_cn" ] }, @@ -5458,7 +5446,6 @@ "type": "select", "value": "campaign_main", "option": [ - "event_20230223_cn", "event_20260625_cn" ], "option_cn": [ @@ -5471,10 +5458,9 @@ "event_20260625_cn" ], "option_tw": [ - "event_20230223_cn" + "event_20260625_cn" ], "option_bold": [ - "event_20230223_cn", "event_20260625_cn" ] }, @@ -5862,7 +5848,6 @@ "type": "select", "value": "campaign_main", "option": [ - "event_20230223_cn", "event_20260625_cn" ], "option_cn": [ @@ -5875,10 +5860,9 @@ "event_20260625_cn" ], "option_tw": [ - "event_20230223_cn" + "event_20260625_cn" ], "option_bold": [ - "event_20230223_cn", "event_20260625_cn" ] }, diff --git a/module/config/i18n/zh-TW.json b/module/config/i18n/zh-TW.json index 3ff726c6a..3c199785f 100644 --- a/module/config/i18n/zh-TW.json +++ b/module/config/i18n/zh-TW.json @@ -772,7 +772,7 @@ "event_20260326_cn": "漫遊者招募計劃", "event_20260417_cn": "假日航線閃耀海濱", "event_20260520_cn": "聖印前的同盟", - "event_20260625_cn": "Miracle by Midnight", + "event_20260625_cn": "美夢巡演奇秒夜", "raid_20200624": "特別演習埃塞克斯級(復刻)", "raid_20210708": "復刻穿越彼方的水線", "raid_20220127": "演習神秘事件調查",