From e1c113d892ca1caedae6bc443b224b4cf5baa819 Mon Sep 17 00:00:00 2001 From: MistEO Date: Sat, 18 Feb 2023 01:14:00 +0800 Subject: [PATCH 001/100] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E6=88=98?= =?UTF-8?q?=E6=96=97=E5=B9=B2=E5=91=98=E5=A4=B4=E5=83=8F=E5=8C=B9=E9=85=8D?= =?UTF-8?q?=E9=98=88=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resource/tasks.json b/resource/tasks.json index 00e476c31a..75cb6e234a 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -6247,7 +6247,7 @@ }, "BattleAvatarData": { "template": "empty.png", - "templThreshold": 0.9 + "templThreshold": 0.8 }, "BattleDroneAvatarData": { "template": "empty.png", From 7198bc8311c2ade0c0e7c8a1a90d5b0bf663e1af Mon Sep 17 00:00:00 2001 From: xjdx Date: Sat, 18 Feb 2023 04:26:44 +0800 Subject: [PATCH 002/100] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D"=E5=A4=8D?= =?UTF-8?q?=E6=A0=B8=E5=B9=B2=E5=91=98=E9=80=89=E6=8B=A9"=E7=9A=84?= =?UTF-8?q?=E4=B8=80=E4=BA=9Bbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 3 +- .../Task/Infrast/InfrastAbstractTask.cpp | 28 +++++++++++-------- src/MaaCore/Task/Infrast/InfrastDormTask.cpp | 9 +++++- .../Task/Infrast/InfrastProductionTask.cpp | 10 +++---- 4 files changed, 30 insertions(+), 20 deletions(-) diff --git a/resource/tasks.json b/resource/tasks.json index 75cb6e234a..fa6155e65b 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -2224,7 +2224,7 @@ "“耀阳”" ], [ - "玛恩.+", + "玛恩.*", "玛恩纳" ], [ @@ -4825,6 +4825,7 @@ }, "InfrastSortByTrustButtonClickAgain": { "action": "ClickSelf", + "templThreshold": 0.7, "cache": false, "roi": [ 1000, diff --git a/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp b/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp index 4eb03b9363..224d62cac4 100644 --- a/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp @@ -153,6 +153,9 @@ bool asst::InfrastAbstractTask::swipe_and_select_custom_opers(bool is_dorm_order if (!is_dorm_order) { ProcessTask(*this, { "InfrastOperListTabSkillUnClicked", "Stop" }).run(); } + else { + ProcessTask(*this, { "InfrastOperListTabMoodDoubleClickWhenUnclicked" }).run(); + } if (max_num_of_opers() > 1) { click_clear_button(); // 先排序后清空,加速干员变化不大时的选择速度 @@ -205,12 +208,13 @@ bool asst::InfrastAbstractTask::swipe_and_select_custom_opers(bool is_dorm_order // 然后滑动到最左边,清空一下,在走后面的识别+按序点击逻辑 if (is_dorm_order) { ProcessTask(*this, { "InfrastOperListTabMoodDoubleClick" }).run(); + sleep(200); } else { ProcessTask(*this, { "InfrastOperListTabWorkStatusUnClicked" }).run(); } - if (room_config.sort || room_config.autofill) { + if (swipe_times) { swipe_to_the_left_of_operlist(swipe_times + 1); swipe_times = 0; } @@ -224,14 +228,10 @@ bool asst::InfrastAbstractTask::swipe_and_select_custom_opers(bool is_dorm_order return false; } - if (!is_dorm_order) { - if (swipe_times) swipe_to_the_left_of_operlist(swipe_times + 1); - swipe_times = 0; - if (!select_opers_review(origin_room_config)) { - // 复核失败,说明current_room_config与OCR识别是不符的,current_room_config是无效信息,还原到用户原来的配置,重选 - current_room_config() = std::move(origin_room_config); - return false; - } + if (!is_dorm_order && !select_opers_review(origin_room_config)) { + // 复核失败,说明current_room_config与OCR识别是不符的,current_room_config是无效信息,还原到用户原来的配置,重选 + current_room_config() = std::move(origin_room_config); + return false; } return true; @@ -250,7 +250,7 @@ bool asst::InfrastAbstractTask::select_opers_review(infrast::CustomRoomConfig co const auto image = ctrler()->get_image(); InfrastOperImageAnalyzer oper_analyzer(image); - oper_analyzer.set_to_be_calced(InfrastOperImageAnalyzer::ToBeCalced::Selected); + oper_analyzer.set_to_be_calced(InfrastOperImageAnalyzer::ToBeCalced::Selected | InfrastOperImageAnalyzer::ToBeCalced::Doing); if (!oper_analyzer.analyze()) { Log.warn("No oper"); return false; @@ -264,6 +264,9 @@ bool asst::InfrastAbstractTask::select_opers_review(infrast::CustomRoomConfig co Log.warn("select opers review fail: 选中干员数与期望不符"); return false; } + if (facility_name() != "Dorm" && (!m_is_custom || room_config.names.empty() && room_config.candidates.empty())) { + return true; + } if (selected_count < room_config.names.size()) { Log.warn("select opers review fail: 存在自定义干员未选中"); return false; @@ -288,7 +291,8 @@ bool asst::InfrastAbstractTask::select_opers_review(infrast::CustomRoomConfig co room_config.names.erase(iter); } else { // 备选干员或自动选择,只要不选工作中的干员即可 if (oper.doing == infrast::Doing::Working) { - Log.warn("select opers review fail: 非自定义情况下,选了正在工作的干员"); + Log.warn("选了工作中的干员:", name); + Log.warn("select opers review fail: 非自定义配置,却选了工作中的干员"); return false; } } @@ -403,7 +407,7 @@ void asst::InfrastAbstractTask::order_opers_selection(const std::vector Date: Sat, 18 Feb 2023 16:42:26 +0800 Subject: [PATCH 003/100] =?UTF-8?q?feat:=20=E5=AE=9E=E6=97=B6=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=E6=88=98=E6=96=97=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaWpfGui/Main/TaskQueueViewModel.cs | 12 +----------- .../UserControl/FightSettingsUserControl.xaml | 18 ++++++++++++------ .../FightSettingsUserControl.xaml.cs | 10 ++++++++++ 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/src/MaaWpfGui/Main/TaskQueueViewModel.cs b/src/MaaWpfGui/Main/TaskQueueViewModel.cs index 782faf4e2e..a4ef48781c 100644 --- a/src/MaaWpfGui/Main/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/Main/TaskQueueViewModel.cs @@ -1832,12 +1832,7 @@ namespace MaaWpfGui get => _medicineNumber; set { - if (string.IsNullOrEmpty(value)) - { - value = "0"; - } - - if (value == "0") + if (value == "0" || !int.TryParse(value, out _)) { UseStone = false; } @@ -1883,11 +1878,6 @@ namespace MaaWpfGui get => _stoneNumber; set { - if (string.IsNullOrEmpty(value)) - { - value = "0"; - } - SetAndNotify(ref _stoneNumber, value); SetFightParams(); ViewStatusStorage.Set("MainFunction.UseStone.Quantity", StoneNumber); diff --git a/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml b/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml index 60409eb503..fae9f04bf6 100644 --- a/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml +++ b/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml @@ -57,8 +57,9 @@ HorizontalContentAlignment="Center" VerticalContentAlignment="Center" InputMethod.IsInputMethodEnabled="False" + LostFocus="FightSettingsTextBoxLostFocus" PreviewTextInput="TextBox_RestrictInputInt" - Text="{Binding MedicineNumber}" /> + Text="{Binding MedicineNumber, UpdateSourceTrigger=PropertyChanged}" /> + Text="{Binding StoneNumber, UpdateSourceTrigger=PropertyChanged}" /> + Text="{Binding MaxTimes, UpdateSourceTrigger=PropertyChanged}" /> @@ -125,8 +128,9 @@ HorizontalContentAlignment="Center" VerticalContentAlignment="Center" InputMethod.IsInputMethodEnabled="False" + LostFocus="FightSettingsTextBoxLostFocus" PreviewTextInput="TextBox_RestrictInputInt" - Text="{Binding DropsQuantity}" + Text="{Binding DropsQuantity, UpdateSourceTrigger=PropertyChanged}" Visibility="{c:Binding IsSpecifiedDrops}" /> @@ -195,7 +199,8 @@ Padding="6,0,0,0" VerticalContentAlignment="Center" IsHitTestVisible="{c:Binding !FightTaskRunning}" - Text="{Binding Stage1}" + LostFocus="FightSettingsTextBoxLostFocus" + Text="{Binding Stage1, UpdateSourceTrigger=PropertyChanged}" ToolTip="{DynamicResource CustomStageCodeTip}" Visibility="{c:Binding CustomStageCode}" /> diff --git a/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml.cs b/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml.cs index e14b0afea1..8d15e75916 100644 --- a/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml.cs +++ b/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml.cs @@ -12,6 +12,7 @@ // using System.Text.RegularExpressions; +using System.Windows; using System.Windows.Controls; using System.Windows.Input; @@ -36,5 +37,14 @@ namespace MaaWpfGui Regex regex = new Regex("[^0-9]+"); e.Handled = regex.IsMatch(e.Text); } + + private void FightSettingsTextBoxLostFocus(object sender, RoutedEventArgs e) + { + TextBox textBox = sender as TextBox; + if (string.IsNullOrEmpty(textBox.Text)) + { + textBox.Text = "0"; + } + } } } From 35018503d409eeef353f9cc32eb673dbb73407a1 Mon Sep 17 00:00:00 2001 From: uye <2396806385@qq.com> Date: Sat, 18 Feb 2023 17:04:55 +0800 Subject: [PATCH 004/100] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=85=B3?= =?UTF-8?q?=E5=8D=A1=E9=80=89=E6=8B=A9=E8=BE=93=E5=85=A5=E7=A9=BA=E5=AD=97?= =?UTF-8?q?=E7=AC=A6=E4=B8=B2=E5=8F=98=E4=B8=BA0=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaWpfGui/Main/TaskQueueViewModel.cs | 36 ++++++++++++++----- .../UserControl/FightSettingsUserControl.xaml | 2 -- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/MaaWpfGui/Main/TaskQueueViewModel.cs b/src/MaaWpfGui/Main/TaskQueueViewModel.cs index a4ef48781c..21a85fff3f 100644 --- a/src/MaaWpfGui/Main/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/Main/TaskQueueViewModel.cs @@ -1468,6 +1468,11 @@ namespace MaaWpfGui get => _stage1; set { + if (_stage1 == value) + { + return; + } + if (CustomStageCode) { value = ToUpperAndCheckStage(value); @@ -1555,9 +1560,12 @@ namespace MaaWpfGui { get { - if (!IsStageOpen(_remainingSanityStage)) + if (!CustomStageCode) { - return string.Empty; + if (!IsStageOpen(_remainingSanityStage)) + { + return string.Empty; + } } return _remainingSanityStage; @@ -1565,6 +1573,11 @@ namespace MaaWpfGui set { + if (_remainingSanityStage == value) + { + return; + } + if (CustomStageCode) { value = ToUpperAndCheckStage(value); @@ -1832,6 +1845,11 @@ namespace MaaWpfGui get => _medicineNumber; set { + if (_medicineNumber == value) + { + return; + } + if (value == "0" || !int.TryParse(value, out _)) { UseStone = false; @@ -1878,6 +1896,11 @@ namespace MaaWpfGui get => _stoneNumber; set { + if (_stoneNumber == value) + { + return; + } + SetAndNotify(ref _stoneNumber, value); SetFightParams(); ViewStatusStorage.Set("MainFunction.UseStone.Quantity", StoneNumber); @@ -1909,9 +1932,9 @@ namespace MaaWpfGui get => _maxTimes; set { - if (string.IsNullOrEmpty(value)) + if (MaxTimes == value) { - value = "0"; + return; } SetAndNotify(ref _maxTimes, value); @@ -2055,11 +2078,6 @@ namespace MaaWpfGui get => _dropsQuantity; set { - if (string.IsNullOrEmpty(value)) - { - value = "0"; - } - SetAndNotify(ref _dropsQuantity, value); SetFightParams(); ViewStatusStorage.Set("MainFunction.Drops.Quantity", DropsQuantity); diff --git a/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml b/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml index fae9f04bf6..e1c3100ca9 100644 --- a/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml +++ b/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml @@ -199,7 +199,6 @@ Padding="6,0,0,0" VerticalContentAlignment="Center" IsHitTestVisible="{c:Binding !FightTaskRunning}" - LostFocus="FightSettingsTextBoxLostFocus" Text="{Binding Stage1, UpdateSourceTrigger=PropertyChanged}" ToolTip="{DynamicResource CustomStageCodeTip}" Visibility="{c:Binding CustomStageCode}" /> @@ -243,7 +242,6 @@ Padding="6,0,0,0" VerticalContentAlignment="Center" IsHitTestVisible="{c:Binding !FightTaskRunning}" - LostFocus="FightSettingsTextBoxLostFocus" Text="{Binding RemainingSanityStage, UpdateSourceTrigger=PropertyChanged}" ToolTip="{DynamicResource UseRemainingSanityStageTip}" Visibility="{c:Binding UseRemainingSanityStage and CustomStageCode}" /> From 95b7e2c5ffe1bdff1d4f60d622fd02d90aca6648 Mon Sep 17 00:00:00 2001 From: uye <2396806385@qq.com> Date: Sat, 18 Feb 2023 17:22:23 +0800 Subject: [PATCH 005/100] =?UTF-8?q?chore:=20=E9=80=9A=E8=BF=87TryParse?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E6=95=B0=E9=87=8F=E8=80=8C=E4=B8=8D=E6=98=AF?= =?UTF-8?q?=E5=AD=97=E7=AC=A6=E4=B8=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaWpfGui/Main/TaskQueueViewModel.cs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/MaaWpfGui/Main/TaskQueueViewModel.cs b/src/MaaWpfGui/Main/TaskQueueViewModel.cs index 21a85fff3f..e6328a2075 100644 --- a/src/MaaWpfGui/Main/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/Main/TaskQueueViewModel.cs @@ -1850,12 +1850,10 @@ namespace MaaWpfGui return; } - if (value == "0" || !int.TryParse(value, out _)) - { - UseStone = false; - } - SetAndNotify(ref _medicineNumber, value); + + // If the amount of medicine is 0, the stone is not used. + UseStone = UseStone; SetFightParams(); ViewStatusStorage.Set("MainFunction.UseMedicine.Quantity", MedicineNumber); } @@ -1871,7 +1869,8 @@ namespace MaaWpfGui get => _useStone; set { - if (MedicineNumber == "0") + // If the amount of medicine is 0, the stone is not used. + if (!int.TryParse(MedicineNumber, out int result) || result == 0) { value = false; } From c31a2a489fdfc72306ae049c7d3fb8720d67866b Mon Sep 17 00:00:00 2001 From: MistEO Date: Sat, 18 Feb 2023 17:32:57 +0800 Subject: [PATCH 006/100] docs: changelogs --- CHANGELOG.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 27561d101c..ab36a7d4b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,14 @@ -## v4.11.0-alpha.2 - -- 修复 基建 自动换班时,排序错误导致的干员冲突问题 @MistEO @ABA2396 - -## v4.11.0-alpha.1 +## v4.11.0-beta.1 - 重构 生息演算,支持黑市 npc 对话,支持刷粗制赤金 @WLLEGit - 新增 刷理智 吃 48 小时、60分钟 临期理智药功能 @bigqiao -- 优化 基建 复核干员是否正确选择 @fearlessxjdx +- 优化 基建 复核干员是否正确选择 @fearlessxjdx @MistEO @ABA2396 +- 优化 信用购物 默认选项 @sakuraxp +- 优化 牛牛喝酒 彩蛋 @MistEO +- 修复 战斗中 干员头像识别错误 @MistEO - 修复 界面 崩溃问题 @ChingCdesu @ABA2396 @lhhxxxxx +- 修复 界面 adb 自动检测错误 @lanhao34 +- 修复 界面 托盘不显示问题 @ChingCdesu - 修复 `春分` 故事集 关卡上传企鹅错误 @MistEO - 修复 抄作业 神秘代码无法使用的问题 @zzyyyl - 修复 抄作业 干员名识别错误 @cenfusheng From 7bf494f4aaafcd01f62f76514203cce7b0adc6ad Mon Sep 17 00:00:00 2001 From: MistEO Date: Sat, 18 Feb 2023 17:42:11 +0800 Subject: [PATCH 007/100] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=9F=BA?= =?UTF-8?q?=E5=BB=BA=E5=AE=BF=E8=88=8D=E7=BA=A2=E8=84=B8=E5=B9=B2=E5=91=98?= =?UTF-8?q?=E4=B8=8D=E8=A2=AB=E9=80=89=E6=8B=A9=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resource/tasks.json b/resource/tasks.json index fa6155e65b..31666c4c6d 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -5218,7 +5218,7 @@ }, "InfrastOperSelected": { "template": "empty.png", - "templThreshold": 8000, + "templThreshold": 5000, "templThreshold_Doc": "这个任务中作为符合range的像素点数量阈值", "maskRange": [ 95, From 526d7f45b81512c3d621cdf8e48d2605c0099c55 Mon Sep 17 00:00:00 2001 From: uye <2396806385@qq.com> Date: Sat, 18 Feb 2023 18:43:21 +0800 Subject: [PATCH 008/100] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=83=A8?= =?UTF-8?q?=E5=88=86=E6=83=85=E5=86=B5=E4=B8=8B=E9=9A=90=E8=97=8F=E5=88=B0?= =?UTF-8?q?=E6=89=98=E7=9B=98=E5=8A=9F=E8=83=BD=E4=B8=8D=E7=94=9F=E6=95=88?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaWpfGui/Helper/MainWindowManager.cs | 3 +++ src/MaaWpfGui/Main/SettingsViewModel.cs | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/MaaWpfGui/Helper/MainWindowManager.cs b/src/MaaWpfGui/Helper/MainWindowManager.cs index 859aeec4d4..1c93232f13 100644 --- a/src/MaaWpfGui/Helper/MainWindowManager.cs +++ b/src/MaaWpfGui/Helper/MainWindowManager.cs @@ -35,6 +35,9 @@ namespace MaaWpfGui public MainWindowManager() { MainWindow.StateChanged += MainWindow_StateChanged; + + bool minimizeToTray = Convert.ToBoolean(ViewStatusStorage.Get("GUI.MinimizeToTray", bool.FalseString)); + SetMinimizeToTaskbar(minimizeToTray); } /// diff --git a/src/MaaWpfGui/Main/SettingsViewModel.cs b/src/MaaWpfGui/Main/SettingsViewModel.cs index a148b8c027..2fd08e5de1 100644 --- a/src/MaaWpfGui/Main/SettingsViewModel.cs +++ b/src/MaaWpfGui/Main/SettingsViewModel.cs @@ -134,8 +134,6 @@ namespace MaaWpfGui _asstProxy = _container.Get(); _versionUpdateViewModel = _container.Get(); - _mainWindowManager.SetMinimizeToTaskbar(MinimizeToTray); - if (LoadGUIParameters && SaveGUIParametersOnClosing) { Application.Current.MainWindow.Closing += SaveGUIParameters; From 15901db20f3a2ad28becb32c6d8746c23235b614 Mon Sep 17 00:00:00 2001 From: uye <2396806385@qq.com> Date: Sun, 19 Feb 2023 03:03:48 +0800 Subject: [PATCH 009/100] =?UTF-8?q?docs:=20=E5=B0=86=E5=A4=96=E8=AF=AD?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E7=A7=BB=E8=87=B3=E5=AE=98=E7=BD=91=EF=BC=8C?= =?UTF-8?q?=E5=8F=AA=E7=95=99=E4=B8=AD=E6=96=87readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 30 ++++---- README_en-US.md | 187 ----------------------------------------------- README_ja-JP.md | 191 ------------------------------------------------ README_ko-KR.md | 189 ----------------------------------------------- README_zh-TW.md | 188 ----------------------------------------------- 5 files changed, 15 insertions(+), 770 deletions(-) delete mode 100644 README_en-US.md delete mode 100644 README_ja-JP.md delete mode 100644 README_ko-KR.md delete mode 100644 README_zh-TW.md diff --git a/README.md b/README.md index 1d74c07406..ad61c7bc99 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@
-[简体中文](README.md) | [繁體中文](README_zh-TW.md) | [English](README_en-US.md) | [日本語](README_ja-JP.md) | [한국어](README_ko-KR.md) +[简体中文](https://maa.plus/docs/) | [繁體中文](https://maa.plus/docs/zh-tw/) | [English](https://maa.plus/docs/en-us/) | [日本語](https://maa.plus/docs/ja-jp/) | [한국어](https://maa.plus/docs/ko-kr/) MAA 的意思是 MAA Assistant Arknights @@ -26,7 +26,7 @@ MAA 的意思是 MAA Assistant Arknights 基于图像识别技术,一键完成全部日常任务! -绝赞更新中 ✿✿ヽ(°▽°)ノ✿ +绝赞更新中 ✿✿ヽ(°▽°)ノ✿ @@ -41,7 +41,7 @@ MAA 的意思是 MAA Assistant Arknights - 仓库识别并支持导出至 [企鹅物流刷图规划器](https://penguin-stats.cn/planner), [明日方舟工具箱](https://arkn.lolicon.app/#/material), [ARK-NIGHTS 干员培养表](https://ark-nights.com/settings) - 支持 C, Python, Java, Rust, Golang, Java HTTP, Rust HTTP 等多种接口,方便集成调用,自定义你的 MAA! -话不多说,看图! +话不多说,看图! ![image](https://user-images.githubusercontent.com/18511905/189659056-67587818-9844-4f5a-b2f5-838a8932b387.png) ![image](https://user-images.githubusercontent.com/99072975/181418131-f4eefa07-6623-470e-ba4a-0ad15cb8aa91.png) @@ -49,7 +49,7 @@ MAA 的意思是 MAA Assistant Arknights ## 下载地址 -[稳定版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/latest) +[稳定版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/latest) [开发版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases) ## 使用说明 @@ -76,13 +76,13 @@ MAA 的意思是 MAA Assistant Arknights ## 外服支持 -- 国际服(美服) +- 国际服(美服) 支持基本的刷理智、信用购物、访问好友、领取奖励、自动肉鸽(测试版本)、公招识别,请参考 [说明](resource/global/YoStarEN/readme.md) -- 日服 +- 日服 支持基本的刷理智、自动基建、信用购物、自动公招、访问好友、领取奖励、自动肉鸽(测试版本)、公招识别,请参考 [说明](resource/global/YoStarJP/readme.md) -- 韩服 +- 韩服 支持基本的刷理智、信用购物、访问好友、领取奖励、自动肉鸽(测试版本)、公招识别,请参考 [说明](resource/global/YoStarKR/readme.md) -- 繁中服 +- 繁中服 支持基本的刷理智、自动公招、自动肉鸽、领取日常、公招识别功能,请参考 [说明](resource/global/txwy/readme.md) 由于外服用户较少及项目人手不足的问题,外服目前都仅适配了基本的功能。若您有强需求,欢迎在 [讨论区](https://github.com/MaaAssistantArknights/MaaAssistantArknights/discussions) 催更,或加入我们一起建设 MAA!请参考 [外服适配教程](#外服适配) @@ -179,12 +179,12 @@ MAA 的意思是 MAA Assistant Arknights ## 广告 -用户交流 QQ 群:[MAA 使用 & 粥游交流 QQ 群](https://ota.maa.plus/MaaAssistantArknights/api/qqgroup/index.html) -用户交流 TG 群:[Telegram 群](https://t.me/+Mgc2Zngr-hs3ZjU1) -自动战斗 JSON 作业分享:[prts.plus](https://prts.plus) 或 [抄作业.com](http://抄作业.com) -Bilibili 直播间:[直播间](https://live.bilibili.com/2808861) 每晚直播敲代码,近期很长一段时间应该都是在写本软件~ - -技术 & 吹水群(舟无关):[内卷地狱!(QQ 群)](https://jq.qq.com/?_wv=1027&k=ypbzXcA2) -开发者群:[QQ 群](https://jq.qq.com/?_wv=1027&k=JM9oCk3C) +用户交流 QQ 群:[MAA 使用 & 粥游交流 QQ 群](https://ota.maa.plus/MaaAssistantArknights/api/qqgroup/index.html) +用户交流 TG 群:[Telegram 群](https://t.me/+Mgc2Zngr-hs3ZjU1) +自动战斗 JSON 作业分享:[prts.plus](https://prts.plus) 或 [抄作业.com](http://抄作业.com) +Bilibili 直播间:[直播间](https://live.bilibili.com/2808861) 每晚直播敲代码,近期很长一段时间应该都是在写本软件~ + +技术 & 吹水群(舟无关):[内卷地狱!(QQ 群)](https://jq.qq.com/?_wv=1027&k=ypbzXcA2) +开发者群:[QQ 群](https://jq.qq.com/?_wv=1027&k=JM9oCk3C) 如果觉得软件对你有帮助,帮忙点个 Star 吧!~(网页最上方右上角的小星星),这就是对我们最大的支持了! diff --git a/README_en-US.md b/README_en-US.md deleted file mode 100644 index b337db1fa2..0000000000 --- a/README_en-US.md +++ /dev/null @@ -1,187 +0,0 @@ -
- -LOGO - -# MaaAssistantArknights - -
-
- C++ -
-
- platform -
-
- license - commit - stars -
-
- -[简体中文](README.md) | [繁體中文](README_zh-TW.md) | [English](README_en-US.md) | [日本語](README_ja-JP.md) | [한국어](README_ko-KR.md) - -MAA means MAA Assistant Arknights - -An Arknights assistant - -Based on image recognition, helps you to complete daily quests efficiently! - -Development in progress ✿✿ヽ(°▽°)ノ✿ - -
- -## Features - -- Auto-battle, drop items recognition, auto-uploading to [Penguin Stats](https://penguin-stats.io/). -- Auto-shifting in the Base, auto efficiency calculation of operators, optimal solution in single room. (Only CN client is supported now.) -- Auto-recruitment, support for expedited plan. Auto-uploading recruitment data to [Penguin Stats](https://penguin-stats.io/result/stage/recruit/recruit), [Yituliu](https://yituliu.site/maarecruitdata). -- Visiting friends, collecting credits and purchasing items, collecting daily rewards, completing daily quests in one click! -- Auto-battle for Integrated Strategy (I.S.) for collecting originium ingots and candles. -- Importing JSON task file for auto-battle! [Video](https://www.bilibili.com/video/BV1H841177Fk/) -- Depot recognition and upports exporting to [Penguin Stats Planner](https://penguin-stats.cn/planner), [Arknight Tools](https://arkn.lolicon.app/#/material), and [ARK-NIGHTS Operator Builds](https://ark-nights.com/settings) -- Support C, Python, Java, Rust, Golang, Java HTTP, Rust HTTP and other interfaces, easy to integrate and call, customize your MAA! - -Talk is cheap. Show me the pictures! - -![image](https://user-images.githubusercontent.com/18511905/198692842-1ad89bd0-f943-4763-bdd1-c212e09dc832.png) -![image](https://user-images.githubusercontent.com/99072975/181417869-bb312d7e-f867-45c6-84b9-d18c583232d5.png) -![image](https://user-images.githubusercontent.com/18511905/198689839-612f3bfc-c308-4d62-969d-8544764e794d.png) - -## Download - -[Stable](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/latest) -[Development](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases) - -## How to Use - -### Basic Settings - -1. Please refer to [Emulator Supports](https://maa.plus/docs/en-us/1.3-EMULATOR_SUPPORTS.html) to configure your emulator. -2. Change your emulator resolution to `1280 * 720` or higher with `16:9` aspect ratio. -3. Enjoy it! - -See also: [User Manual](https://maa.plus/docs/en-us/1.1-USER_MANUAL.html) - -## FAQ - -- The program crashes immediately when I try to run it. -- Connection error/not knowing how to fill in ADB path. -- Connected successfully, then it got stuck. -- Custom connection settings. -- Download speed is too slow, or the mirror site is not accessible. -- Download halfway and prompt "login"/"authentication" - -Please refer to: [FAQ](https://maa.plus/docs/en-us/1.2-FAQ.html) - -## Supports for overseas clients - -- Global(EN) Client - Supports basic features like Combat, Credit Shopping, Visiting, Collecting, Auto Roguelike(beta), Recruitment calculate, etc. See also [README](resource/global/YoStarEN/readme.md) -- JP Client - Supports basic features like Combat, Auto Base shift, Credit Shopping, Auto Recruiting, Visiting, Collecting, Auto Roguelike(beta), Recruitment calculate, etc. See also [README](resource/global/YoStarJP/readme.md) -- KR Client - Supports basic features like Combat, Credit Shopping, Visiting, Collecting, Auto Roguelike(beta), Recruitment calculate, etc. See also [README](resource/global/YoStarKR/readme.md) -- ZH_CHT Client - Supports basic features like Combat, Auto Recruiting, Auto Roguelike(beta), Recruitment calculate, etc. See also [README](resource/global/txwy/readme.md) - -Due to the small number of overseas clients users and the lack of project manpower, the overseas clients is currently only adapted to basic functions. If you have strong needs, welcome to ask the progress in the [discussions](https://github.com/MaaAssistantArknights/MaaAssistantArknights/discussions), or join us to make MAA better! Please refer to [Overseas Clients Adaptation](#overseas-clients-adaptation) - -## Associated Projects - -- New GUI: [MaaAsstElectronUI](https://github.com/MaaAssistantArknights/MaaAsstElectronUI) (Development in progress, welcome to join us!) -- Backend: [MaaBackendCenter](https://github.com/MaaAssistantArknights/MaaBackendCenter) (Development in progress, welcome to join us!) -- [Co-pilot (auto-battle) site](https://prts.plus):[frontend](https://github.com/MaaAssistantArknights/maa-copilot-frontend) -- [Website](https://www.maa.plus): [frontend](https://github.com/MaaAssistantArknights/maa-website) - -## Acknowledgements - -### Open-source Libraries - -- Image recognition: [opencv](https://github.com/opencv/opencv.git) -- ~~OCR: [chineseocr_lite](https://github.com/DayBreak-u/chineseocr_lite.git)~~ -- OCR: [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) -- ML Deployment: [FastDeploy](https://github.com/PaddlePaddle/FastDeploy) -- ML accelerator: [onnxruntime](https://github.com/microsoft/onnxruntime) -- ~~Item drop recognition: [Penguin Stats recognizer](https://github.com/penguin-statistics/recognizer)~~ -- Map tile recognition: [Arknights-Tile-Pos](https://github.com/yuanyan3060/Arknights-Tile-Pos) -- C++ JSON library: [meojson](https://github.com/MistEO/meojson.git) -- C++ operator parser: [calculator](https://github.com/kimwalisch/calculator) -- ~~C++ Base64 encoding/decoding[cpp-base64](https://github.com/ReneNyffenegger/cpp-base64)~~ -- C++ ZIP library: [zlib](https://github.com/madler/zlib) -- C++ Gzip library: [gzip-hpp](https://github.com/mapbox/gzip-hpp) -- Touch event producer for Android: [minitouch](https://github.com/openstf/minitouch) -- Touch event producer for Android: [MaaTouch](https://github.com/MaaAssistantArknights/MaaTouch) -- WPF MVVM framework: [Stylet](https://github.com/canton7/Stylet) -- WPF control library: [HandyControl](https://github.com/HandyOrg/HandyControl) -- C# JSON library: [Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json) -- Downloader: [aria2](https://github.com/aria2/aria2) - -### Data Source - -- ~~Recruitment data: [ArkTools](https://www.bigfun.cn/tools/aktools/hr)~~ -- Operators and infrastructure data: [PRTS Arknights Wiki (Chinese)](http://prts.wiki/) -- Stage data: [Penguin Stats](https://penguin-stats.io/) -- Gamedata and resources: [Arknights Bot Resource](https://github.com/yuanyan3060/Arknights-Bot-Resource) -- Gamedata: [Arknights Game Data](https://github.com/Kengxxiao/ArknightsGameData) - -### Contributors - -Thanks to all friends who contribute to development/testing for making MAA better! (\*´▽`)ノノ - -[![Contributors](https://contributors-img.web.app/image?repo=MaaAssistantArknights/MaaAssistantArknights)](https://github.com/MaaAssistantArknights/MaaAssistantArknights/graphs/contributors) - -## Development Related Information - -### Windows - -- Open `MAA.sln` with Visual Studio 2022. All settings have been configured properly. -- Switch on the feature of clang-format. Please refer to [Using clang-format in Visual Studio](https://maa.plus/docs/en-us/2.2-DEVELOPMENT.html#using-clang-format-in-visual-studio). - -### Linux/MacOS - -Please refer to [Linux Tutorial](https://maa.plus/docs/en-us/2.1-LINUX_TUTORIAL.html) - -### API - -- [C interface](include/AsstCaller.h): [Integration Example](src/Cpp/main.cpp) -- [Python interface](src/Python/asst/asst.py): [Integration Example](src/Python/sample.py) -- [Golang interface](src/Golang/): [Integration Example](src/Golang/maa/maa.go) -- [Dart interface](src/Dart/) -- [Java interface](src/Java): [Integration Example](src/Java/src/main/java/com/iguigui/maaj/MaaJavaSample.java) -- [Rust interface](src/Rust/src/maa_sys/): [HTTP API](src/Rust) -- [HTTP interface](src/Java/Readme.md) -- [TypeScript interface](https://github.com/MaaAssistantArknights/MaaAsstElectronUI/tree/main/packages/main/coreLoader) -- [Integration Documentation](https://maa.plus/docs/en-us/3.1-INTEGRATION.html) -- [Callback Schema](https://maa.plus/docs/en-us/3.2-CALLBACK_SCHEMA.html) -- [Task Schema](https://maa.plus/docs/en-us/3.4-TASK_SCHEMA.html) -- [Copilot Schema](https://maa.plus/docs/en-us/3.3-COPILOT_SCHEMA.html) - -### Overseas Clients Adaptation - -Please refer to [Overseas clients Adaptation](https://maa.plus/docs/en-us/2.5-OVERSEAS_CLIENTS_ADAPTATION.html). For the functions already supported by the CN client, most of the overseas clients adaptation tasks only need screenshots and simple JSON modification. - -### For Novice Users of GitHub - -[Development](https://maa.plus/docs/en-us/2.2-DEVELOPMENT.html#introduction-to-github-pull-request-flow) - -### Issue Bot - -- Add labels with `Add {LABEL_NAME}`, and remove with `Remove {LABEL_NAME}`. -- Add `fixed` tag to the issue with `close #{ISSUE_NUMBER}` or `fix #{ISSUE_NUMBER}` in the comments. - -Please refer to [Issue Bot Usage](https://maa.plus/docs/en-us/2.3-ISSUE_BOT_USAGE.html) for more details. - -## Disclaimer - -- The logo of this software is NOT granted rights under AGPL 3.0 License. [耗毛](https://weibo.com/u/3251357314) and Vie, the two artists and all developers of the software reserves all rights. The logo of the software shall not be used without authorization even if the project has an AGPL 3.0 License. Nor shall the logo be used for commercial purposes without authorization. -- The software is an open-source, free of charge software only for studying and communication purposes. There is no agreement or understanding between the developers of the software and the 3rd party person who uses this software as an assistant and charges you. In that case, the developers of the software is not responsible for the problems and consequences caused. - -## Advertisement - -User Group: [Telegram](https://t.me/+Mgc2Zngr-hs3ZjU1), [QQ Group](https://ota.maa.plus/MaaAssistantArknights/api/qqgroup/index.html) -[Copilot JSON Sharing](https://prts.plus) -[Bilibili Live](https://live.bilibili.com/2808861): live coding on this program -[Technical Discussion & Talk(QQ Group)](https://jq.qq.com/?_wv=1027&k=ypbzXcA2) -[Dev Group(QQ Group)](https://jq.qq.com/?_wv=1027&k=JM9oCk3C) - -Please click "Star" if you consider it helpful! Thank you for your support! diff --git a/README_ja-JP.md b/README_ja-JP.md deleted file mode 100644 index a86af8312d..0000000000 --- a/README_ja-JP.md +++ /dev/null @@ -1,191 +0,0 @@ -
- -LOGO - -# MaaAssistantArknights - -
-
- C++ -
-
- platform -
-
- license - commit - stars -
-
- -[简体中文](README.md) | [繁體中文](README_zh-TW.md) | [English](README_en-US.md) | [日本語](README_ja-JP.md) | [한국어](README_ko-KR.md) - -MAAは、MAA Assistant Arknightsです。 - -アークナイツゲームアシスタント - -画像認識技術に基づいて、ワンクリックですべてのデイリーリクエストを完了します! - -絶賛開発中 ✿✿ヽ(°▽°)ノ✿ - -
- -## 機能一覧 - -- 自動作戦、ドロップ認識および[PenguinStats](https://penguin-stats.io/)へデータアップロード -- 自動基地シフト、オペレーター効率計算、単一設備内に最適なソリューション -- 自動公開求人、緊急招集票を使う、使い切るのもサポート。[PenguinStats](https://penguin-stats.io/result/stage/recruit/recruit)と[Yituliu](https://yituliu.site/maarecruitdata)へ公開求人データのアップロード -- 戦友訪問、FP収集、買い物、デイリーリワード収集、ワンクリックして全自動操作! -- 統合戦略自動作戦、オペレーターとレベルの自動認識、源石錐とキャンドルの自動収集!(現在JPはベータ対応) -- 作業JSONファイルをインポートし、自動操作も可能! [ビデオデモ](https://www.bilibili.com/video/BV1H841177Fk/)(現在JP未対応/中文) -- **新機能!倉庫のアイテム認識機能(アルファ)** [Arkplanner](https://penguin-stats.io/planner)/[ARK-NIGHTS.com](https://ark-nights.com/settings)と[アークナイツ ツールボックス](https://arkn.lolicon.app/#/material)へ出力可能!使用方法はツール内文章を参照してください。 - -UIを見れば使い方もすぐ分かる! - -![image](https://user-images.githubusercontent.com/74226084/190089010-d98052b1-fc42-4428-91e5-bb8fdf450e43.png) -![image](https://user-images.githubusercontent.com/63186641/189559879-cfaa825c-c2fe-43de-83e2-854ca99000a9.png) - - -## ダウンロードリンク - -[安定版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/latest) -[ベータ版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases) - -## マニュアル - -### 基本設定 - -1. [エミュレータのサポート](https://maa.plus/docs/ja-jp/1.3-エミュレータのサポート.html)を参照して、対応するエミュレーターの操作に進んでください。 -2. エミュレータ解像度を `16:9`、`1280 * 720` 以上に変更してください。それより大きい解像度でも大丈夫です。 -3. ゲームスタート! - -詳しいマニュアルは[MAA使用説明書](https://maa.plus/docs/ja-jp/1.1-詳細説明.html)を参照してください。 - -## よくある質問 - -- 起動する際にソフトウェアがクラッシュする。 -- 接続エラー、adbパスがわからない場合。 -- 認識エラー、またはオペレーション開始した後に反応がない。 -- カスタムポート設定について。 - -[よくある質問](https://maa.plus/docs/ja-jp/1.2-よくある質問.html)を参照してください。 - -## サーバーに応じてサポートされる機能 - -- アメリカサーバー - 作戦、戦友訪問、FP交換所、レワード収集、統合戦略(ベータ版)、公開求人認識の機能がサポートされている。 - サポート内容については[README](resource/global/YoStarEN/readme.md)を参照してください。 -- 日本サーバー - 作戦、自動基地、自動公開求人、戦友訪問、FP交換所、レワード収集、統合戦略(ベータ版)、公開求人認識の機能がサポートされている。 - サポート内容については[README](resource/global/YoStarJP/readme.md)を参照してください。 -- 韓国サーバー - 作戦、戦友訪問、FP交換所、レワード収集、統合戦略(ベータ版)、公開求人認識の機能がサポートされている。 - サポート内容については[README](resource/global/YoStarKR/readme.md)を参照してください。 -- TXWYサーバー - 基本的な作戦、自動公開求人、統合戦略(ベータ版)、公開求人認識の機能がサポートされている。 - サポート内容については[README](resource/global/txwy/readme.md)を参照してください。 - -海外サーバーのユーザーが不足しており、基本的な機能しかサポートされていません。要件があれば[提案](https://github.com/MaaAssistantArknights/MaaAssistantArknights/discussions)ページで提案をお願い致します。いっしょにMAAの開発に協力しましょう! Please refer to [Overseas Clients Adaptation](#overseas-clients-adaptation) - -## 主な関連プロジェクト - -- 新しいGUI:[MaaAsstElectronUI](https://github.com/MaaAssistantArknights/MaaAsstElectronUI) (開発中、貢献歓迎!) -- バックエンド:[MaaBackendCenter](https://github.com/MaaAssistantArknights/MaaBackendCenter) (開発中、貢献歓迎!) -- [作業シェアサイト](https://www.prts.plus):[フロントエンド](https://github.com/MaaAssistantArknights/maa-copilot-frontend) -- [公式ウェブサイト](https://www.maa.plus): [フロントエンド](https://github.com/MaaAssistantArknights/maa-website) - -## 謝辞 - -### オープンソースライブラリ - -- 画像認識ライブラリ:[opencv](https://github.com/opencv/opencv.git) -- ~~テキスト認識ライブラリ:[chineseocr_lite](https://github.com/DayBreak-u/chineseocr_lite.git)~~ -- テキスト認識ライブラリ:[PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) -- ML Deployment: [FastDeploy](https://github.com/PaddlePaddle/FastDeploy) -- ML accelerator: [onnxruntime](https://github.com/microsoft/onnxruntime) -- ~~ステージドロップ認識:[PenguinStats認識](https://github.com/penguin-statistics/recognizer)~~ -- マップタイル認識:[Arknights-Tile-Pos](https://github.com/yuanyan3060/Arknights-Tile-Pos) -- C++ JSONライブラリ:[meojson](https://github.com/MistEO/meojson.git) -- C++ オペレーターパーサー:[calculator](https://github.com/kimwalisch/calculator) -- ~~C++ base64エンコードとデコード:[cpp-base64](https://github.com/ReneNyffenegger/cpp-base64)~~ -- C++ 圧縮・解凍ライブラリ:[zlib](https://github.com/madler/zlib) -- C++ Gzipカプセル化ライブラリ:[gzip-hpp](https://github.com/mapbox/gzip-hpp) -- Android タッチ イベント: [minitouch](https://github.com/openstf/minitouch) -- Android タッチ イベント: [MaaTouch](https://github.com/MaaAssistantArknights/MaaTouch) -- WPF MVVWフレームワーク:[Stylet](https://github.com/canton7/Stylet) -- WPFコントロールライブラリ:[HandyControl](https://github.com/HandyOrg/HandyControl) -- C# JSONライブラリ:[Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json) -- ダウンローダー:[aria2](https://github.com/aria2/aria2) - -### データソース - -- ~~公開求人データ:[アークナイツツール](https://www.bigfun.cn/tools/aktools/hr)~~ -- オペレーターおよび基地データ:[PRTSアークナイツ中国語WIKI](http://prts.wiki/) -- ステージデータ:[PenguinStatsデータ統計](https://penguin-stats.io/) -- ゲームのデータとリソース:[アークナイツbotリソース](https://github.com/yuanyan3060/Arknights-Bot-Resource) -- ゲームデータ:[アークナイツのゲームデータ](https://github.com/Kengxxiao/ArknightsGameData) - -### 貢献/協力者 - -MAAをより良くするために開発・テストに貢献してくれたすべての方々に感謝します! (\*´▽`)ノノ - -[![Contributors](https://contributors-img.web.app/image?repo=MaaAssistantArknights/MaaAssistantArknights)](https://github.com/MaaAssistantArknights/MaaAssistantArknights/graphs/contributors) - -## 開発について - -### Windows - -- Visual Studio 2022で `MAA.sln` を開きます。環境がすでに構成されています。 -- clang-formatのサポートを有効にすることをお勧めします。詳細については、[Visual Studioでclang-formatを有効にする](https://maa.plus/docs/ja-jp/2.2-プルリクエスト.html)を参照してください。 - -### Linux | macOS - -[Linuxチュートリアル](https://maa.plus/docs/ja-jp/2.1-Linuxチュートリアル.html)を参照してください。 - -### API - -- [Cインターフェース](include/AsstCaller.h):[統合例](src/Cpp/main.cpp) -- [Pythonインターフェース](src/Python/asst/asst.py):[統合例](src/Python/sample.py) -- [Golangインターフェース](src/Golang/):[統合例](src/Golang/maa/maa.go) -- [Dartインターフェース](src/Dart/) -- [Javaインターフェース](src/Java/src/main/java/com/iguigui/maaj/easySample/MaaCore.java):[統合例](src/Java/src/main/java/com/iguigui/maaj/easySample/MaaJavaSample.java) -- [Rustインターフェース](src/Rust/src/maa_sys/):[HTTPインターフェース](src/Rust) -- [HTTPインターフェース](src/Java/Readme.md) -- [TypeScriptインターフェース](https://github.com/MaaAssistantArknights/MaaAsstElectronUI/tree/main/packages/main/coreLoader) -- [統合ドキュメント](https://maa.plus/docs/ja-jp/3.1-統合ドキュメント.html) -- [コールバックAPI](https://maa.plus/docs/ja-jp/3.2-コールバックAPI.html) -- [タスクAPI](https://maa.plus/docs/ja-jp/3.4-タスクAPI.html) -- [自動作戦API](https://maa.plus/docs/ja-jp/3.3-自動作戦API.html) - -### Overseas Clients Adaptation - -Please refer to [Overseas clients Adaptation](https://maa.plus/docs/ja-jp/2.5-OVERSEAS_CLIENTS_ADAPTATION.html). For the functions already supported by the CN client, most of the overseas clients adaptation tasks only need screenshots and simple JSON modification. - -### 開発に参加したいがGitHubの使い方がよくわかりません - -[Githubプルリクエストのプロセス](https://maa.plus/docs/ja-jp/2.2-プルリクエスト.html) - -### Issue bot - -- `Add {LABEL_NAME}`を使用してタグを追加し、`Remove {LABEL_NAME}` を使用してタグを削除できます。 -- `close #{ISSUE_NUMBER}` または `fix #{ISSUE_NUMBER}` を使用してissueに `fixed` タグを追加できます。 - -詳細については[Issue bot 使用方法](https://maa.plus/docs/ja-jp/2.3-IssueBot使う方.html)を参照してください。 - -## 免責事項 - -- 本ソフトウェアのロゴはAGPL 3.0ライセンスを使用しており、オープンソースではなく、[耗毛](https://weibo.com/u/3251357314)とVie、2人のアーティストと開発者がすべての権利を留保しています。「AGPL 3.0ライセンスに基づいて許可されている」という理由で、許可がない場合に本ソフトウェアのロゴを無断で使用することは禁止しております。また、許可なく商業目的で本ソフトウェアのロゴを無断で使用することも禁止しております。 -- 本ソフトウェアはオープンソースで無料であり、学習と研究のみの目的としています。販売者が本ソフトウェアの料金を請求する場合は、デバイスや時間の料金である可能性があります。発生した問題と結果は、本ソフトウェアとは一切関係ありません。 - -## 広告 - - -ユーザー研究グループQQグループ:[QQグループ](https://ota.maa.plus/MaaAssistantArknights/api/qqgroup/index.html) -ユーザー研究グループTGグループ:[Telegram](https://t.me/+Mgc2Zngr-hs3ZjU1) -自動作戦JSON作業シェア:[prts.plus](https://prts.plus) -ビリビリ生放送:[ビリビリ生放送](https://live.bilibili.com/2808861) 毎晩ライブでコーディングします、最近はずっとこのソフトウェアのプログラミングをしていることが多いです。 - -技術研究(アークナイツ無関係):[インボリューション・ヘル!(QQグループ)](https://jq.qq.com/?_wv=1027&k=ypbzXcA2) -開発者グループ:[QQグループ](https://jq.qq.com/?_wv=1027&k=JM9oCk3C) - -ソフトウェアが役立つと思うなら、Star(ページの右上隅にある星)をクリックしてください。私たちにとって最高のサポートです! diff --git a/README_ko-KR.md b/README_ko-KR.md deleted file mode 100644 index afc97302d0..0000000000 --- a/README_ko-KR.md +++ /dev/null @@ -1,189 +0,0 @@ -
- -LOGO - -# MaaAssistantArknights - -
-
- C++ -
-
- platform -
-
- license - commit - stars -
-
- -[简体中文](README.md) | [繁體中文](README_zh-TW.md) | [English](README_en-US.md) | [日本語](README_ja-JP.md) | [한국어](README_ko-KR.md) - -MAA는 MAA Assistant Arknights의 약자입니다 - -명일방주 어시스턴트 - -이미지 인식을 기반으로, 한 번의 클릭만으로 그날의 모든 작업을 끝내드립니다! - -개발 진행 중입니다 ✿✿ヽ(°▽°)ノ✿ - -
- -## 개요 - -- 자동 전투, 아이템 드랍 인식, [펭귄 물류](https://penguin-stats.io/)로의 자동 업로드 -- 기반시설 자동 배치, 오퍼레이터 효율과 시설 내 최적 배치방안 자동 계산 -- 자동 공개모집과 선택적 즉시 모집, [펭귄 물류](https://penguin-stats.io/result/stage/recruit/recruit)와 [Yituliu](https://yituliu.site/maarecruitdata)로의 자동 업로드 -- 친구 방문, 크레딧 획득과 아이템 구매, 일일 임무와 보상까지 한 번에! -- 통합전략에서의 오리지늄각뿔과 양초 획득을 위한 자동 전투, 오퍼레이터와 레벨의 자동 인식 -- 전투 JSON 파일을 통한 자동 전투용 전략 복사! [영상 데모](https://www.bilibili.com/video/BV1H841177Fk/) -- 새로운 기능: 창고 인식! [펭귄 물류 ArkPlanner](https://penguin-stats.cn/planner), [arkn.lolicon.app](https://arkn.lolicon.app/#/material)과 [ark-nights.com](https://ark-nights.com/settings)로의 내보내기 지원 - -말로만 설명하기보다는 사진으로 보여드리겠습니다! - -![Screenshot 2023-02-04 011534](https://user-images.githubusercontent.com/61264540/216660360-dc8b96b4-2daa-41d1-a6fc-024886861e4c.png) -![Screenshot 2023-02-04 013950](https://user-images.githubusercontent.com/61264540/216660420-2b0c759e-f8fd-48bf-ae7f-112105faa3a4.png) - -## 다운로드 - -[안정 버전](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/latest) -[베타 버전](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases) - -## 사용 방법 - -### 기본 설정 - -1. [에뮬레이터 지원](https://maa.plus/docs/ko-kr/1.3-에뮬레이터_지원.html) 문서를 참고하여 에뮬레이터/기기를 설정해 주세요. -2. 에뮬레이터/기기의 해상도를 `1280 × 720` 또는 그 이상의 `16:9` 비율인 해상도로 맞춰주세요. -3. 어시스턴트 시작! - -자세한 내용은 [사용자 설명서](https://maa.plus/docs/ko-kr/1.1-사용자_설명서.html)를 참조해 주세요. - -## FAQ - -- 프로그램이 실행하자마자 곧바로 튕겨요 -- 연결 오류가 발생해요/ADB 경로를 어떻게 작성해야 하는지 모르겠어요 -- 연결은 성공했는데, 그대로 멈춰 버렸어요 -- 연결 설정(포트 등)을 바꾸고 싶어요 -- 다운로드 속도가 너무 느려요/미러 사이트가 접속이 안 돼요 -- 다운로드 도중에 “로그인”이나 “인증”이라는 메시지가 떠요 - -[FAQ](https://maa.plus/docs/ko-kr/1.2-FAQ.html) 문서를 참조해 주세요. - -## 해외 서버 지원 - -- 글로벌 서버 - 작전, 크레딧 상점, 친구 방문, 임무 보상 수령, 자동 통합전략(베타), 공개모집 계산 등을 지원합니다. - 자세한 내용은 [문서](resource/global/YoStarEN/readme.md)를 참조해 주세요. -- 일본 서버 - 작전, 기반시설 관리, 크레딧 상점, 친구 방문, 임무 보상 수령, 자동 통합전략(베타), 공개모집 계산 등을 지원합니다. - 자세한 내용은 [문서](resource/global/YoStarJP/readme.md)를 참조해 주세요. -- 한국 서버 - 작전, 크레딧 상점, 친구 방문, 임무 보상 수령, 자동 통합전략(베타), 공개모집 계산 등을 지원합니다. - 자세한 내용은 [문서](resource/global/YoStarKR/readme.md)를 참조해 주세요. -- 중국어 번체 서버 - 작전, 공개모집, 자동 통합전략(베타), 공개모집 계산 등을 지원합니다. - 자세한 내용은 [문서](resource/global/txwy/readme.md)를 참조해 주세요. - -해외 서버의 플레이어가 적고 프로젝트의 인력이 부족하기 때문에 해외 서버들의 경우에는 기본적인 기능만이 갖추어져 있습니다. 필요한 것이 있다면 [토의](https://github.com/MaaAssistantArknights/MaaAssistantArknights/discussions)에 참가하거나 직접 MAA의 개선에 함께해주세요! [해외 클라이언트 현지화](https://maa.plus/docs/ko-kr/2.5-해외_클라이언트_현지화.html) 문서도 참고해 주세요. - -## 관련 프로젝트 - -- 새 GUI:[MaaAsstElectronUI](https://github.com/MaaAssistantArknights/MaaAsstElectronUI) (현재 개발 중입니다. 도움은 환영합니다!) -- 백엔드: [MaaBackendCenter](https://github.com/MaaAssistantArknights/MaaBackendCenter) (현재 개발 중입니다. 도움은 환영합니다!) -- [전략 파일 저장소](https://prts.plus):[프론트엔드](https://github.com/MaaAssistantArknights/maa-copilot-frontend) -- [공식 웹사이트](https://maa.plus):[프론트엔드](https://github.com/MaaAssistantArknights/maa-website) - -## 감사의 말 - -### 오픈소스 라이브러리 - -- 이미지 인식: [opencv](https://github.com/opencv/opencv.git) -- ~~글자 인식: [chineseocr_lite](https://github.com/DayBreak-u/chineseocr_lite.git)~~ -- 글자 인식: [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) -- ML Deployment: [FastDeploy](https://github.com/PaddlePaddle/FastDeploy) -- ML accelerator: [onnxruntime](https://github.com/microsoft/onnxruntime) -- ~~아이템 드랍 인식: [Penguin Stats recognizer](https://github.com/penguin-statistics/recognizer)~~ -- 맵 타일 인식: [Arknights-Tile-Pos](https://github.com/yuanyan3060/Arknights-Tile-Pos) -- C++ JSON 라이브러리: [meojson](https://github.com/MistEO/meojson.git) -- C++ 오퍼레이터 파서: [calculator](https://github.com/kimwalisch/calculator) -- ~~C++ Base64 인코딩/디코딩: [cpp-base64](https://github.com/ReneNyffenegger/cpp-base64)~~ -- C++ ZIP 라이브러리: [zlib](https://github.com/madler/zlib) -- C++ Gzip 라이브러리: [gzip-hpp](https://github.com/mapbox/gzip-hpp) -- 안드로이드 터치 이벤트 구현: [minitouch](https://github.com/openstf/minitouch) -- 안드로이드 터치 이벤트 구현: [MaaTouch](https://github.com/MaaAssistantArknights/MaaTouch) -- WPF MVVM 프레임워크: [Stylet](https://github.com/canton7/Stylet) -- WPF 조작 라이브러리: [HandyControl](https://github.com/HandyOrg/HandyControl) -- C# JSON 라이브러리: [Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json) -- 다운로더: [aria2](https://github.com/aria2/aria2) - -### 데이터 소스 - -- ~~공개모집 데이터: [ArkTools](https://www.bigfun.cn/tools/aktools/hr)~~ -- 오퍼레이터/기반시설 데이터: [PRTS Arknights Wiki (Chinese)](http://prts.wiki/) -- 스테이지 데이터: [Penguin Stats](https://penguin-stats.io/) -- 게임 데이터/리소스: [Arknights Bot Resource](https://github.com/yuanyan3060/Arknights-Bot-Resource) -- 게임 데이터: [Arknights Game Data](https://github.com/Kengxxiao/ArknightsGameData) - -### 기여자 - -MAA의 개선을 위한 개발/테스트에 기여해준 모든 친구들에게 감사드립니다! (\*´▽`)ノノ - -[![Contributors](https://contributors-img.web.app/image?repo=MaaAssistantArknights/MaaAssistantArknights)](https://github.com/MaaAssistantArknights/MaaAssistantArknights/graphs/contributors) - -## 개발 관련 정보 - -### Windows - -- `MAA.sln`를 Visual Studio 2022로 열어주세요. 모든 설정이 제대로 구성되어 있습니다. -- clang-format 기능을 활성화해 주세요. 자세한 내용은 [개발](https://maa.plus/docs/ko-kr/2.2-개발.html) 문서의 [Visual Studio에서 clang-format 활성화](https://maa.plus/docs/ko-kr/2.2-개발.html#visual-studio에서-clang-format-활성화) 문단을 참조해 주세요. - -### Linux/MacOS - -[Linux_튜토리얼](https://maa.plus/docs/ko-kr/2.1-Linux_튜토리얼.html) 문서를 참조해 주세요. - -### API - -- [C 인터페이스](include/AsstCaller.h): [통합 예시](src/Cpp/main.cpp) -- [Python 인터페이스](src/Python/asst/asst.py): [통합 예시](src/Python/sample.py) -- [Golang 인터페이스](src/Golang/): [통합 예시](src/Golang/maa/maa.go) -- [Dart 인터페이스](src/Dart/) -- [Java 인터페이스](src/Java): [통합 예시](src/Java/src/main/java/com/iguigui/maaj/MaaJavaSample.java) -- [Rust 인터페이스](src/Rust/src/maa_sys/): [HTTP 인터페이스](src/Rust) -- [HTTP 인터페이스](src/Java/Readme.md) -- [TypeScript 인터페이스](https://github.com/MaaAssistantArknights/MaaAsstElectronUI/tree/main/packages/main/coreLoader) -- [통합](https://maa.plus/docs/ko-kr/3.1-통합.html) -- [콜백 형식](https://maa.plus/docs/ko-kr/3.2-콜백_형식.html) -- [임무 형식](https://maa.plus/docs/ko-kr/3.4-임무_형식.html) -- [전략 형식](https://maa.plus/docs/ko-kr/3.3-전략_형식.html) - -### 해외 클라이언트 현지화 - -[해외 클라이언트 현지화](https://maa.plus/docs/ko-kr/2.5-해외_클라이언트_현지화.html) 문서를 참고하세요. 대부분의 경우 CN 서버에서 이미 지원하는 기능들은 스크린샷과 간단한 JSON 파일 조작만으로도 타 서버에서 사용 가능합니다. - -### GitHub에 익숙치 않은 사용자용 가이드 - -[개발](https://maa.plus/docs/ko-kr/2.2-개발.html) 문서의 [GitHub Pull Request에 대한 설명](https://maa.plus/docs/ko-kr/2.2-개발.html#github-pull-request에-대한-설명) 문단을 참조해 주세요. - -### Issue Bot - -- `Add {LABEL_NAME}`로 레이블을 추가하고, `Remove {LABEL_NAME}`로 제거하세요. -- 커밋에서 `close #{ISSUE_NUMBER}` 또는 `fix #{ISSUE_NUMBER}`로 `fixed` 태그를 이슈에 추가하세요. - -자세한 내용은 [Issue Bot 사용방법](https://maa.plus/docs/ko-kr/2.3-IssueBot사용방법.html)을 참조해 주세요. - -## 주의사항 - -- 이 프로그램의 로고는 AGPL 3.0 라이센스의 적용 대상이 아닙니다. [耗毛](https://weibo.com/u/3251357314)와 Vie 두 명의 아티스트와 프로그램의 개발자들이 모든 권리를 가집니다. 프로젝트가 AGPL 3.0 라이센스 하에 있다고 하더라도 프로그램의 로고는 동의 없이 사용되어서는 안 되며, 동의 없는 상업적 이용 또한 금지됩니다. -- 이 프로그램은 오픈소스이자 무료이며 학습 및 커뮤니케이션 전용입니다. 이 프로그램을 이용해 장비값이나 시간당 수수료 등을 대가로 서비스를 제공하는 판매자로 인해 발생하는 문제와 결과는 프로그램의 개발자들에게는 책임이 없습니다. - -## 광고 - -사용자 그룹:[Telegram](https://t.me/+Mgc2Zngr-hs3ZjU1), [QQ 그룹](https://ota.maa.plus/MaaAssistantArknights/api/qqgroup/index.html) -[전략 JSON 공유](https://prts.plus) -[빌리빌리 라이브](https://live.bilibili.com/2808861): 코딩 과정을 밤마다 방송하고 있습니다. 이 프로그램에 대부분의 시간을 할애하고 있습니다. -[명일방주 무관 기술 공유 & 만담 (QQ 그룹)](https://jq.qq.com/?_wv=1027&k=ypbzXcA2): 지옥 같아요! -[개발자 그룹 (QQ 그룹)](https://jq.qq.com/?_wv=1027&k=JM9oCk3C) - -프로그램이 도움이 된다고 생각하시면 Star를 눌러주세요! (페이지 우측 상단의 작은 별) 저희에게 가장 큰 도움이 됩니다! diff --git a/README_zh-TW.md b/README_zh-TW.md deleted file mode 100644 index c4825e2ac1..0000000000 --- a/README_zh-TW.md +++ /dev/null @@ -1,188 +0,0 @@ -
- -LOGO - -# MaaAssistantArknights - -
-
- C++ -
-
- platform -
-
- license - commit - stars -
-
- -[简体中文](README.md) | [繁體中文](README_zh-TW.md) | [English](README_en-US.md) | [日本語](README_ja-JP.md) | [한국어](README_ko-KR.md) - -MAA 的意思是 MAA Assistant Arknights - -一款明日方舟遊戲小助手 - -基於圖像辨識技術,一鍵完成全部日常任務! - -絕讚更新中 ✿✿ヽ(°▽°)ノ✿ - -
- -## 亮點功能 - -- 刷理智,掉落辨識及上傳 [企鵝物流](https://penguin-stats.cn/) -- 智能基建換班,自動計算幹員效率,單設施內最優解 -- 自動公招,可選使用加急許可,一次全部刷完!公招数据上傳 [企鵝物流](https://penguin-stats.cn/result/stage/recruit/recruit),[一圖流](https://yituliu.site/maarecruitdata) -- 訪問好友、收取信用及購物、領取日常獎勵等。一鍵全日常自動長草! -- 肉鴿全自動刷源石錠和蠟燭,自動辨識幹員及練度 -- 導入作業 JSON 檔案,自動抄作業! [影片演示](https://www.bilibili.com/video/BV1H841177Fk/) -- 新功能:倉庫辨識!支援導出至 [企鵝物流刷圖規劃器](https://penguin-stats.cn/planner), [明日方舟工具箱](https://arkn.lolicon.app/#/material), [ARK-NIGHTS 幹員培養表](https://ark-nights.com/settings) - -話不多說,看圖! - -![image](https://user-images.githubusercontent.com/18511905/189659056-67587818-9844-4f5a-b2f5-838a8932b387.png) -![image](https://user-images.githubusercontent.com/99072975/181418131-f4eefa07-6623-470e-ba4a-0ad15cb8aa91.png) -![image](https://user-images.githubusercontent.com/99072975/172045163-e9ead337-eb62-4f9f-a354-9e302f767a52.png) - -## 下載連結 - -[穩定版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/latest) -[開發版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases) - -## 使用說明 - -### 基本說明 - -1. 請根据 [模擬器支援情況](https://maa.plus/docs/zh-tw/1.3-模擬器支援.html),進行對應的操作。 -2. 修改模擬器解析度為 `16:9` 比例,最低 `1280 * 720`, 更高不限。 -3. 開始使用吧! - -更多使用說明請參考 [詳細介紹](https://maa.plus/docs/zh-tw/1.1-詳細介紹.html) - -## 常見問題 - -- 軟體一打開就閃退 -- 連接錯誤、不知道 adb 路徑怎麼填寫 -- 辨識錯誤/任務開始後一直不動、沒有反應 -- 如何連接自定義通訊埠 -- 下載速度慢,且鏡像站無法打開網頁 -- 下載到一半提示“登陸”/“鑑權” - -請參考 [常見問題](https://maa.plus/docs/zh-tw/1.2-常見問題.html) - -## 外服支援 - -- 國際服(美服) - 支援基本的刷理智、信用購物、訪問好友、領取獎勵、自動肉鴿(測試版本)、公招辨識,請參考 [說明](resource/global/YoStarEN/readme.md) -- 日服 - 支援基本的刷理智、自動基建、信用購物、自動公招、訪問好友、領取獎勵、自動肉鴿(測試版本)、公招辨識,請參考 [說明](resource/global/YoStarJP/readme.md) -- 韓服 - 支援基本的刷理智、信用購物、訪問好友、領取獎勵、自動肉鴿(測試版本)、公招辨識,請參考 [說明](resource/global/YoStarKR/readme.md) -- 繁中服 - 支援基本的刷理智、自動公招、自動肉鴿、領取日常、公招辨識功能,請參考 [說明](resource/global/txwy/readme.md) - -由於外服使用者較少及項目人手不足的問題,外服目前都僅適配了基本的功能。若您有強需求,歡迎在 [討論區](https://github.com/MaaAssistantArknights/MaaAssistantArknights/discussions) 催更,或加入我们一起建设 MAA!请参考 [外服适配教程](#外服適配) - -## 主要關聯項目 - -- 全新 GUI:[MaaAsstElectronUI](https://github.com/MaaAssistantArknights/MaaAsstElectronUI) (正在開發中,歡迎加入!) -- 後端:[MaaBackendCenter](https://github.com/MaaAssistantArknights/MaaBackendCenter) (正在開發中,歡迎加入!) -- [作業站](https://prts.plus):[前端](https://github.com/MaaAssistantArknights/maa-copilot-frontend) -- [官網](https://maa.plus):[前端](https://github.com/MaaAssistantArknights/maa-website) - -## 致謝 - -### 開源庫 - -- 圖像辨識庫:[opencv](https://github.com/opencv/opencv.git) -- ~~字元辨識庫:[chineseocr_lite](https://github.com/DayBreak-u/chineseocr_lite.git)~~ -- 字元辨識庫:[PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) -- 深度學習部署庫:[FastDeploy](https://github.com/PaddlePaddle/FastDeploy) -- 機器學習加速器:[onnxruntime](https://github.com/microsoft/onnxruntime) -- ~~關卡掉落辨識:[企鵝物流辨識](https://github.com/penguin-statistics/recognizer)~~ -- 地圖格子辨識:[Arknights-Tile-Pos](https://github.com/yuanyan3060/Arknights-Tile-Pos) -- C++ JSON庫:[meojson](https://github.com/MistEO/meojson.git) -- C++ 算子分析器:[calculator](https://github.com/kimwalisch/calculator) -- ~~C++ base64編解碼:[cpp-base64](https://github.com/ReneNyffenegger/cpp-base64)~~ -- C++ 解壓壓縮庫:[zlib](https://github.com/madler/zlib) -- C++ Gzip封裝:[gzip-hpp](https://github.com/mapbox/gzip-hpp) -- 安卓觸控事件器:[minitouch](https://github.com/openstf/minitouch) -- 安卓觸控事件器:[MaaTouch](https://github.com/MaaAssistantArknights/MaaTouch) -- WPF MVVM框架:[Stylet](https://github.com/canton7/Stylet) -- WPF部件庫:[HandyControl](https://github.com/HandyOrg/HandyControl) -- C# JSON庫:[Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json) -- 下載器:[aria2](https://github.com/aria2/aria2) - -### 資料源 - -- ~~公開招募資料:[明日方舟工具箱](https://www.bigfun.cn/tools/aktools/hr)~~ -- 幹員及基建資料:[PRTS明日方舟中文WIKI](http://prts.wiki/) -- 關卡資料:[企鵝物流資料統計](https://penguin-stats.cn/) -- 遊戲數據及資源:[明日方舟bot常用素材](https://github.com/yuanyan3060/Arknights-Bot-Resource) -- 遊戲數據:[《明日方舟》游戏数据](https://github.com/Kengxxiao/ArknightsGameData) - -### 貢獻/參與者 - -感謝所有參與到開發/測試中的朋友們,是大家的幫助讓 MAA 越來越好! (\*´▽`)ノノ - -[![Contributors](https://contributors-img.web.app/image?repo=MaaAssistantArknights/MaaAssistantArknights)](https://github.com/MaaAssistantArknights/MaaAssistantArknights/graphs/contributors) - -## 開發相關 - -### Windows - -- 直接使用 Visual Studio 2022 打開 `MAA.sln` 即可,所有環境都是配置好的 -- 建議啟用 clang-format 支援,詳細內容可以參考 [在 Visual Studio 中啟用 clang-format](https://maa.plus/docs/zh-tw/2.2-開發相關.html#在-visual-studio-中启用-clang-format) - -### Linux | macOS - -請參考 [Linux 編譯教程](https://maa.plus/docs/zh-tw/2.1-Linux編譯教程.html) - -### API - -- [C 介面](include/AsstCaller.h):[整合示例](src/Cpp/main.cpp) -- [Python 介面](src/Python/asst/asst.py):[整合示例](src/Python/sample.py) -- [Golang 介面](src/Golang/):[整合示例](src/Golang/maa/maa.go) -- [Dart 介面](src/Dart/) -- [Java 介面](src/Java/src/main/java/com/iguigui/maaj/easySample/MaaCore.java):[整合示例](src/Java/src/main/java/com/iguigui/maaj/easySample/MaaJavaSample.java) -- [Rust 介面](src/Rust/src/maa_sys/):[HTTP 介面](src/Rust) -- [HTTP 介面](src/Java/Readme.md) -- [TypeScript 介面](https://github.com/MaaAssistantArknights/MaaAsstElectronUI/tree/main/packages/main/coreLoader) -- [整合文件](https://maa.plus/docs/zh-tw/3.1-集成文件.html) -- [回呼訊息協定](https://maa.plus/docs/zh-tw/3.2-回呼訊息協定.html) -- [任務流程協定](https://maa.plus/docs/zh-tw/3.4-任務流程協定.html) -- [自動抄作業協定](https://maa.plus/docs/zh-tw/3.3-戰鬥流程協定.html) - -### 外服適配 - -請參考 [外服適配教程](https://maa.plus/docs/zh-tw/2.5-外服適配教程.html),對於國服已支持的功能,絕大部分的外服適配工作僅需要截圖 + 簡單的 JSON 修改即可。 - -### 想參與開發,但不太會用 Github? - -[Github Pull Request 流程簡述](https://maa.plus/docs/zh-tw/2.2-開發相關.html) - -### Issue Bot - -- 使用 `Add {LABEL_NAME}` 增加標籤,使用 `Remove {LABEL_NAME}` 刪除標籤。 -- 在提交說明中用 `close #{ISSUE_NUMBER}` 或 `fix #{ISSUE_NUMBER}` 給對應議題增加 `fixed` 標籤。 - -更多說明請參考 [Issue Bot 使用方法](https://maa.plus/docs/zh-tw/2.3-IssueBot使用方法.html)。 - -## 聲明 - -- 本軟體 logo 並非使用 AGPL 3.0 條款開源,[耗毛](https://weibo.com/u/3251357314)、Vie 兩位畫師以及軟體全體開發者保留所有權利。不得以 AGPL 3.0 條款已授權為由在未經授權的情況下使用本軟體 logo, 不得在未經授權的情況下將本軟體 logo 用於任何商業用途。 -- 本軟體開源、免費,僅供學習交流使用。若您遇到商家使用本軟體進行代練並收費,可能是設備與時間等費用,產生的問題及後果與本軟件無關。 - -## 廣告 - -用戶交流QQ群:[MAA使用 & 舟遊交流群](https://ota.maa.plus/MaaAssistantArknights/api/qqgroup/index.html) -用戶交流TG群:[Telegram 群](https://t.me/+Mgc2Zngr-hs3ZjU1) -自動戰鬥 JSON 作業分享:[prts.plus](https://prts.plus) -Bilibili 直播間:[直播間](https://live.bilibili.com/2808861) 每晚直播敲代碼,近期很長一段時間應該都是在寫本軟體~ - -技術交流群(舟無關):[內捲地獄!(QQ 群)](https://jq.qq.com/?_wv=1027&k=ypbzXcA2) -開發者群:[QQ 群](https://jq.qq.com/?_wv=1027&k=JM9oCk3C) - -如果覺得軟體對你有幫助,幫忙點個 Star 吧!~(網頁最上方右上角的小星星),這就是對我們最大的支持了! From ba214d585623c305d2f4e045b6b9cd8b267cea7c Mon Sep 17 00:00:00 2001 From: uye <2396806385@qq.com> Date: Sun, 19 Feb 2023 03:11:01 +0800 Subject: [PATCH 010/100] =?UTF-8?q?docs:=20=E5=8A=A0=E5=9B=9E=E6=8D=A2?= =?UTF-8?q?=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index ad61c7bc99..e8ceaeee8e 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ MAA 的意思是 MAA Assistant Arknights 基于图像识别技术,一键完成全部日常任务! -绝赞更新中 ✿✿ヽ(°▽°)ノ✿ +绝赞更新中 ✿✿ヽ(°▽°)ノ✿
@@ -41,7 +41,7 @@ MAA 的意思是 MAA Assistant Arknights - 仓库识别并支持导出至 [企鹅物流刷图规划器](https://penguin-stats.cn/planner), [明日方舟工具箱](https://arkn.lolicon.app/#/material), [ARK-NIGHTS 干员培养表](https://ark-nights.com/settings) - 支持 C, Python, Java, Rust, Golang, Java HTTP, Rust HTTP 等多种接口,方便集成调用,自定义你的 MAA! -话不多说,看图! +话不多说,看图!
![image](https://user-images.githubusercontent.com/18511905/189659056-67587818-9844-4f5a-b2f5-838a8932b387.png) ![image](https://user-images.githubusercontent.com/99072975/181418131-f4eefa07-6623-470e-ba4a-0ad15cb8aa91.png) @@ -49,7 +49,7 @@ MAA 的意思是 MAA Assistant Arknights ## 下载地址 -[稳定版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/latest) +[稳定版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/latest)
[开发版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases) ## 使用说明 @@ -76,13 +76,13 @@ MAA 的意思是 MAA Assistant Arknights ## 外服支持 -- 国际服(美服) +- 国际服(美服)
支持基本的刷理智、信用购物、访问好友、领取奖励、自动肉鸽(测试版本)、公招识别,请参考 [说明](resource/global/YoStarEN/readme.md) -- 日服 +- 日服
支持基本的刷理智、自动基建、信用购物、自动公招、访问好友、领取奖励、自动肉鸽(测试版本)、公招识别,请参考 [说明](resource/global/YoStarJP/readme.md) -- 韩服 +- 韩服
支持基本的刷理智、信用购物、访问好友、领取奖励、自动肉鸽(测试版本)、公招识别,请参考 [说明](resource/global/YoStarKR/readme.md) -- 繁中服 +- 繁中服
支持基本的刷理智、自动公招、自动肉鸽、领取日常、公招识别功能,请参考 [说明](resource/global/txwy/readme.md) 由于外服用户较少及项目人手不足的问题,外服目前都仅适配了基本的功能。若您有强需求,欢迎在 [讨论区](https://github.com/MaaAssistantArknights/MaaAssistantArknights/discussions) 催更,或加入我们一起建设 MAA!请参考 [外服适配教程](#外服适配) @@ -179,12 +179,12 @@ MAA 的意思是 MAA Assistant Arknights ## 广告 -用户交流 QQ 群:[MAA 使用 & 粥游交流 QQ 群](https://ota.maa.plus/MaaAssistantArknights/api/qqgroup/index.html) -用户交流 TG 群:[Telegram 群](https://t.me/+Mgc2Zngr-hs3ZjU1) -自动战斗 JSON 作业分享:[prts.plus](https://prts.plus) 或 [抄作业.com](http://抄作业.com) -Bilibili 直播间:[直播间](https://live.bilibili.com/2808861) 每晚直播敲代码,近期很长一段时间应该都是在写本软件~ +用户交流 QQ 群:[MAA 使用 & 粥游交流 QQ 群](https://ota.maa.plus/MaaAssistantArknights/api/qqgroup/index.html)
+用户交流 TG 群:[Telegram 群](https://t.me/+Mgc2Zngr-hs3ZjU1)
+自动战斗 JSON 作业分享:[prts.plus](https://prts.plus) 或 [抄作业.com](http://抄作业.com)
+Bilibili 直播间:[直播间](https://live.bilibili.com/2808861) 每晚直播敲代码,近期很长一段时间应该都是在写本软件~
-技术 & 吹水群(舟无关):[内卷地狱!(QQ 群)](https://jq.qq.com/?_wv=1027&k=ypbzXcA2) -开发者群:[QQ 群](https://jq.qq.com/?_wv=1027&k=JM9oCk3C) +技术 & 吹水群(舟无关):[内卷地狱!(QQ 群)](https://jq.qq.com/?_wv=1027&k=ypbzXcA2)
+开发者群:[QQ 群](https://jq.qq.com/?_wv=1027&k=JM9oCk3C)
如果觉得软件对你有帮助,帮忙点个 Star 吧!~(网页最上方右上角的小星星),这就是对我们最大的支持了! From eb04db36ebf263eedf951269fd53215c5dce3f83 Mon Sep 17 00:00:00 2001 From: Hao Guan <10684225+hguandl@users.noreply.github.com> Date: Sun, 19 Feb 2023 12:51:20 +1000 Subject: [PATCH 011/100] =?UTF-8?q?fix:=20Mac=20GUI=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E7=BC=96=E9=98=9F=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaMacGui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MaaMacGui b/src/MaaMacGui index ce10ea35d5..7e21545cf3 160000 --- a/src/MaaMacGui +++ b/src/MaaMacGui @@ -1 +1 @@ -Subproject commit ce10ea35d5d61bc612ede3d62f8c34e0d0ffb7c2 +Subproject commit 7e21545cf334e5f647d6b786101dc478a4b86e3e From 71b98301cc9c071d16e2ebe1f0bcc6874389f7c9 Mon Sep 17 00:00:00 2001 From: MistEO Date: Sun, 19 Feb 2023 18:54:39 +0800 Subject: [PATCH 012/100] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E6=88=98=E6=96=97=E5=BC=80=E5=A7=8B=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E7=9A=84=E8=AF=86=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/resource/tasks.json b/resource/tasks.json index 31666c4c6d..7b39eab1c5 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -6150,7 +6150,8 @@ "BattleStartExercise", "BattleStartSimulation", "BattleStartTrials", - "BattleStartTrialsRaid" + "BattleStartTrialsRaid", + "BattleStartOCR" ] }, "BattleStartNormal": { @@ -6168,6 +6169,20 @@ "BattleStartTrialsRaid": { "baseTask": "BattleStart" }, + "BattleStartOCR": { + "baseTask": "BattleStart", + "algorithm": "OcrDetect", + "text": [ + "开始", + "行动" + ], + "roi": [ + 999, + 398, + 222, + 237 + ] + }, "BattleStartSimulation": { "action": "ClickSelf", "roi": [ From e8d6a7d80c7852761ab8d944a667d51cda9ffa94 Mon Sep 17 00:00:00 2001 From: Wallsman <63186641+wallsman@users.noreply.github.com> Date: Sun, 19 Feb 2023 23:49:11 +0900 Subject: [PATCH 013/100] doc : Config JP text translate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit いくらか抜けていた部分や翻訳抜けを修正。 Some omissions and missing translations were corrected. --- src/MaaWpfGui/Res/Localizations/ja-jp.xaml | 95 +++++++++++++++++----- 1 file changed, 75 insertions(+), 20 deletions(-) diff --git a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml index ff0de28b2f..325678ba21 100644 --- a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml +++ b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml @@ -6,8 +6,9 @@ xmlns:uri="clr-namespace:System;assembly=System.Runtime"> 設定 + 対象クライアント 基地設定 - ローグ設定 + 統合戦略設定 公開求人設定 FP設定 戦闘設定 @@ -37,15 +38,21 @@ 製造所-源石の欠片 製造所-中級SoC 宿舎の空き位置で信頼を上げる - 作業中のオペレーターを宿舎に移動しない - - 源石の欠片は自動で補充する - カスタムされた基地構成を有効にする(Alpha) + 作業中の人員を宿舎に移動しない(例:訓練所でのアイリーニなど) + 源石の欠片を自動で補充 + カスタムされた基地構成を有効にする(ベータ) + 標準設定 + ユーザー定義 + 153 3周/日 + 243 3周/日< + 243 4周/日 + 252 3周/日< + 333 3周/日< 基地構成ファイルの指定 基地構成ファイルのパースエラー! 基地構成ファイルの設定: 基地計画 - Auto save for next plan + 次の計画を自動保存 一般モード 一般モード(ブロックされた例外出力) @@ -54,26 +61,28 @@ LDPlayer NoxPlayer MEmu - WSA 古いバージョン + 古いバージョンのWSA + MaaTouch 互換モード 体力が設定した%以下になれば宿舎へ移動する カスタムシフトが有効な場合、この項目は自動入力された部屋に対してのみ有効です。 - 経験値を取得する、できるだけクリアする - 源石錐を集めて、2階に到着後止める + 経験値を取得し、できるだけクリア + 源石錐の収集、2階到着後終了 最初の分隊 最初の職業 最初のオペレーター(一人だけ、中国名のみを入力可能) 一人のオペレーターの中国名のみをサポートします。入力されていない場合はデフォルトになります。 - 開幕戦の幹部は助戦を使った - フレンド以外のアシストを使用できます + "最初のオペレーター"をサポートから選択 + フレンド以外のサポートの使用を許可 + 統合戦略/保全戦略でポーズトリックを使用します(ベータ機能のため非推奨です) + 軽量Adbを使用(実験機能) デフォルト (ミヅキ)心胜于物分队 (ミヅキ)物尽其用分队 (ミヅキ)以人为本分队 - 指揮分隊 集団分隊 支援分隊 @@ -91,6 +100,11 @@ 前線支援 自由自在 + 演算结束 + 繁荣证章 + 建造点数 + 锻造赤金 + 選ばない CN-公式 Bilibili @@ -105,6 +119,7 @@ ADBプログラム エミュレータのエラー検出 管理者権限でこのアプリを開くか 手動で接続設定を行ってください + ADB検出エラー このソフトウェアを開くには管理者権限を使用するか 手動で接続を設定してください。 エミュレータが検出されない 管理者権限でこのアプリを開くか 手動で接続設定を行ってください 複数のシミュレータが検出されたため 不要なエミュレータを閉じるか 手動で接続設定を行ってください @@ -130,10 +145,39 @@ 安定版 ベータ版 内部テスト版 + Update version aria2を使う 更新版 アップデートを確認する + 新しいバージョンが見つかりました + バックグラウンドでダウンロードを行います・・・ + バージョン: + 内容: + Webサイトで確認 + + アップデートパッケージが見つかりました + 解凍中です、お待ち下さい・・・ + + パッケージが壊れています + ファイル名: + 消去しました。 + + 最新版をインストール済みです。 + アップデートパッケージを見つけるのに失敗しました + ネットワークの接続状況とプロクシの設定を確認してください。 + リリースノートの取得に失敗しました。 + 新しいバージョンの準備中です。時間をおいてからもう一度実行してください。 + + アップデートパッケージのダウンロードを準備中です・・・ + アップデートパッケージのダウンロードに失敗しました + ZIPファイルを手動でダウンロードし、ディレクトリに配置してください。 + アップデートパッケージのダウンロードが完了しました + MAAをすぐにアップグレードしますか?(処理を再開) + + 新バージョンが見つかりましたが、アップデートパッケージがありません + アップデートするには、手動でフルパッケージをダウンロードしてください。 + タイマー スタートアップ @@ -144,6 +188,11 @@ エミュレータを待つ時間(秒) エミュレータパス 選択 + ADB強制置き換え + タッチモード + Minitouch (標準) + MaaTouch (実験機能) + Adb Input (互換性) 追加コマンド 主題 @@ -174,9 +223,9 @@ 最小化した際にトレイに表示 重要な通知をポップアップする 代替ステージを選択可能にする - 残留理性の使用 - メインクエストクリア後に指定されたレベルをスワイプしても、自動的に理性を取り戻さなくなった - + 余剰理性の使用 + メインタスク終了後に指定されたレベルを選択しても、自動的に理性を回復しません + 48時間以内に期限が切れる理性剤を無制限に使用 当日開放されないステージを隠す スタート画面に表示する便利ボタン ステージ名を入力する @@ -191,7 +240,6 @@ 接続構成 adb再接続失敗時にエミュレータを自動で再起動 再接続に20回失敗した後、エミュレータを再起動してみてください,バックグラウンドのタイムドタスクを使用し、終了時にエミュレータを終了させるタスクを設定する場合は、必ずチェックを入れること - ADBの強制置き換え @@ -205,6 +253,7 @@ FP獲得と交換 報酬受取 自動ローグ + 生息演算(大陸版) 全て選択 逆選択 @@ -242,6 +291,10 @@ イベントは未公開か既に終了 + 未サポートステージ + バージョンを上げてください + 公開日まで: + 1日以内 1-7 龍門幣-6(CE-6) @@ -282,9 +335,8 @@ エミュレータ接続中…… タスクが選択されていません 動作中…… - 動作停止中…… もし全てでスタックする場合は、設定 - 接続設定 - ADBの強制置き換え、もしくは 互換性 タッチモード をチェックしてください。 - + 動作停止中…… 動作停止 不明なエラーが発生しました 設定に成功しました @@ -294,6 +346,7 @@ 完了しました。シャットダウンしようとしています。キャンセルしますか? ヒント 完了しました。休止状態にしようとしています。 + 殲滅戦に失敗、代替ステージを使用しますが、一部の戦闘設定が有効ではありません @@ -329,7 +382,7 @@ 攻略ファイルはマウスで直接ドラッグして取り込むことがきます(o゚v゚)ノ 自動編成 自動編成では、一時的に「戦術要員」オペレーターを認識できません - LoopTimes + ループ回数 開始 @@ -400,6 +453,7 @@ ゲームがクラッシュ。再起動を行います 回線が落ちました。再接続を行います ゲームクリア、おめでとうございます! + ゲームクリア、おめでとうございます! ステージ:怪しい旅商人 ステージ:安全な片隅 ステージ:思わぬ遭遇 @@ -440,6 +494,7 @@ Copilot Map and Coordinate Custom Base Json Generator QQグループ + QQ channel Telegram よくある質問 フィードバック @@ -465,4 +520,4 @@ つ、次は飲みすぎないようにしないと…… Hello World! - \ No newline at end of file + From 515c84c0c7a1899e51749af51feb47a34a90e08b Mon Sep 17 00:00:00 2001 From: Wallsman <63186641+wallsman@users.noreply.github.com> Date: Sun, 19 Feb 2023 23:54:38 +0900 Subject: [PATCH 014/100] Update ja-jp.xaml --- src/MaaWpfGui/Res/Localizations/ja-jp.xaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml index 325678ba21..40a5802a8c 100644 --- a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml +++ b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml @@ -76,7 +76,7 @@ 一人のオペレーターの中国名のみをサポートします。入力されていない場合はデフォルトになります。 "最初のオペレーター"をサポートから選択 フレンド以外のサポートの使用を許可 - 統合戦略/保全戦略でポーズトリックを使用します(ベータ機能のため非推奨です) + 統合戦略/保全駐在でポーズトリックを使用します(ベータ機能のため非推奨です) 軽量Adbを使用(実験機能) デフォルト From 49d59bae5f86076883c57aa7a4949ffa7da3ebaf Mon Sep 17 00:00:00 2001 From: uye <99072975+ABA2396@users.noreply.github.com> Date: Mon, 20 Feb 2023 00:36:04 +0800 Subject: [PATCH 015/100] =?UTF-8?q?chore:=20=E4=B8=8D=E5=9C=A8=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E5=89=A9=E4=BD=99=E7=90=86=E6=99=BA=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=BC=80=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 否则在不开放的时候显示可能为当前/上次,而第二天变成了之前的关卡,可能会带来一些问题 --- src/MaaWpfGui/Main/TaskQueueViewModel.cs | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/MaaWpfGui/Main/TaskQueueViewModel.cs b/src/MaaWpfGui/Main/TaskQueueViewModel.cs index e6328a2075..9d1af40fb5 100644 --- a/src/MaaWpfGui/Main/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/Main/TaskQueueViewModel.cs @@ -1560,14 +1560,6 @@ namespace MaaWpfGui { get { - if (!CustomStageCode) - { - if (!IsStageOpen(_remainingSanityStage)) - { - return string.Empty; - } - } - return _remainingSanityStage; } From 5f8a6ef0b2747e7e96b56e24378d70512d69e250 Mon Sep 17 00:00:00 2001 From: Wallsman <63186641+wallsman@users.noreply.github.com> Date: Mon, 20 Feb 2023 02:56:42 +0900 Subject: [PATCH 016/100] Update ja-jp.xaml Typo Miss --- src/MaaWpfGui/Res/Localizations/ja-jp.xaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml index 40a5802a8c..ad9f43fbd5 100644 --- a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml +++ b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml @@ -45,7 +45,7 @@ ユーザー定義 153 3周/日 243 3周/日< - 243 4周/日 + 243 4周/日< 252 3周/日< 333 3周/日< 基地構成ファイルの指定 From 49a6192e4d6a81fe7eb8647a21cf89817756e557 Mon Sep 17 00:00:00 2001 From: Wallsman <63186641+wallsman@users.noreply.github.com> Date: Mon, 20 Feb 2023 06:07:58 +0900 Subject: [PATCH 017/100] Update ja-jp.xaml miss fix. --- src/MaaWpfGui/Res/Localizations/ja-jp.xaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml index ad9f43fbd5..6f0961c39a 100644 --- a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml +++ b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml @@ -44,10 +44,10 @@ 標準設定 ユーザー定義 153 3周/日 - 243 3周/日< - 243 4周/日< - 252 3周/日< - 333 3周/日< + 243 3周/日 + 243 4周/日 + 252 3周/日 + 333 3周/日 基地構成ファイルの指定 基地構成ファイルのパースエラー! 基地構成ファイルの設定: From 07ffac91ab8bc5653c37eb32f75d103d6c45ec75 Mon Sep 17 00:00:00 2001 From: uye <2396806385@qq.com> Date: Mon, 20 Feb 2023 18:15:42 +0800 Subject: [PATCH 018/100] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=8C=87=E5=AE=9A=E8=AF=AD=E8=A8=80=E6=96=87=E5=AD=97?= =?UTF-8?q?=E6=97=B6=E4=B8=8D=E6=94=AF=E6=8C=81=E8=BD=AC=E4=B9=89=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaWpfGui/Helper/Localization.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MaaWpfGui/Helper/Localization.cs b/src/MaaWpfGui/Helper/Localization.cs index c83ace6aa7..584685f874 100644 --- a/src/MaaWpfGui/Helper/Localization.cs +++ b/src/MaaWpfGui/Helper/Localization.cs @@ -107,7 +107,7 @@ namespace MaaWpfGui }; if (dictionary.Contains(key)) { - return dictionary[key].ToString(); + return Regex.Unescape(dictionary[key].ToString()); } } From ea605c0bf7e17b2d7d9de751f288784c3b275822 Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Mon, 20 Feb 2023 23:02:15 -0600 Subject: [PATCH 019/100] =?UTF-8?q?feat:=20=E6=B6=89=E5=8F=8A=E5=B9=B2?= =?UTF-8?q?=E5=91=98=E5=90=8D=E7=A7=B0=E7=9A=84ocrReplace=E6=9B=B4?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E6=9B=BF=E6=8D=A2=E6=95=B4=E4=B8=AAstr?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 比如["name", "名字"],"name~"原来会被替换成"名字~",现在则是"名字" --- src/MaaCore/Task/BattleHelper.cpp | 2 +- .../Task/Infrast/InfrastAbstractTask.cpp | 6 ++-- .../Task/Infrast/InfrastProductionTask.cpp | 4 +-- .../Miscellaneous/BattleFormationTask.cpp | 4 +-- src/MaaCore/Vision/OcrImageAnalyzer.cpp | 30 ++++++++++++++----- src/MaaCore/Vision/OcrImageAnalyzer.h | 4 ++- .../RoguelikeRecruitImageAnalyzer.cpp | 2 +- .../RoguelikeSkillSelectionImageAnalyzer.cpp | 2 +- 8 files changed, 35 insertions(+), 19 deletions(-) diff --git a/src/MaaCore/Task/BattleHelper.cpp b/src/MaaCore/Task/BattleHelper.cpp index 206278f09a..335cf0b8c4 100644 --- a/src/MaaCore/Task/BattleHelper.cpp +++ b/src/MaaCore/Task/BattleHelper.cpp @@ -191,7 +191,7 @@ bool asst::BattleHelper::update_deployment(bool init, const cv::Mat& reusable) auto analyze = [&](OcrImageAnalyzer& name_analyzer) { name_analyzer.set_image(name_image); name_analyzer.set_task_info(oper_name_ocr_task_name()); - name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map); + name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map, true); if (!name_analyzer.analyze()) { return std::string(); } diff --git a/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp b/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp index 224d62cac4..e85e9528fa 100644 --- a/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp @@ -275,7 +275,7 @@ bool asst::InfrastAbstractTask::select_opers_review(infrast::CustomRoomConfig co const auto& ocr_replace = Task.get("CharsNameOcrReplace")->replace_map; for (const auto& oper : oper_analyzer_res) { OcrWithPreprocessImageAnalyzer name_analyzer; - name_analyzer.set_replace(ocr_replace); + name_analyzer.set_replace(ocr_replace, true); name_analyzer.set_image(oper.name_img); name_analyzer.set_expansion(0); if (!name_analyzer.analyze()) { @@ -330,7 +330,7 @@ bool asst::InfrastAbstractTask::select_custom_opers(std::vector& pa const auto& ocr_replace = Task.get("CharsNameOcrReplace")->replace_map; for (const auto& oper : oper_analyzer.get_result()) { OcrWithPreprocessImageAnalyzer name_analyzer; - name_analyzer.set_replace(ocr_replace); + name_analyzer.set_replace(ocr_replace, true); name_analyzer.set_image(oper.name_img); name_analyzer.set_expansion(0); if (!name_analyzer.analyze()) { @@ -387,7 +387,7 @@ void asst::InfrastAbstractTask::order_opers_selection(const std::vector page_result; for (const auto& oper : oper_analyzer.get_result()) { OcrWithPreprocessImageAnalyzer name_analyzer; - name_analyzer.set_replace(ocr_replace); + name_analyzer.set_replace(ocr_replace, true); name_analyzer.set_image(oper.name_img); name_analyzer.set_expansion(0); if (!name_analyzer.analyze()) { diff --git a/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp b/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp index a5393a0a54..2da803f478 100644 --- a/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp @@ -447,7 +447,7 @@ bool asst::InfrastProductionTask::optimal_calc() } else { OcrWithPreprocessImageAnalyzer name_analyzer(find_iter->name_img); - name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map); + name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map, true); Log.trace("Analyze name filter"); if (!name_analyzer.analyze()) { continue; @@ -574,7 +574,7 @@ bool asst::InfrastProductionTask::opers_choose() } else { OcrWithPreprocessImageAnalyzer name_analyzer(lhs.name_img); - name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map); + name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map, true); Log.trace("Analyze name filter"); if (!name_analyzer.analyze()) { return false; diff --git a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp index ef9376c90f..de823c58c0 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp @@ -133,12 +133,12 @@ std::vector asst::BattleFormationTask::analyzer_opers() OcrWithFlagTemplImageAnalyzer name_analyzer(image); name_analyzer.set_task_info("BattleQuickFormation-OperNameFlag", "BattleQuickFormationOCR"); - name_analyzer.set_replace(ocr_replace); + name_analyzer.set_replace(ocr_replace, true); name_analyzer.analyze(); OcrWithFlagTemplImageAnalyzer special_focus_analyzer(image); special_focus_analyzer.set_task_info("BattleQuickFormation-OperNameFlag-SpecialFocus", "BattleQuickFormationOCR"); - special_focus_analyzer.set_replace(ocr_replace); + special_focus_analyzer.set_replace(ocr_replace, true); special_focus_analyzer.analyze(); auto opers_result = name_analyzer.get_result(); diff --git a/src/MaaCore/Vision/OcrImageAnalyzer.cpp b/src/MaaCore/Vision/OcrImageAnalyzer.cpp index dbb9f439d7..88ac48104a 100644 --- a/src/MaaCore/Vision/OcrImageAnalyzer.cpp +++ b/src/MaaCore/Vision/OcrImageAnalyzer.cpp @@ -16,13 +16,26 @@ bool asst::OcrImageAnalyzer::analyze() std::vector preds_vec; if (!m_replace.empty()) { - TextRectProc text_replace = [&](TextRect& tr) -> bool { - for (const auto& [regex, new_str] : m_replace) { - tr.text = std::regex_replace(tr.text, std::regex(regex), new_str); - } - return true; - }; - preds_vec.emplace_back(text_replace); + if (m_replace_full) { + TextRectProc text_replace = [&](TextRect& tr) -> bool { + for (const auto& [regex, new_str] : m_replace) { + if (std::regex_search(tr.text, std::regex(regex))) { + tr.text = new_str; + } + } + return true; + }; + preds_vec.emplace_back(text_replace); + } + else { + TextRectProc text_replace = [&](TextRect& tr) -> bool { + for (const auto& [regex, new_str] : m_replace) { + tr.text = std::regex_replace(tr.text, std::regex(regex), new_str); + } + return true; + }; + preds_vec.emplace_back(text_replace); + } } if (!m_required.empty()) { @@ -96,9 +109,10 @@ void asst::OcrImageAnalyzer::set_required(std::vector required) noe m_required = std::move(required); } -void asst::OcrImageAnalyzer::set_replace(std::unordered_map replace) noexcept +void asst::OcrImageAnalyzer::set_replace(std::unordered_map replace, bool replace_full) noexcept { m_replace = std::move(replace); + m_replace_full = replace_full; } void asst::OcrImageAnalyzer::set_task_info(OcrTaskInfo task_info) noexcept diff --git a/src/MaaCore/Vision/OcrImageAnalyzer.h b/src/MaaCore/Vision/OcrImageAnalyzer.h index ad817a3093..c37e13354f 100644 --- a/src/MaaCore/Vision/OcrImageAnalyzer.h +++ b/src/MaaCore/Vision/OcrImageAnalyzer.h @@ -25,7 +25,8 @@ namespace asst virtual void sort_result_by_required(); // 按传入的需求数组排序,传入的在前面结果接在前面 void set_required(std::vector required) noexcept; - void set_replace(std::unordered_map replace) noexcept; + void set_replace(std::unordered_map replace, bool replace_full = false) noexcept; // The whole string is replaced when replace_full is set to true, + // while only the matched part is replaced when it is set to false virtual void set_task_info(std::shared_ptr task_ptr); virtual void set_task_info(const std::string& task_name); @@ -45,6 +46,7 @@ namespace asst std::vector m_required; bool m_full_match = false; std::unordered_map m_replace; + bool m_replace_full = false; TextRectProc m_pred = nullptr; bool m_without_det = false; bool m_use_cache = false; diff --git a/src/MaaCore/Vision/Roguelike/RoguelikeRecruitImageAnalyzer.cpp b/src/MaaCore/Vision/Roguelike/RoguelikeRecruitImageAnalyzer.cpp index d299ca5d2c..52ca1209fa 100644 --- a/src/MaaCore/Vision/Roguelike/RoguelikeRecruitImageAnalyzer.cpp +++ b/src/MaaCore/Vision/Roguelike/RoguelikeRecruitImageAnalyzer.cpp @@ -12,7 +12,7 @@ bool asst::RoguelikeRecruitImageAnalyzer::analyze() OcrWithFlagTemplImageAnalyzer analyzer(m_image); analyzer.set_task_info("RoguelikeRecruitOcrFlag", "RoguelikeRecruitOcr"); - analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map); + analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map, true); analyzer.set_threshold(Task.get("RoguelikeRecruitOcr")->specific_rect.x); if (!analyzer.analyze()) { diff --git a/src/MaaCore/Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.cpp b/src/MaaCore/Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.cpp index 5c8a7730af..2c1ecca7e4 100644 --- a/src/MaaCore/Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.cpp +++ b/src/MaaCore/Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.cpp @@ -54,7 +54,7 @@ std::string asst::RoguelikeSkillSelectionImageAnalyzer::name_analyze(const Rect& analyzer.set_task_info(name_task_ptr); analyzer.set_image(m_image); analyzer.set_roi(roi.move(name_task_ptr->roi)); - analyzer.set_replace(std::dynamic_pointer_cast(Task.get("CharsNameOcrReplace"))->replace_map); + analyzer.set_replace(std::dynamic_pointer_cast(Task.get("CharsNameOcrReplace"))->replace_map, true); if (!analyzer.analyze()) { return {}; From 1e68c6036b8a78b88e366b08e4177c113953f11c Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Mon, 20 Feb 2023 23:12:57 -0600 Subject: [PATCH 020/100] =?UTF-8?q?chore:=20=E5=A4=96=E6=9C=8Djson?= =?UTF-8?q?=E9=83=A8=E5=88=86=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/global/YoStarEN/resource/tasks.json | 2 +- resource/global/YoStarJP/resource/tasks.json | 8 ++++++-- resource/global/YoStarKR/resource/tasks.json | 2 +- resource/global/txwy/resource/tasks.json | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/resource/global/YoStarEN/resource/tasks.json b/resource/global/YoStarEN/resource/tasks.json index e01a56c59a..ebc17850f9 100644 --- a/resource/global/YoStarEN/resource/tasks.json +++ b/resource/global/YoStarEN/resource/tasks.json @@ -1,6 +1,6 @@ { "CharsNameOcrReplace": { - "Doc": "该任务的 ocrReplace 被所有涉及干员名的English Name识别任务复用", + "Doc": "该任务的 ocrReplace 被所有涉及干员名的英文识别任务复用 This task's ocrReplace is reused by all recognition tasks related to operator names", "ocrReplace": [ [ "SilverAsh", diff --git a/resource/global/YoStarJP/resource/tasks.json b/resource/global/YoStarJP/resource/tasks.json index 2433e12485..8328f173b6 100644 --- a/resource/global/YoStarJP/resource/tasks.json +++ b/resource/global/YoStarJP/resource/tasks.json @@ -10,7 +10,7 @@ ] }, "CharsNameOcrReplace": { - "Doc": "该任务的 ocrReplace 被所有涉及干员名的日文识别任务复用", + "Doc": "该任务的 ocrReplace 被所有涉及干员名的日文识别任务复用 このタスクの「ocrReplace」は、オペレーター名に関連するすべての認識タスクで再利用されます", "ocrReplace": [ [ "シルバーアッシュ", @@ -36,12 +36,16 @@ "^チェン$", "陈" ], + [ + "ソーンズ", + "棘刺" + ], [ ".*ーンズ", "棘刺" ], [ - "^スペクタ.*$", + "^スペクタ.*", "幽灵鲨" ], [ diff --git a/resource/global/YoStarKR/resource/tasks.json b/resource/global/YoStarKR/resource/tasks.json index 9dec3cf403..82d77ed9b6 100644 --- a/resource/global/YoStarKR/resource/tasks.json +++ b/resource/global/YoStarKR/resource/tasks.json @@ -15,7 +15,7 @@ ] }, "CharsNameOcrReplace": { - "Doc": "该任务的ocrReplace被所有涉及干员名的日文识别任务复用", + "Doc": "该任务的ocrReplace被所有涉及干员名的韩文识别任务复用 이 작업의 'ocrReplace'는 운영자 이름과 관련된 모든 인식 작업에서 재사용됩니다", "ocrReplace": [ [ "실버애쉬", diff --git a/resource/global/txwy/resource/tasks.json b/resource/global/txwy/resource/tasks.json index 23c9799e74..6250d07f2c 100644 --- a/resource/global/txwy/resource/tasks.json +++ b/resource/global/txwy/resource/tasks.json @@ -93,7 +93,7 @@ ] }, "CharsNameOcrReplace": { - "Doc": "该任务的 ocrReplace 被所有涉及干员名的English Name识别任务复用", + "Doc": "该任务的 ocrReplace 被所有涉及干员名的繁中识别任务复用", "ocrReplace": [ [ "安比爾", From 936f47e169720c344676adf8e84c06c5b56f195f Mon Sep 17 00:00:00 2001 From: MistEO Date: Tue, 21 Feb 2023 17:00:24 +0800 Subject: [PATCH 021/100] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=E8=B5=84?= =?UTF-8?q?=E6=BA=90=202023/2/21?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/stages.json | 2177 +++++++++++++----------------------------- 1 file changed, 688 insertions(+), 1489 deletions(-) diff --git a/resource/stages.json b/resource/stages.json index 0c14bc15c1..f7ee7b85ee 100644 --- a/resource/stages.json +++ b/resource/stages.json @@ -126,9 +126,6 @@ } }, "minClearTime": 63700, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_00-01", "stageType": "MAIN", "zoneId": "main_0" @@ -260,9 +257,6 @@ } }, "minClearTime": 73000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_00-02", "stageType": "MAIN", "zoneId": "main_0" @@ -394,9 +388,6 @@ } }, "minClearTime": 88600, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_00-03", "stageType": "MAIN", "zoneId": "main_0" @@ -528,9 +519,6 @@ } }, "minClearTime": 120600, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_00-04", "stageType": "MAIN", "zoneId": "main_0" @@ -662,9 +650,6 @@ } }, "minClearTime": 95000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_00-05", "stageType": "MAIN", "zoneId": "main_0" @@ -796,9 +781,6 @@ } }, "minClearTime": 101800, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_00-06", "stageType": "MAIN", "zoneId": "main_0" @@ -930,9 +912,6 @@ } }, "minClearTime": 92000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_00-07", "stageType": "MAIN", "zoneId": "main_0" @@ -1064,9 +1043,6 @@ } }, "minClearTime": 102000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_00-08", "stageType": "MAIN", "zoneId": "main_0" @@ -1198,9 +1174,6 @@ } }, "minClearTime": 102000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_00-09", "stageType": "MAIN", "zoneId": "main_0" @@ -1332,9 +1305,6 @@ } }, "minClearTime": 113600, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_00-10", "stageType": "MAIN", "zoneId": "main_0" @@ -1466,9 +1436,6 @@ } }, "minClearTime": 103000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_00-11", "stageType": "MAIN", "zoneId": "main_0" @@ -1592,9 +1559,6 @@ } }, "minClearTime": 137000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_01-01", "stageType": "MAIN", "zoneId": "main_1" @@ -1785,9 +1749,6 @@ } }, "minClearTime": 112000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_01-03", "stageType": "MAIN", "zoneId": "main_1" @@ -1911,9 +1872,6 @@ } }, "minClearTime": 135000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_01-04", "stageType": "MAIN", "zoneId": "main_1" @@ -2045,9 +2003,6 @@ } }, "minClearTime": 165000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_01-05", "stageType": "MAIN", "zoneId": "main_1" @@ -2179,9 +2134,6 @@ } }, "minClearTime": 174000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_01-06", "stageType": "MAIN", "zoneId": "main_1" @@ -2313,9 +2265,6 @@ } }, "minClearTime": 118000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_01-07", "stageType": "MAIN", "zoneId": "main_1" @@ -2447,9 +2396,6 @@ } }, "minClearTime": 130100, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_01-08", "stageType": "MAIN", "zoneId": "main_1" @@ -2581,9 +2527,6 @@ } }, "minClearTime": 120000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_01-09", "stageType": "MAIN", "zoneId": "main_1" @@ -2715,9 +2658,6 @@ } }, "minClearTime": 120000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_01-10", "stageType": "MAIN", "zoneId": "main_1" @@ -2908,9 +2848,6 @@ } }, "minClearTime": 144000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_01-12", "stageType": "MAIN", "zoneId": "main_1" @@ -3042,9 +2979,6 @@ } }, "minClearTime": 184000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_02-01", "stageType": "MAIN", "zoneId": "main_2" @@ -3176,9 +3110,6 @@ } }, "minClearTime": 166700, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_02-02", "stageType": "MAIN", "zoneId": "main_2" @@ -3310,9 +3241,6 @@ } }, "minClearTime": 218700, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_02-03", "stageType": "MAIN", "zoneId": "main_2" @@ -3444,9 +3372,6 @@ } }, "minClearTime": 149000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_02-04", "stageType": "MAIN", "zoneId": "main_2" @@ -3578,9 +3503,6 @@ } }, "minClearTime": 170500, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_02-05", "stageType": "MAIN", "zoneId": "main_2" @@ -3712,9 +3634,6 @@ } }, "minClearTime": 174000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_02-06", "stageType": "MAIN", "zoneId": "main_2" @@ -3838,9 +3757,6 @@ } }, "minClearTime": 176000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_02-07", "stageType": "MAIN", "zoneId": "main_2" @@ -3972,9 +3888,6 @@ } }, "minClearTime": 187000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_02-08", "stageType": "MAIN", "zoneId": "main_2" @@ -4106,9 +4019,6 @@ } }, "minClearTime": 193000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_02-09", "stageType": "MAIN", "zoneId": "main_2" @@ -4240,9 +4150,6 @@ } }, "minClearTime": 171000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_02-10", "stageType": "MAIN", "zoneId": "main_2" @@ -4374,9 +4281,6 @@ } }, "minClearTime": 113000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_02-01", "stageType": "MAIN", "zoneId": "main_2" @@ -4500,9 +4404,6 @@ } }, "minClearTime": 132000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_02-02", "stageType": "MAIN", "zoneId": "main_2" @@ -4634,9 +4535,6 @@ } }, "minClearTime": 130000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_02-03", "stageType": "MAIN", "zoneId": "main_2" @@ -4760,9 +4658,6 @@ } }, "minClearTime": 144000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_02-04", "stageType": "MAIN", "zoneId": "main_2" @@ -4894,9 +4789,6 @@ } }, "minClearTime": 178000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_02-05", "stageType": "MAIN", "zoneId": "main_2" @@ -5028,9 +4920,6 @@ } }, "minClearTime": 142000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_02-06", "stageType": "MAIN", "zoneId": "main_2" @@ -5162,9 +5051,6 @@ } }, "minClearTime": 166000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_02-07", "stageType": "MAIN", "zoneId": "main_2" @@ -5296,9 +5182,6 @@ } }, "minClearTime": 110000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_02-08", "stageType": "MAIN", "zoneId": "main_2" @@ -5430,9 +5313,6 @@ } }, "minClearTime": 142000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_02-09", "stageType": "MAIN", "zoneId": "main_2" @@ -5564,9 +5444,6 @@ } }, "minClearTime": 172000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_02-10", "stageType": "MAIN", "zoneId": "main_2" @@ -5690,9 +5567,6 @@ } }, "minClearTime": 179000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_02-11", "stageType": "MAIN", "zoneId": "main_2" @@ -5816,9 +5690,6 @@ } }, "minClearTime": 135000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_02-12", "stageType": "MAIN", "zoneId": "main_2" @@ -5950,9 +5821,6 @@ } }, "minClearTime": 181000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_03-01", "stageType": "MAIN", "zoneId": "main_3" @@ -6076,9 +5944,6 @@ } }, "minClearTime": 173000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_03-02", "stageType": "MAIN", "zoneId": "main_3" @@ -6202,9 +6067,6 @@ } }, "minClearTime": 172700, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_03-03", "stageType": "MAIN", "zoneId": "main_3" @@ -6328,9 +6190,6 @@ } }, "minClearTime": 216400, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_03-04", "stageType": "MAIN", "zoneId": "main_3" @@ -6454,9 +6313,6 @@ } }, "minClearTime": 165000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_03-05", "stageType": "MAIN", "zoneId": "main_3" @@ -6580,9 +6436,6 @@ } }, "minClearTime": 138000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_03-06", "stageType": "MAIN", "zoneId": "main_3" @@ -6714,9 +6567,6 @@ } }, "minClearTime": 238700, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_03-07", "stageType": "MAIN", "zoneId": "main_3" @@ -6872,9 +6722,6 @@ } }, "minClearTime": 205000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_03-08", "stageType": "MAIN", "zoneId": "main_3" @@ -7006,9 +6853,6 @@ } }, "minClearTime": 130000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_03-1-1", "stageType": "SUB", "zoneId": "main_3" @@ -7132,9 +6976,6 @@ } }, "minClearTime": 125000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_03-1-2", "stageType": "SUB", "zoneId": "main_3" @@ -7266,9 +7107,6 @@ } }, "minClearTime": 208000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_03-2-1", "stageType": "SUB", "zoneId": "main_3" @@ -7392,9 +7230,6 @@ } }, "minClearTime": 136000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_03-2-2", "stageType": "SUB", "zoneId": "main_3" @@ -7518,9 +7353,6 @@ } }, "minClearTime": 147200, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_03-2-3", "stageType": "SUB", "zoneId": "main_3" @@ -7660,9 +7492,6 @@ } }, "minClearTime": 201000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_04-01", "stageType": "MAIN", "zoneId": "main_4" @@ -7834,9 +7663,6 @@ } }, "minClearTime": 140000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_04-02", "stageType": "MAIN", "zoneId": "main_4" @@ -7984,9 +7810,6 @@ } }, "minClearTime": 217500, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_04-03", "stageType": "MAIN", "zoneId": "main_4" @@ -8142,9 +7965,6 @@ } }, "minClearTime": 174000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_04-04", "stageType": "MAIN", "zoneId": "main_4" @@ -8300,9 +8120,6 @@ } }, "minClearTime": 173000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_04-05", "stageType": "MAIN", "zoneId": "main_4" @@ -8458,9 +8275,6 @@ } }, "minClearTime": 198000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_04-06", "stageType": "MAIN", "zoneId": "main_4" @@ -8616,9 +8430,6 @@ } }, "minClearTime": 200000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_04-07", "stageType": "MAIN", "zoneId": "main_4" @@ -8782,9 +8593,6 @@ } }, "minClearTime": 166000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_04-08", "stageType": "MAIN", "zoneId": "main_4" @@ -8948,9 +8756,6 @@ } }, "minClearTime": 216500, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_04-09", "stageType": "MAIN", "zoneId": "main_4" @@ -9098,9 +8903,6 @@ } }, "minClearTime": 240500, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_04-10", "stageType": "MAIN", "zoneId": "main_4" @@ -9272,9 +9074,6 @@ } }, "minClearTime": 179000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_04-1-1", "stageType": "SUB", "zoneId": "main_4" @@ -9414,9 +9213,6 @@ } }, "minClearTime": 214000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_04-1-2", "stageType": "SUB", "zoneId": "main_4" @@ -9572,9 +9368,6 @@ } }, "minClearTime": 160000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_04-1-3", "stageType": "SUB", "zoneId": "main_4" @@ -9730,9 +9523,6 @@ } }, "minClearTime": 181000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_04-2-1", "stageType": "SUB", "zoneId": "main_4" @@ -9872,9 +9662,6 @@ } }, "minClearTime": 150000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_04-2-2", "stageType": "SUB", "zoneId": "main_4" @@ -10030,9 +9817,6 @@ } }, "minClearTime": 120000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_04-2-3", "stageType": "SUB", "zoneId": "main_4" @@ -10188,9 +9972,6 @@ } }, "minClearTime": 199000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_04-3-1", "stageType": "SUB", "zoneId": "main_4" @@ -10330,9 +10111,6 @@ } }, "minClearTime": 195000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_04-3-2", "stageType": "SUB", "zoneId": "main_4" @@ -10496,9 +10274,6 @@ } }, "minClearTime": 247000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_04-3-3", "stageType": "SUB", "zoneId": "main_4" @@ -10782,9 +10557,6 @@ } }, "minClearTime": 99000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_armor_1", "stageType": "DAILY", "zoneId": "weekly_8" @@ -10852,9 +10624,6 @@ } }, "minClearTime": 118000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_armor_2", "stageType": "DAILY", "zoneId": "weekly_8" @@ -10930,9 +10699,6 @@ } }, "minClearTime": 136000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_armor_3", "stageType": "DAILY", "zoneId": "weekly_8" @@ -11008,9 +10774,6 @@ } }, "minClearTime": 121000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_armor_4", "stageType": "DAILY", "zoneId": "weekly_8" @@ -11086,9 +10849,6 @@ } }, "minClearTime": 204000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_armor_5", "stageType": "DAILY", "zoneId": "weekly_8" @@ -11156,9 +10916,6 @@ } }, "minClearTime": 97000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_fly_1", "stageType": "DAILY", "zoneId": "weekly_6" @@ -11226,9 +10983,6 @@ } }, "minClearTime": 101000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_fly_2", "stageType": "DAILY", "zoneId": "weekly_6" @@ -11304,9 +11058,6 @@ } }, "minClearTime": 152000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_fly_3", "stageType": "DAILY", "zoneId": "weekly_6" @@ -11390,9 +11141,6 @@ } }, "minClearTime": 191000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_fly_4", "stageType": "DAILY", "zoneId": "weekly_6" @@ -11476,9 +11224,6 @@ } }, "minClearTime": 173000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_fly_5", "stageType": "DAILY", "zoneId": "weekly_6" @@ -11630,9 +11375,6 @@ } }, "minClearTime": 166000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_05-01", "stageType": "MAIN", "zoneId": "main_5" @@ -11792,9 +11534,6 @@ } }, "minClearTime": 187000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_05-02", "stageType": "MAIN", "zoneId": "main_5" @@ -11874,9 +11613,6 @@ } }, "minClearTime": 218000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_05-03", "stageType": "MAIN", "zoneId": "main_5" @@ -12028,9 +11764,6 @@ } }, "minClearTime": 176000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_05-04", "stageType": "MAIN", "zoneId": "main_5" @@ -12190,9 +11923,6 @@ } }, "minClearTime": 193000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_05-05", "stageType": "MAIN", "zoneId": "main_5" @@ -12360,9 +12090,6 @@ } }, "minClearTime": 314000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_05-06", "stageType": "MAIN", "zoneId": "main_5" @@ -12442,9 +12169,6 @@ } }, "minClearTime": 182800, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_05-07", "stageType": "MAIN", "zoneId": "main_5" @@ -12604,9 +12328,6 @@ } }, "minClearTime": 188000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_05-08", "stageType": "MAIN", "zoneId": "main_5" @@ -12758,9 +12479,6 @@ } }, "minClearTime": 194000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_05-09", "stageType": "MAIN", "zoneId": "main_5" @@ -12843,9 +12561,6 @@ } }, "minClearTime": 337000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_05-10", "stageType": "MAIN", "zoneId": "main_5" @@ -12925,9 +12640,6 @@ } }, "minClearTime": 193000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_05-1-1", "stageType": "SUB", "zoneId": "main_5" @@ -13087,9 +12799,6 @@ } }, "minClearTime": 176000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_05-1-2", "stageType": "SUB", "zoneId": "main_5" @@ -13161,9 +12870,6 @@ } }, "minClearTime": 180000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_05-2-1", "stageType": "SUB", "zoneId": "main_5" @@ -13243,9 +12949,6 @@ } }, "minClearTime": 184000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_05-2-2", "stageType": "SUB", "zoneId": "main_5" @@ -13317,9 +13020,6 @@ } }, "minClearTime": 208000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_05-3-1", "stageType": "SUB", "zoneId": "main_5" @@ -13487,9 +13187,6 @@ } }, "minClearTime": 196000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_05-3-2", "stageType": "SUB", "zoneId": "main_5" @@ -14569,9 +14266,6 @@ } }, "minClearTime": 183000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_06-01", "stageType": "MAIN", "zoneId": "main_6" @@ -14731,9 +14425,6 @@ } }, "minClearTime": 206000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_06-02", "stageType": "MAIN", "zoneId": "main_6" @@ -14885,9 +14576,6 @@ } }, "minClearTime": 172000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_06-03", "stageType": "MAIN", "zoneId": "main_6" @@ -15047,9 +14735,6 @@ } }, "minClearTime": 155000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_06-04", "stageType": "MAIN", "zoneId": "main_6" @@ -15129,9 +14814,6 @@ } }, "minClearTime": 241000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_06-05", "stageType": "MAIN", "zoneId": "main_6" @@ -15362,9 +15044,6 @@ } }, "minClearTime": 140000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_06-07", "stageType": "MAIN", "zoneId": "main_6" @@ -15444,9 +15123,6 @@ } }, "minClearTime": 158000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_06-08", "stageType": "MAIN", "zoneId": "main_6" @@ -15598,9 +15274,6 @@ } }, "minClearTime": 174200, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_06-09", "stageType": "MAIN", "zoneId": "main_6" @@ -15680,9 +15353,6 @@ } }, "minClearTime": 236000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_06-10", "stageType": "MAIN", "zoneId": "main_6" @@ -15858,9 +15528,6 @@ } }, "minClearTime": 171000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_06-11", "stageType": "MAIN", "zoneId": "main_6" @@ -16012,9 +15679,6 @@ } }, "minClearTime": 194000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_06-12", "stageType": "MAIN", "zoneId": "main_6" @@ -16174,9 +15838,6 @@ } }, "minClearTime": 184000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_06-13", "stageType": "MAIN", "zoneId": "main_6" @@ -16256,9 +15917,6 @@ } }, "minClearTime": 312000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_06-14", "stageType": "MAIN", "zoneId": "main_6" @@ -16445,9 +16103,6 @@ } }, "minClearTime": 122000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_03-3-1", "stageType": "SUB", "zoneId": "main_3" @@ -16595,9 +16250,6 @@ } }, "minClearTime": 129000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_04-4-1", "stageType": "SUB", "zoneId": "main_4" @@ -16757,9 +16409,6 @@ } }, "minClearTime": 148000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_05-4-1", "stageType": "SUB", "zoneId": "main_5" @@ -16919,9 +16568,6 @@ } }, "minClearTime": 148000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_05-4-2", "stageType": "SUB", "zoneId": "main_5" @@ -17073,9 +16719,6 @@ } }, "minClearTime": 172000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_06-1-1", "stageType": "SUB", "zoneId": "main_6" @@ -17147,9 +16790,6 @@ } }, "minClearTime": 203000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_06-1-2", "stageType": "SUB", "zoneId": "main_6" @@ -17229,9 +16869,6 @@ } }, "minClearTime": 195000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_06-2-1", "stageType": "SUB", "zoneId": "main_6" @@ -17375,9 +17012,6 @@ } }, "minClearTime": 180000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_06-2-2", "stageType": "SUB", "zoneId": "main_6" @@ -18231,9 +17865,6 @@ } }, "minClearTime": 125000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_melee_1", "stageType": "DAILY", "zoneId": "weekly_9" @@ -18293,9 +17924,6 @@ } }, "minClearTime": 144000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_melee_2", "stageType": "DAILY", "zoneId": "weekly_9" @@ -18355,9 +17983,6 @@ } }, "minClearTime": 141000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_melee_3", "stageType": "DAILY", "zoneId": "weekly_9" @@ -18417,9 +18042,6 @@ } }, "minClearTime": 172800, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_melee_4", "stageType": "DAILY", "zoneId": "weekly_9" @@ -18479,9 +18101,6 @@ } }, "minClearTime": 196000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_melee_5", "stageType": "DAILY", "zoneId": "weekly_9" @@ -18542,8 +18161,7 @@ }, "minClearTime": 83000, "recognitionOnly": [ - "4006", - "act14mini_token_fu" + "4006" ], "stageId": "wk_toxic_1", "stageType": "DAILY", @@ -18605,8 +18223,7 @@ }, "minClearTime": 139000, "recognitionOnly": [ - "4006", - "act14mini_token_fu" + "4006" ], "stageId": "wk_toxic_2", "stageType": "DAILY", @@ -18668,8 +18285,7 @@ }, "minClearTime": 160000, "recognitionOnly": [ - "4006", - "act14mini_token_fu" + "4006" ], "stageId": "wk_toxic_3", "stageType": "DAILY", @@ -18731,8 +18347,7 @@ }, "minClearTime": 123000, "recognitionOnly": [ - "4006", - "act14mini_token_fu" + "4006" ], "stageId": "wk_toxic_4", "stageType": "DAILY", @@ -18794,8 +18409,7 @@ }, "minClearTime": 208000, "recognitionOnly": [ - "4006", - "act14mini_token_fu" + "4006" ], "stageId": "wk_toxic_5", "stageType": "DAILY", @@ -19615,9 +19229,6 @@ } }, "minClearTime": 175000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_07-01", "stageType": "MAIN", "zoneId": "main_7" @@ -19689,9 +19300,6 @@ } }, "minClearTime": 233000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_07-02", "stageType": "MAIN", "zoneId": "main_7" @@ -19859,9 +19467,6 @@ } }, "minClearTime": 184000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_07-03", "stageType": "MAIN", "zoneId": "main_7" @@ -20021,9 +19626,6 @@ } }, "minClearTime": 213000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_07-04", "stageType": "MAIN", "zoneId": "main_7" @@ -20103,9 +19705,6 @@ } }, "minClearTime": 209000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_07-05", "stageType": "MAIN", "zoneId": "main_7" @@ -20281,9 +19880,6 @@ } }, "minClearTime": 182000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_07-06", "stageType": "MAIN", "zoneId": "main_7" @@ -20451,9 +20047,6 @@ } }, "minClearTime": 207000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_07-07", "stageType": "MAIN", "zoneId": "main_7" @@ -20605,9 +20198,6 @@ } }, "minClearTime": 170000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_07-08", "stageType": "MAIN", "zoneId": "main_7" @@ -20687,9 +20277,6 @@ } }, "minClearTime": 199000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_07-09", "stageType": "MAIN", "zoneId": "main_7" @@ -20769,9 +20356,6 @@ } }, "minClearTime": 226000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_07-10", "stageType": "MAIN", "zoneId": "main_7" @@ -20923,9 +20507,6 @@ } }, "minClearTime": 183000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_07-11", "stageType": "MAIN", "zoneId": "main_7" @@ -21077,9 +20658,6 @@ } }, "minClearTime": 196000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_07-12", "stageType": "MAIN", "zoneId": "main_7" @@ -21247,9 +20825,6 @@ } }, "minClearTime": 200000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_07-13", "stageType": "MAIN", "zoneId": "main_7" @@ -21329,9 +20904,6 @@ } }, "minClearTime": 195000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_07-14", "stageType": "MAIN", "zoneId": "main_7" @@ -21507,9 +21079,6 @@ } }, "minClearTime": 219000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_07-15", "stageType": "MAIN", "zoneId": "main_7" @@ -21589,9 +21158,6 @@ } }, "minClearTime": 227000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_07-16", "stageType": "MAIN", "zoneId": "main_7" @@ -21735,9 +21301,6 @@ } }, "minClearTime": 141000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_07-1-1", "stageType": "MAIN", "zoneId": "main_7" @@ -21809,9 +21372,6 @@ } }, "minClearTime": 188000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_07-1-2", "stageType": "MAIN", "zoneId": "main_7" @@ -22090,9 +21650,6 @@ } }, "minClearTime": 167800, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "pro_a_1", "stageType": "DAILY", "zoneId": "weekly_1" @@ -22168,9 +21725,6 @@ } }, "minClearTime": 214500, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "pro_a_2", "stageType": "DAILY", "zoneId": "weekly_1" @@ -22246,9 +21800,6 @@ } }, "minClearTime": 151000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "pro_b_1", "stageType": "DAILY", "zoneId": "weekly_1" @@ -22324,9 +21875,6 @@ } }, "minClearTime": 213000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "pro_b_2", "stageType": "DAILY", "zoneId": "weekly_1" @@ -22402,9 +21950,6 @@ } }, "minClearTime": 145000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "pro_c_1", "stageType": "DAILY", "zoneId": "weekly_1" @@ -22480,9 +22025,6 @@ } }, "minClearTime": 179000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "pro_c_2", "stageType": "DAILY", "zoneId": "weekly_1" @@ -22558,9 +22100,6 @@ } }, "minClearTime": 173800, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "pro_d_1", "stageType": "DAILY", "zoneId": "weekly_1" @@ -22636,9 +22175,6 @@ } }, "minClearTime": 205000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "pro_d_2", "stageType": "DAILY", "zoneId": "weekly_1" @@ -22714,9 +22250,6 @@ } }, "minClearTime": 112000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_kc_1", "stageType": "DAILY", "zoneId": "weekly_7" @@ -22792,9 +22325,6 @@ } }, "minClearTime": 111000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_kc_2", "stageType": "DAILY", "zoneId": "weekly_7" @@ -22878,9 +22408,6 @@ } }, "minClearTime": 140000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_kc_3", "stageType": "DAILY", "zoneId": "weekly_7" @@ -22972,9 +22499,6 @@ } }, "minClearTime": 130000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_kc_4", "stageType": "DAILY", "zoneId": "weekly_7" @@ -23058,9 +22582,6 @@ } }, "minClearTime": 174500, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_kc_5", "stageType": "DAILY", "zoneId": "weekly_7" @@ -25166,9 +24687,6 @@ } }, "minClearTime": 147000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_05-4-3", "stageType": "SUB", "zoneId": "main_5" @@ -25248,9 +24766,6 @@ } }, "minClearTime": 147000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_03-3-2", "stageType": "SUB", "zoneId": "main_3" @@ -25394,9 +24909,6 @@ } }, "minClearTime": 187000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_08-01", "stageType": "MAIN", "zoneId": "main_8" @@ -25572,9 +25084,6 @@ } }, "minClearTime": 171000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_08-02", "stageType": "MAIN", "zoneId": "main_8" @@ -25734,9 +25243,6 @@ } }, "minClearTime": 169000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_08-03", "stageType": "MAIN", "zoneId": "main_8" @@ -25808,9 +25314,6 @@ } }, "minClearTime": 163000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_08-04", "stageType": "MAIN", "zoneId": "main_8" @@ -25890,9 +25393,6 @@ } }, "minClearTime": 219000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_08-05", "stageType": "MAIN", "zoneId": "main_8" @@ -26044,9 +25544,6 @@ } }, "minClearTime": 193000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_08-06", "stageType": "MAIN", "zoneId": "main_8" @@ -26222,9 +25719,6 @@ } }, "minClearTime": 211000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_08-07", "stageType": "MAIN", "zoneId": "main_8" @@ -26304,9 +25798,6 @@ } }, "minClearTime": 280000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_08-08", "stageType": "MAIN", "zoneId": "main_8" @@ -26386,9 +25877,6 @@ } }, "minClearTime": 220000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_08-09", "stageType": "MAIN", "zoneId": "main_8" @@ -26540,9 +26028,6 @@ } }, "minClearTime": 207000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_08-10", "stageType": "MAIN", "zoneId": "main_8" @@ -26702,9 +26187,6 @@ } }, "minClearTime": 175000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_08-11", "stageType": "MAIN", "zoneId": "main_8" @@ -26784,9 +26266,6 @@ } }, "minClearTime": 157000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_08-12", "stageType": "MAIN", "zoneId": "main_8" @@ -26938,9 +26417,6 @@ } }, "minClearTime": 274000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_08-13", "stageType": "MAIN", "zoneId": "main_8" @@ -27092,9 +26568,6 @@ } }, "minClearTime": 257000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_08-14", "stageType": "MAIN", "zoneId": "main_8" @@ -27325,9 +26798,6 @@ } }, "minClearTime": 187000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_08-16", "stageType": "MAIN", "zoneId": "main_8" @@ -27495,9 +26965,6 @@ } }, "minClearTime": 295000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_08-17", "stageType": "MAIN", "zoneId": "main_8" @@ -39487,9 +38954,6 @@ } }, "minClearTime": null, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_09-01", "stageType": "MAIN", "zoneId": "main_9" @@ -39561,9 +39025,6 @@ } }, "minClearTime": 205000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_09-02", "stageType": "MAIN", "zoneId": "main_9" @@ -39723,9 +39184,6 @@ } }, "minClearTime": 219000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_09-03", "stageType": "MAIN", "zoneId": "main_9" @@ -39901,9 +39359,6 @@ } }, "minClearTime": 176000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_09-04", "stageType": "MAIN", "zoneId": "main_9" @@ -40063,9 +39518,6 @@ } }, "minClearTime": 231000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_09-05", "stageType": "MAIN", "zoneId": "main_9" @@ -40225,9 +39677,6 @@ } }, "minClearTime": 176000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_09-06", "stageType": "MAIN", "zoneId": "main_9" @@ -40387,9 +39836,6 @@ } }, "minClearTime": 204000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_09-07", "stageType": "MAIN", "zoneId": "main_9" @@ -40557,9 +40003,6 @@ } }, "minClearTime": 204000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_09-08", "stageType": "MAIN", "zoneId": "main_9" @@ -40711,9 +40154,6 @@ } }, "minClearTime": 183000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_09-09", "stageType": "MAIN", "zoneId": "main_9" @@ -40873,9 +40313,6 @@ } }, "minClearTime": 193000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_09-10", "stageType": "MAIN", "zoneId": "main_9" @@ -41035,9 +40472,6 @@ } }, "minClearTime": 184000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_09-11", "stageType": "MAIN", "zoneId": "main_9" @@ -41181,9 +40615,6 @@ } }, "minClearTime": 208000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_09-12", "stageType": "MAIN", "zoneId": "main_9" @@ -41343,9 +40774,6 @@ } }, "minClearTime": 180000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_09-13", "stageType": "MAIN", "zoneId": "main_9" @@ -41425,9 +40853,6 @@ } }, "minClearTime": 218000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_09-14", "stageType": "MAIN", "zoneId": "main_9" @@ -41587,9 +41012,6 @@ } }, "minClearTime": 182000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_09-15", "stageType": "MAIN", "zoneId": "main_9" @@ -41765,9 +41187,6 @@ } }, "minClearTime": 225000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_09-16", "stageType": "MAIN", "zoneId": "main_9" @@ -41927,9 +41346,6 @@ } }, "minClearTime": 276000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_09-17", "stageType": "MAIN", "zoneId": "main_9" @@ -42105,9 +41521,6 @@ } }, "minClearTime": 204000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "sub_09-1-1", "stageType": "SUB", "zoneId": "main_9" @@ -49372,9 +48785,6 @@ } }, "minClearTime": 170000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_10-01", "stageType": "MAIN", "zoneId": "main_10_tough" @@ -49518,9 +48928,6 @@ } }, "minClearTime": 170000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_10-01", "stageType": "MAIN", "zoneId": "main_10" @@ -49696,9 +49103,6 @@ } }, "minClearTime": 158000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_10-02", "stageType": "MAIN", "zoneId": "main_10_tough" @@ -49874,9 +49278,6 @@ } }, "minClearTime": 158000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_10-02", "stageType": "MAIN", "zoneId": "main_10" @@ -49956,9 +49357,6 @@ } }, "minClearTime": 189000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_10-03", "stageType": "MAIN", "zoneId": "main_10_tough" @@ -50038,9 +49436,6 @@ } }, "minClearTime": 189000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_10-03", "stageType": "MAIN", "zoneId": "main_10" @@ -50208,9 +49603,6 @@ } }, "minClearTime": 180000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_10-04", "stageType": "MAIN", "zoneId": "main_10" @@ -50378,9 +49770,6 @@ } }, "minClearTime": 180000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_10-04", "stageType": "MAIN", "zoneId": "main_10_tough" @@ -50524,9 +49913,6 @@ } }, "minClearTime": 182000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_10-05", "stageType": "MAIN", "zoneId": "main_10_tough" @@ -50670,9 +50056,6 @@ } }, "minClearTime": 182000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_10-05", "stageType": "MAIN", "zoneId": "main_10" @@ -50824,9 +50207,6 @@ } }, "minClearTime": 205000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_10-06", "stageType": "MAIN", "zoneId": "main_10" @@ -50978,9 +50358,6 @@ } }, "minClearTime": 205000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_10-06", "stageType": "MAIN", "zoneId": "main_10_tough" @@ -51140,9 +50517,6 @@ } }, "minClearTime": 158000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_10-07", "stageType": "MAIN", "zoneId": "main_10_tough" @@ -51302,9 +50676,6 @@ } }, "minClearTime": 158000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_10-07", "stageType": "MAIN", "zoneId": "main_10" @@ -51464,9 +50835,6 @@ } }, "minClearTime": 180000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_10-08", "stageType": "MAIN", "zoneId": "main_10" @@ -51626,9 +50994,6 @@ } }, "minClearTime": 180000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_10-08", "stageType": "MAIN", "zoneId": "main_10_tough" @@ -51780,9 +51145,6 @@ } }, "minClearTime": 188000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_10-09", "stageType": "MAIN", "zoneId": "main_10_tough" @@ -51934,9 +51296,6 @@ } }, "minClearTime": 188000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_10-09", "stageType": "MAIN", "zoneId": "main_10" @@ -52112,9 +51471,6 @@ } }, "minClearTime": 212000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_10-10", "stageType": "MAIN", "zoneId": "main_10_tough" @@ -52290,9 +51646,6 @@ } }, "minClearTime": 212000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_10-10", "stageType": "MAIN", "zoneId": "main_10" @@ -52460,9 +51813,6 @@ } }, "minClearTime": 191000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_10-11", "stageType": "MAIN", "zoneId": "main_10" @@ -52630,9 +51980,6 @@ } }, "minClearTime": 191000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_10-11", "stageType": "MAIN", "zoneId": "main_10_tough" @@ -52800,9 +52147,6 @@ } }, "minClearTime": 157000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_10-12", "stageType": "MAIN", "zoneId": "main_10" @@ -52970,9 +52314,6 @@ } }, "minClearTime": 157000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_10-12", "stageType": "MAIN", "zoneId": "main_10_tough" @@ -53140,9 +52481,6 @@ } }, "minClearTime": 177000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_10-13", "stageType": "MAIN", "zoneId": "main_10" @@ -53310,9 +52648,6 @@ } }, "minClearTime": 177000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_10-13", "stageType": "MAIN", "zoneId": "main_10_tough" @@ -53392,9 +52727,6 @@ } }, "minClearTime": 199000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_10-14", "stageType": "MAIN", "zoneId": "main_10_tough" @@ -53474,9 +52806,6 @@ } }, "minClearTime": 199000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_10-14", "stageType": "MAIN", "zoneId": "main_10" @@ -53620,9 +52949,6 @@ } }, "minClearTime": 283000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_10-15", "stageType": "MAIN", "zoneId": "main_10" @@ -53766,9 +53092,6 @@ } }, "minClearTime": 283000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_10-15", "stageType": "MAIN", "zoneId": "main_10_tough" @@ -54416,9 +53739,6 @@ } }, "minClearTime": 172000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_melee_6", "stageType": "DAILY", "zoneId": "weekly_9" @@ -54494,9 +53814,6 @@ } }, "minClearTime": 183000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "wk_kc_6", "stageType": "DAILY", "zoneId": "weekly_7" @@ -56884,13 +56201,19 @@ "openTime": 1658217600000 }, "JP": { - "exist": false + "closeTime": 1677178800000, + "exist": true, + "openTime": 1676617200000 }, "KR": { - "exist": false + "closeTime": 1677178800000, + "exist": true, + "openTime": 1676617200000 }, "US": { - "exist": false + "closeTime": 1677236400000, + "exist": true, + "openTime": 1676653200000 } }, "minClearTime": 170000, @@ -56914,13 +56237,19 @@ "openTime": 1658217600000 }, "JP": { - "exist": false + "closeTime": 1677178800000, + "exist": true, + "openTime": 1676617200000 }, "KR": { - "exist": false + "closeTime": 1677178800000, + "exist": true, + "openTime": 1676617200000 }, "US": { - "exist": false + "closeTime": 1677236400000, + "exist": true, + "openTime": 1676653200000 } }, "minClearTime": 226000, @@ -56944,13 +56273,19 @@ "openTime": 1658217600000 }, "JP": { - "exist": false + "closeTime": 1677178800000, + "exist": true, + "openTime": 1676617200000 }, "KR": { - "exist": false + "closeTime": 1677178800000, + "exist": true, + "openTime": 1676617200000 }, "US": { - "exist": false + "closeTime": 1677236400000, + "exist": true, + "openTime": 1676653200000 } }, "minClearTime": 154000, @@ -56974,13 +56309,19 @@ "openTime": 1658217600000 }, "JP": { - "exist": false + "closeTime": 1677178800000, + "exist": true, + "openTime": 1676617200000 }, "KR": { - "exist": false + "closeTime": 1677178800000, + "exist": true, + "openTime": 1676617200000 }, "US": { - "exist": false + "closeTime": 1677236400000, + "exist": true, + "openTime": 1676653200000 } }, "minClearTime": 178000, @@ -57004,13 +56345,19 @@ "openTime": 1658217600000 }, "JP": { - "exist": false + "closeTime": 1677178800000, + "exist": true, + "openTime": 1676617200000 }, "KR": { - "exist": false + "closeTime": 1677178800000, + "exist": true, + "openTime": 1676617200000 }, "US": { - "exist": false + "closeTime": 1677236400000, + "exist": true, + "openTime": 1676653200000 } }, "minClearTime": 183000, @@ -57034,13 +56381,19 @@ "openTime": 1658217600000 }, "JP": { - "exist": false + "closeTime": 1677178800000, + "exist": true, + "openTime": 1676617200000 }, "KR": { - "exist": false + "closeTime": 1677178800000, + "exist": true, + "openTime": 1676617200000 }, "US": { - "exist": false + "closeTime": 1677236400000, + "exist": true, + "openTime": 1676653200000 } }, "minClearTime": 187000, @@ -57064,13 +56417,19 @@ "openTime": 1658217600000 }, "JP": { - "exist": false + "closeTime": 1677178800000, + "exist": true, + "openTime": 1676617200000 }, "KR": { - "exist": false + "closeTime": 1677178800000, + "exist": true, + "openTime": 1676617200000 }, "US": { - "exist": false + "closeTime": 1677236400000, + "exist": true, + "openTime": 1676653200000 } }, "minClearTime": 226000, @@ -57094,13 +56453,19 @@ "openTime": 1658217600000 }, "JP": { - "exist": false + "closeTime": 1677178800000, + "exist": true, + "openTime": 1676617200000 }, "KR": { - "exist": false + "closeTime": 1677178800000, + "exist": true, + "openTime": 1676617200000 }, "US": { - "exist": false + "closeTime": 1677236400000, + "exist": true, + "openTime": 1676653200000 } }, "minClearTime": 293000, @@ -60284,9 +59649,6 @@ } }, "minClearTime": 106000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_11-01", "stageType": "MAIN", "zoneId": "main_11" @@ -60427,9 +59789,6 @@ } }, "minClearTime": 106000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_11-01", "stageType": "MAIN", "zoneId": "main_11_tough" @@ -60506,9 +59865,6 @@ } }, "minClearTime": 190000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_11-02", "stageType": "MAIN", "zoneId": "main_11" @@ -60585,9 +59941,6 @@ } }, "minClearTime": 190000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_11-02", "stageType": "MAIN", "zoneId": "main_11_tough" @@ -60760,9 +60113,6 @@ } }, "minClearTime": 134000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_11-03", "stageType": "MAIN", "zoneId": "main_11_tough" @@ -60935,9 +60285,6 @@ } }, "minClearTime": 134000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_11-03", "stageType": "MAIN", "zoneId": "main_11" @@ -61102,9 +60449,6 @@ } }, "minClearTime": 177000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_11-04", "stageType": "MAIN", "zoneId": "main_11" @@ -61269,9 +60613,6 @@ } }, "minClearTime": 177000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_11-04", "stageType": "MAIN", "zoneId": "main_11_tough" @@ -61348,9 +60689,6 @@ } }, "minClearTime": 207000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_11-05", "stageType": "MAIN", "zoneId": "main_11_tough" @@ -61427,9 +60765,6 @@ } }, "minClearTime": 207000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_11-05", "stageType": "MAIN", "zoneId": "main_11" @@ -61570,9 +60905,6 @@ } }, "minClearTime": 201000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_11-06", "stageType": "MAIN", "zoneId": "main_11_tough" @@ -61713,9 +61045,6 @@ } }, "minClearTime": 201000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_11-06", "stageType": "MAIN", "zoneId": "main_11" @@ -61888,9 +61217,6 @@ } }, "minClearTime": 150000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_11-07", "stageType": "MAIN", "zoneId": "main_11" @@ -62063,9 +61389,6 @@ } }, "minClearTime": 150000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_11-07", "stageType": "MAIN", "zoneId": "main_11_tough" @@ -62222,9 +61545,6 @@ } }, "minClearTime": 160000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_11-08", "stageType": "MAIN", "zoneId": "main_11" @@ -62381,9 +61701,6 @@ } }, "minClearTime": 160000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_11-08", "stageType": "MAIN", "zoneId": "main_11_tough" @@ -62548,9 +61865,6 @@ } }, "minClearTime": 183000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_11-09", "stageType": "MAIN", "zoneId": "main_11" @@ -62715,9 +62029,6 @@ } }, "minClearTime": 183000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_11-09", "stageType": "MAIN", "zoneId": "main_11_tough" @@ -62882,9 +62193,6 @@ } }, "minClearTime": 211000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_11-10", "stageType": "MAIN", "zoneId": "main_11" @@ -63049,9 +62357,6 @@ } }, "minClearTime": 211000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_11-10", "stageType": "MAIN", "zoneId": "main_11_tough" @@ -63200,9 +62505,6 @@ } }, "minClearTime": 196500, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_11-11", "stageType": "MAIN", "zoneId": "main_11_tough" @@ -63351,9 +62653,6 @@ } }, "minClearTime": 196500, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_11-11", "stageType": "MAIN", "zoneId": "main_11" @@ -63526,9 +62825,6 @@ } }, "minClearTime": 165000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_11-12", "stageType": "MAIN", "zoneId": "main_11" @@ -63701,9 +62997,6 @@ } }, "minClearTime": 165000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_11-12", "stageType": "MAIN", "zoneId": "main_11_tough" @@ -63852,9 +63145,6 @@ } }, "minClearTime": 203000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_11-13", "stageType": "MAIN", "zoneId": "main_11_tough" @@ -64003,9 +63293,6 @@ } }, "minClearTime": 203000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_11-13", "stageType": "MAIN", "zoneId": "main_11" @@ -64170,9 +63457,6 @@ } }, "minClearTime": 186000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_11-14", "stageType": "MAIN", "zoneId": "main_11" @@ -64337,9 +63621,6 @@ } }, "minClearTime": 186000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_11-14", "stageType": "MAIN", "zoneId": "main_11_tough" @@ -64392,9 +63673,6 @@ } }, "minClearTime": 167000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_11-15", "stageType": "MAIN", "zoneId": "main_11" @@ -64543,9 +63821,6 @@ } }, "minClearTime": 219500, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_11-16", "stageType": "MAIN", "zoneId": "main_11" @@ -64694,9 +63969,6 @@ } }, "minClearTime": 219500, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_11-16", "stageType": "MAIN", "zoneId": "main_11_tough" @@ -64749,9 +64021,6 @@ } }, "minClearTime": 111500, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_11-17", "stageType": "MAIN", "zoneId": "main_11" @@ -64924,9 +64193,6 @@ } }, "minClearTime": 188000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "tough_11-18", "stageType": "MAIN", "zoneId": "main_11_tough" @@ -65099,9 +64365,6 @@ } }, "minClearTime": 188000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "main_11-18", "stageType": "MAIN", "zoneId": "main_11" @@ -70546,85 +69809,6 @@ "ko": "DC-1", "zh": "DC-1" }, - "dropInfos": [ - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "NORMAL_DROP", - "itemId": "30011" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "NORMAL_DROP", - "itemId": "30061" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "NORMAL_DROP", - "itemId": "30031" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "NORMAL_DROP", - "itemId": "30021" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "NORMAL_DROP", - "itemId": "30041" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "NORMAL_DROP", - "itemId": "30051" - }, - { - "bounds": { - "lower": 0, - "upper": 1 - }, - "dropType": "FURNITURE", - "itemId": "furni" - }, - { - "bounds": { - "lower": 0, - "upper": 6 - }, - "dropType": "NORMAL_DROP" - }, - { - "bounds": { - "lower": 0, - "upper": 0 - }, - "dropType": "SPECIAL_DROP" - }, - { - "bounds": { - "lower": 0, - "upper": 0 - }, - "dropType": "EXTRA_DROP" - } - ], "existence": { "CN": { "closeTime": 1676923200000, @@ -70642,9 +69826,6 @@ } }, "minClearTime": 180000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "act14mini_01", "stageType": "ACTIVITY", "zoneId": "act14mini_zone1" @@ -70658,85 +69839,6 @@ "ko": "DC-2", "zh": "DC-2" }, - "dropInfos": [ - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "NORMAL_DROP", - "itemId": "30011" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "NORMAL_DROP", - "itemId": "30061" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "NORMAL_DROP", - "itemId": "30031" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "NORMAL_DROP", - "itemId": "30021" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "NORMAL_DROP", - "itemId": "30041" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "NORMAL_DROP", - "itemId": "30051" - }, - { - "bounds": { - "lower": 0, - "upper": 1 - }, - "dropType": "FURNITURE", - "itemId": "furni" - }, - { - "bounds": { - "lower": 0, - "upper": 6 - }, - "dropType": "NORMAL_DROP" - }, - { - "bounds": { - "lower": 0, - "upper": 0 - }, - "dropType": "SPECIAL_DROP" - }, - { - "bounds": { - "lower": 0, - "upper": 0 - }, - "dropType": "EXTRA_DROP" - } - ], "existence": { "CN": { "closeTime": 1676923200000, @@ -70754,9 +69856,6 @@ } }, "minClearTime": 139500, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "act14mini_02", "stageType": "ACTIVITY", "zoneId": "act14mini_zone1" @@ -70770,85 +69869,6 @@ "ko": "DC-3", "zh": "DC-3" }, - "dropInfos": [ - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "NORMAL_DROP", - "itemId": "30011" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "NORMAL_DROP", - "itemId": "30061" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "NORMAL_DROP", - "itemId": "30031" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "NORMAL_DROP", - "itemId": "30021" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "NORMAL_DROP", - "itemId": "30041" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "NORMAL_DROP", - "itemId": "30051" - }, - { - "bounds": { - "lower": 0, - "upper": 1 - }, - "dropType": "FURNITURE", - "itemId": "furni" - }, - { - "bounds": { - "lower": 0, - "upper": 6 - }, - "dropType": "NORMAL_DROP" - }, - { - "bounds": { - "lower": 0, - "upper": 0 - }, - "dropType": "SPECIAL_DROP" - }, - { - "bounds": { - "lower": 0, - "upper": 0 - }, - "dropType": "EXTRA_DROP" - } - ], "existence": { "CN": { "closeTime": 1676923200000, @@ -70866,9 +69886,6 @@ } }, "minClearTime": 205000, - "recognitionOnly": [ - "act14mini_token_fu" - ], "stageId": "act14mini_03", "stageType": "ACTIVITY", "zoneId": "act14mini_zone1" @@ -70882,6 +69899,156 @@ "ko": "DC-4", "zh": "DC-4" }, + "existence": { + "CN": { + "closeTime": 1676923200000, + "exist": true, + "openTime": 1676361600000 + }, + "JP": { + "exist": false + }, + "KR": { + "exist": false + }, + "US": { + "exist": false + } + }, + "minClearTime": 214000, + "stageId": "act14mini_04", + "stageType": "ACTIVITY", + "zoneId": "act14mini_zone1" + }, + { + "apCost": 15, + "code": "DC-5", + "code_i18n": { + "en": "DC-5", + "ja": "DC-5", + "ko": "DC-5", + "zh": "DC-5" + }, + "existence": { + "CN": { + "closeTime": 1676923200000, + "exist": true, + "openTime": 1676361600000 + }, + "JP": { + "exist": false + }, + "KR": { + "exist": false + }, + "US": { + "exist": false + } + }, + "minClearTime": 181000, + "stageId": "act14mini_05", + "stageType": "ACTIVITY", + "zoneId": "act14mini_zone1" + }, + { + "apCost": 15, + "code": "DC-6", + "code_i18n": { + "en": "DC-6", + "ja": "DC-6", + "ko": "DC-6", + "zh": "DC-6" + }, + "existence": { + "CN": { + "closeTime": 1676923200000, + "exist": true, + "openTime": 1676361600000 + }, + "JP": { + "exist": false + }, + "KR": { + "exist": false + }, + "US": { + "exist": false + } + }, + "minClearTime": 219000, + "stageId": "act14mini_06", + "stageType": "ACTIVITY", + "zoneId": "act14mini_zone1" + }, + { + "apCost": 21, + "code": "DC-7", + "code_i18n": { + "en": "DC-7", + "ja": "DC-7", + "ko": "DC-7", + "zh": "DC-7" + }, + "existence": { + "CN": { + "closeTime": 1676923200000, + "exist": true, + "openTime": 1676361600000 + }, + "JP": { + "exist": false + }, + "KR": { + "exist": false + }, + "US": { + "exist": false + } + }, + "minClearTime": 206000, + "stageId": "act14mini_07", + "stageType": "ACTIVITY", + "zoneId": "act14mini_zone1" + }, + { + "apCost": 21, + "code": "DC-8", + "code_i18n": { + "en": "DC-8", + "ja": "DC-8", + "ko": "DC-8", + "zh": "DC-8" + }, + "existence": { + "CN": { + "closeTime": 1676923200000, + "exist": true, + "openTime": 1676361600000 + }, + "JP": { + "exist": false + }, + "KR": { + "exist": false + }, + "US": { + "exist": false + } + }, + "minClearTime": 265000, + "stageId": "act14mini_08", + "stageType": "ACTIVITY", + "zoneId": "act14mini_zone1" + }, + { + "apCost": 9, + "code": "GA-1", + "code_i18n": { + "en": "GA-1", + "ja": "GA-1", + "ko": "GA-1", + "zh": "GA-1" + }, "dropInfos": [ { "bounds": { @@ -70963,9 +70130,9 @@ ], "existence": { "CN": { - "closeTime": 1676923200000, + "closeTime": 1677787200000, "exist": true, - "openTime": 1676361600000 + "openTime": 1676966400000 }, "JP": { "exist": false @@ -70977,223 +70144,71 @@ "exist": false } }, - "minClearTime": 214000, + "minClearTime": 144000, "recognitionOnly": [ - "act14mini_token_fu" + "act16side_token_bolt_rep_1" ], - "stageId": "act14mini_04", + "stageId": "act16side_01_rep", "stageType": "ACTIVITY", - "zoneId": "act14mini_zone1" + "zoneId": "act16sre_zone1" }, { - "apCost": 15, - "code": "DC-5", + "apCost": 9, + "code": "GA-2", "code_i18n": { - "en": "DC-5", - "ja": "DC-5", - "ko": "DC-5", - "zh": "DC-5" + "en": "GA-2", + "ja": "GA-2", + "ko": "GA-2", + "zh": "GA-2" }, "dropInfos": [ - { - "bounds": { - "lower": 0, - "upper": 3 - }, - "dropType": "EXTRA_DROP", - "itemId": "2001" - }, - { - "bounds": { - "lower": 0, - "upper": 1 - }, - "dropType": "EXTRA_DROP", - "itemId": "2002" - }, { "bounds": { "lower": 0, "upper": 5 }, - "dropType": "EXTRA_DROP", - "itemId": "30021" - }, - { - "bounds": { - "lower": 0, - "upper": 3 - }, - "dropType": "EXTRA_DROP", - "itemId": "30022" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "EXTRA_DROP", - "itemId": "30041" - }, - { - "bounds": { - "lower": 0, - "upper": 3 - }, - "dropType": "EXTRA_DROP", - "itemId": "30042" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "EXTRA_DROP", - "itemId": "30051" - }, - { - "bounds": { - "lower": 0, - "upper": 3 - }, - "dropType": "EXTRA_DROP", - "itemId": "30052" - }, - { - "bounds": { - "lower": 0, - "upper": 1 - }, - "dropType": "FURNITURE", - "itemId": "furni" - }, - { - "bounds": { - "lower": 0, - "upper": 0 - }, - "dropType": "SPECIAL_DROP" - }, - { - "bounds": { - "lower": 0, - "upper": 2 - }, - "dropType": "EXTRA_DROP" - }, - { - "bounds": { - "lower": 1, - "upper": 3 - }, "dropType": "NORMAL_DROP", - "itemId": "30032" - }, - { - "bounds": { - "lower": 1, - "upper": 1 - }, - "dropType": "NORMAL_DROP" - } - ], - "existence": { - "CN": { - "closeTime": 1676923200000, - "exist": true, - "openTime": 1676361600000 - }, - "JP": { - "exist": false - }, - "KR": { - "exist": false - }, - "US": { - "exist": false - } - }, - "minClearTime": 181000, - "recognitionOnly": [ - "act14mini_token_fu" - ], - "stageId": "act14mini_05", - "stageType": "ACTIVITY", - "zoneId": "act14mini_zone1" - }, - { - "apCost": 15, - "code": "DC-6", - "code_i18n": { - "en": "DC-6", - "ja": "DC-6", - "ko": "DC-6", - "zh": "DC-6" - }, - "dropInfos": [ - { - "bounds": { - "lower": 1, - "upper": 3 - }, - "dropType": "NORMAL_DROP", - "itemId": "30012" - }, - { - "bounds": { - "lower": 0, - "upper": 1 - }, - "dropType": "EXTRA_DROP", - "itemId": "3003" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "EXTRA_DROP", "itemId": "30011" }, - { - "bounds": { - "lower": 0, - "upper": 3 - }, - "dropType": "EXTRA_DROP", - "itemId": "30012" - }, { "bounds": { "lower": 0, "upper": 5 }, - "dropType": "EXTRA_DROP", + "dropType": "NORMAL_DROP", "itemId": "30061" }, - { - "bounds": { - "lower": 0, - "upper": 3 - }, - "dropType": "EXTRA_DROP", - "itemId": "30062" - }, { "bounds": { "lower": 0, "upper": 5 }, - "dropType": "EXTRA_DROP", + "dropType": "NORMAL_DROP", "itemId": "30031" }, { "bounds": { "lower": 0, - "upper": 3 + "upper": 5 }, - "dropType": "EXTRA_DROP", - "itemId": "30032" + "dropType": "NORMAL_DROP", + "itemId": "30021" + }, + { + "bounds": { + "lower": 0, + "upper": 5 + }, + "dropType": "NORMAL_DROP", + "itemId": "30041" + }, + { + "bounds": { + "lower": 0, + "upper": 5 + }, + "dropType": "NORMAL_DROP", + "itemId": "30051" }, { "bounds": { @@ -71205,7 +70220,351 @@ }, { "bounds": { - "lower": 1, + "lower": 0, + "upper": 6 + }, + "dropType": "NORMAL_DROP" + }, + { + "bounds": { + "lower": 0, + "upper": 0 + }, + "dropType": "SPECIAL_DROP" + }, + { + "bounds": { + "lower": 0, + "upper": 0 + }, + "dropType": "EXTRA_DROP" + } + ], + "existence": { + "CN": { + "closeTime": 1677787200000, + "exist": true, + "openTime": 1676966400000 + }, + "JP": { + "exist": false + }, + "KR": { + "exist": false + }, + "US": { + "exist": false + } + }, + "minClearTime": 189000, + "recognitionOnly": [ + "act16side_token_bolt_rep_1" + ], + "stageId": "act16side_02_rep", + "stageType": "ACTIVITY", + "zoneId": "act16sre_zone1" + }, + { + "apCost": 9, + "code": "GA-3", + "code_i18n": { + "en": "GA-3", + "ja": "GA-3", + "ko": "GA-3", + "zh": "GA-3" + }, + "dropInfos": [ + { + "bounds": { + "lower": 0, + "upper": 5 + }, + "dropType": "NORMAL_DROP", + "itemId": "30011" + }, + { + "bounds": { + "lower": 0, + "upper": 5 + }, + "dropType": "NORMAL_DROP", + "itemId": "30061" + }, + { + "bounds": { + "lower": 0, + "upper": 5 + }, + "dropType": "NORMAL_DROP", + "itemId": "30031" + }, + { + "bounds": { + "lower": 0, + "upper": 5 + }, + "dropType": "NORMAL_DROP", + "itemId": "30021" + }, + { + "bounds": { + "lower": 0, + "upper": 5 + }, + "dropType": "NORMAL_DROP", + "itemId": "30041" + }, + { + "bounds": { + "lower": 0, + "upper": 5 + }, + "dropType": "NORMAL_DROP", + "itemId": "30051" + }, + { + "bounds": { + "lower": 0, + "upper": 1 + }, + "dropType": "FURNITURE", + "itemId": "furni" + }, + { + "bounds": { + "lower": 0, + "upper": 6 + }, + "dropType": "NORMAL_DROP" + }, + { + "bounds": { + "lower": 0, + "upper": 0 + }, + "dropType": "SPECIAL_DROP" + }, + { + "bounds": { + "lower": 0, + "upper": 0 + }, + "dropType": "EXTRA_DROP" + } + ], + "existence": { + "CN": { + "closeTime": 1677787200000, + "exist": true, + "openTime": 1676966400000 + }, + "JP": { + "exist": false + }, + "KR": { + "exist": false + }, + "US": { + "exist": false + } + }, + "minClearTime": 121000, + "recognitionOnly": [ + "act16side_token_bolt_rep_1" + ], + "stageId": "act16side_03_rep", + "stageType": "ACTIVITY", + "zoneId": "act16sre_zone1" + }, + { + "apCost": 12, + "code": "GA-4", + "code_i18n": { + "en": "GA-4", + "ja": "GA-4", + "ko": "GA-4", + "zh": "GA-4" + }, + "dropInfos": [ + { + "bounds": { + "lower": 0, + "upper": 3 + }, + "dropType": "NORMAL_DROP", + "itemId": "30012" + }, + { + "bounds": { + "lower": 0, + "upper": 3 + }, + "dropType": "NORMAL_DROP", + "itemId": "30062" + }, + { + "bounds": { + "lower": 0, + "upper": 1 + }, + "dropType": "FURNITURE", + "itemId": "furni" + }, + { + "bounds": { + "lower": 0, + "upper": 2 + }, + "dropType": "NORMAL_DROP" + }, + { + "bounds": { + "lower": 0, + "upper": 0 + }, + "dropType": "SPECIAL_DROP" + }, + { + "bounds": { + "lower": 0, + "upper": 0 + }, + "dropType": "EXTRA_DROP" + } + ], + "existence": { + "CN": { + "closeTime": 1677787200000, + "exist": true, + "openTime": 1676966400000 + }, + "JP": { + "exist": false + }, + "KR": { + "exist": false + }, + "US": { + "exist": false + } + }, + "minClearTime": 172000, + "recognitionOnly": [ + "act16side_token_bolt_rep_1" + ], + "stageId": "act16side_04_rep", + "stageType": "ACTIVITY", + "zoneId": "act16sre_zone1" + }, + { + "apCost": 12, + "code": "GA-5", + "code_i18n": { + "en": "GA-5", + "ja": "GA-5", + "ko": "GA-5", + "zh": "GA-5" + }, + "dropInfos": [ + { + "bounds": { + "lower": 0, + "upper": 3 + }, + "dropType": "NORMAL_DROP", + "itemId": "30022" + }, + { + "bounds": { + "lower": 0, + "upper": 3 + }, + "dropType": "NORMAL_DROP", + "itemId": "30042" + }, + { + "bounds": { + "lower": 0, + "upper": 1 + }, + "dropType": "FURNITURE", + "itemId": "furni" + }, + { + "bounds": { + "lower": 0, + "upper": 2 + }, + "dropType": "NORMAL_DROP" + }, + { + "bounds": { + "lower": 0, + "upper": 0 + }, + "dropType": "SPECIAL_DROP" + }, + { + "bounds": { + "lower": 0, + "upper": 0 + }, + "dropType": "EXTRA_DROP" + } + ], + "existence": { + "CN": { + "closeTime": 1677787200000, + "exist": true, + "openTime": 1676966400000 + }, + "JP": { + "exist": false + }, + "KR": { + "exist": false + }, + "US": { + "exist": false + } + }, + "minClearTime": 197000, + "recognitionOnly": [ + "act16side_token_bolt_rep_1" + ], + "stageId": "act16side_05_rep", + "stageType": "ACTIVITY", + "zoneId": "act16sre_zone1" + }, + { + "apCost": 18, + "code": "GA-6", + "code_i18n": { + "en": "GA-6", + "ja": "GA-6", + "ko": "GA-6", + "zh": "GA-6" + }, + "dropInfos": [ + { + "bounds": { + "lower": 0, + "upper": 1 + }, + "dropType": "NORMAL_DROP", + "itemId": "30023" + }, + { + "bounds": { + "lower": 0, + "upper": 1 + }, + "dropType": "FURNITURE", + "itemId": "furni" + }, + { + "bounds": { + "lower": 0, "upper": 1 }, "dropType": "NORMAL_DROP" @@ -71220,16 +70579,16 @@ { "bounds": { "lower": 0, - "upper": 2 + "upper": 0 }, "dropType": "EXTRA_DROP" } ], "existence": { "CN": { - "closeTime": 1676923200000, + "closeTime": 1677787200000, "exist": true, - "openTime": 1676361600000 + "openTime": 1676966400000 }, "JP": { "exist": false @@ -71241,22 +70600,22 @@ "exist": false } }, - "minClearTime": 219000, + "minClearTime": 150000, "recognitionOnly": [ - "act14mini_token_fu" + "act16side_token_bolt_rep_1" ], - "stageId": "act14mini_06", + "stageId": "act16side_06_rep", "stageType": "ACTIVITY", - "zoneId": "act14mini_zone1" + "zoneId": "act16sre_zone1" }, { "apCost": 21, - "code": "DC-7", + "code": "GA-7", "code_i18n": { - "en": "DC-7", - "ja": "DC-7", - "ko": "DC-7", - "zh": "DC-7" + "en": "GA-7", + "ja": "GA-7", + "ko": "GA-7", + "zh": "GA-7" }, "dropInfos": [ { @@ -71265,70 +70624,6 @@ "upper": 1 }, "dropType": "NORMAL_DROP", - "itemId": "30033" - }, - { - "bounds": { - "lower": 0, - "upper": 1 - }, - "dropType": "EXTRA_DROP", - "itemId": "3003" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "EXTRA_DROP", - "itemId": "30011" - }, - { - "bounds": { - "lower": 0, - "upper": 3 - }, - "dropType": "EXTRA_DROP", - "itemId": "30012" - }, - { - "bounds": { - "lower": 0, - "upper": 1 - }, - "dropType": "EXTRA_DROP", - "itemId": "30013" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "EXTRA_DROP", - "itemId": "30061" - }, - { - "bounds": { - "lower": 0, - "upper": 3 - }, - "dropType": "EXTRA_DROP", - "itemId": "30062" - }, - { - "bounds": { - "lower": 0, - "upper": 1 - }, - "dropType": "EXTRA_DROP", - "itemId": "30063" - }, - { - "bounds": { - "lower": 0, - "upper": 1 - }, - "dropType": "EXTRA_DROP", "itemId": "30073" }, { @@ -71336,7 +70631,71 @@ "lower": 0, "upper": 1 }, - "dropType": "EXTRA_DROP", + "dropType": "FURNITURE", + "itemId": "furni" + }, + { + "bounds": { + "lower": 0, + "upper": 1 + }, + "dropType": "NORMAL_DROP" + }, + { + "bounds": { + "lower": 0, + "upper": 0 + }, + "dropType": "SPECIAL_DROP" + }, + { + "bounds": { + "lower": 0, + "upper": 0 + }, + "dropType": "EXTRA_DROP" + } + ], + "existence": { + "CN": { + "closeTime": 1677787200000, + "exist": true, + "openTime": 1676966400000 + }, + "JP": { + "exist": false + }, + "KR": { + "exist": false + }, + "US": { + "exist": false + } + }, + "minClearTime": 175000, + "recognitionOnly": [ + "act16side_token_bolt_rep_1" + ], + "stageId": "act16side_07_rep", + "stageType": "ACTIVITY", + "zoneId": "act16sre_zone1" + }, + { + "apCost": 21, + "code": "GA-8", + "code_i18n": { + "en": "GA-8", + "ja": "GA-8", + "ko": "GA-8", + "zh": "GA-8" + }, + "dropInfos": [ + { + "bounds": { + "lower": 0, + "upper": 1 + }, + "dropType": "NORMAL_DROP", "itemId": "31013" }, { @@ -71364,16 +70723,16 @@ { "bounds": { "lower": 0, - "upper": 2 + "upper": 0 }, "dropType": "EXTRA_DROP" } ], "existence": { "CN": { - "closeTime": 1676923200000, + "closeTime": 1677787200000, "exist": true, - "openTime": 1676361600000 + "openTime": 1676966400000 }, "JP": { "exist": false @@ -71387,170 +70746,10 @@ }, "minClearTime": 206000, "recognitionOnly": [ - "act14mini_token_fu" + "act16side_token_bolt_rep_1" ], - "stageId": "act14mini_07", + "stageId": "act16side_08_rep", "stageType": "ACTIVITY", - "zoneId": "act14mini_zone1" - }, - { - "apCost": 21, - "code": "DC-8", - "code_i18n": { - "en": "DC-8", - "ja": "DC-8", - "ko": "DC-8", - "zh": "DC-8" - }, - "dropInfos": [ - { - "bounds": { - "lower": 0, - "upper": 1 - }, - "dropType": "NORMAL_DROP", - "itemId": "30093" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "EXTRA_DROP", - "itemId": "30031" - }, - { - "bounds": { - "lower": 0, - "upper": 3 - }, - "dropType": "EXTRA_DROP", - "itemId": "30032" - }, - { - "bounds": { - "lower": 0, - "upper": 1 - }, - "dropType": "EXTRA_DROP", - "itemId": "30033" - }, - { - "bounds": { - "lower": 0, - "upper": 5 - }, - "dropType": "EXTRA_DROP", - "itemId": "30051" - }, - { - "bounds": { - "lower": 0, - "upper": 3 - }, - "dropType": "EXTRA_DROP", - "itemId": "30052" - }, - { - "bounds": { - "lower": 0, - "upper": 1 - }, - "dropType": "EXTRA_DROP", - "itemId": "30053" - }, - { - "bounds": { - "lower": 0, - "upper": 1 - }, - "dropType": "EXTRA_DROP", - "itemId": "30093" - }, - { - "bounds": { - "lower": 0, - "upper": 1 - }, - "dropType": "EXTRA_DROP", - "itemId": "30103" - }, - { - "bounds": { - "lower": 0, - "upper": 1 - }, - "dropType": "EXTRA_DROP", - "itemId": "31033" - }, - { - "bounds": { - "lower": 0, - "upper": 1 - }, - "dropType": "EXTRA_DROP", - "itemId": "31043" - }, - { - "bounds": { - "lower": 0, - "upper": 1 - }, - "dropType": "EXTRA_DROP", - "itemId": "31053" - }, - { - "bounds": { - "lower": 0, - "upper": 1 - }, - "dropType": "FURNITURE", - "itemId": "furni" - }, - { - "bounds": { - "lower": 0, - "upper": 1 - }, - "dropType": "NORMAL_DROP" - }, - { - "bounds": { - "lower": 0, - "upper": 0 - }, - "dropType": "SPECIAL_DROP" - }, - { - "bounds": { - "lower": 0, - "upper": 2 - }, - "dropType": "EXTRA_DROP" - } - ], - "existence": { - "CN": { - "closeTime": 1676923200000, - "exist": true, - "openTime": 1676361600000 - }, - "JP": { - "exist": false - }, - "KR": { - "exist": false - }, - "US": { - "exist": false - } - }, - "minClearTime": 265000, - "recognitionOnly": [ - "act14mini_token_fu" - ], - "stageId": "act14mini_08", - "stageType": "ACTIVITY", - "zoneId": "act14mini_zone1" + "zoneId": "act16sre_zone1" } ] \ No newline at end of file From 8bd3884949c05f79015266a35c38b9054c413305 Mon Sep 17 00:00:00 2001 From: uye <2396806385@qq.com> Date: Tue, 21 Feb 2023 17:03:23 +0800 Subject: [PATCH 022/100] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E5=90=BE?= =?UTF-8?q?=E5=AF=BC=E5=85=88=E8=B7=AF=E6=B4=BB=E5=8A=A8=E5=AF=BC=E8=88=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 93 ++++++++++++++++++++++++++++ src/MaaWpfGui/Helper/StageManager.cs | 2 +- 2 files changed, 94 insertions(+), 1 deletion(-) diff --git a/resource/tasks.json b/resource/tasks.json index 7b39eab1c5..f17cf50eab 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -778,6 +778,99 @@ 120 ] }, + "GA-6": { + "algorithm": "JustReturn", + "action": "DoNothing", + "sub": [ + "GA-Open" + ], + "next": [ + "StageGA-6", + "GA-6@SwipeToStage" + ] + }, + "GA-7": { + "algorithm": "JustReturn", + "action": "DoNothing", + "sub": [ + "GA-Open" + ], + "next": [ + "StageGA-7", + "GA-7@SwipeToStage" + ] + }, + "GA-8": { + "algorithm": "JustReturn", + "action": "DoNothing", + "sub": [ + "GA-Open" + ], + "next": [ + "StageGA-8", + "GA-8@SwipeToStage" + ] + }, + "GA-Open": { + "action": "ClickSelf", + "algorithm": "OcrDetect", + "text": [ + "吾导先路", + "复刻" + ], + "roi": [ + 0, + 500, + 500, + 150 + ], + "postDelay": 2000, + "next": [ + "GAChapterToGA" + ] + }, + "GAChapterToGA": { + "action": "ClickSelf", + "algorithm": "OcrDetect", + "text": [ + "万国峰会" + ], + "roi": [ + 1007, + 431, + 227, + 140 + ], + "postDelay": 2000, + "next": [ + "GAChapterToGA", + "ChapterSwipeToTheRight" + ] + }, + "StageGA-6": { + "action": "ClickSelf", + "algorithm": "OcrDetect", + "text": [ + "GA-6" + ], + "cache": false + }, + "StageGA-7": { + "action": "ClickSelf", + "algorithm": "OcrDetect", + "text": [ + "GA-7" + ], + "cache": false + }, + "StageGA-8": { + "action": "ClickSelf", + "algorithm": "OcrDetect", + "text": [ + "GA-8" + ], + "cache": false + }, "WB-7": { "algorithm": "JustReturn", "action": "DoNothing", diff --git a/src/MaaWpfGui/Helper/StageManager.cs b/src/MaaWpfGui/Helper/StageManager.cs index c96ca4cd72..007458d8e2 100644 --- a/src/MaaWpfGui/Helper/StageManager.cs +++ b/src/MaaWpfGui/Helper/StageManager.cs @@ -117,7 +117,7 @@ namespace MaaWpfGui bool isDebugVersion = Marshal.PtrToStringAnsi(AsstGetVersion()) == "DEBUG VERSION"; bool curParsed = !isDebugVersion ? SemVersion.TryParse(Marshal.PtrToStringAnsi(AsstGetVersion()), SemVersionStyles.AllowLowerV, out var curVersionObj) : - SemVersion.TryParse("4.10.7", SemVersionStyles.AllowLowerV, out curVersionObj); + SemVersion.TryParse("4.11.7", SemVersionStyles.AllowLowerV, out curVersionObj); bool minimumRequiredPared = SemVersion.TryParse(stageObj?["MinimumRequired"]?.ToString() ?? string.Empty, SemVersionStyles.AllowLowerV, out var minimumRequiredObj); var stageInfo = new StageInfo(); From 6ef82d1f448bac51742f4bef7a7a30c96b631bc4 Mon Sep 17 00:00:00 2001 From: MistEO Date: Tue, 21 Feb 2023 19:12:39 +0800 Subject: [PATCH 023/100] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=E5=9C=B0?= =?UTF-8?q?=E5=9B=BE=E6=95=B0=E6=8D=AE=202023/02/21?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 6 + ...tivities-act16side-level_act16side_01.json | 526 ++++++ ...tivities-act16side-level_act16side_02.json | 575 +++++++ ...tivities-act16side-level_act16side_03.json | 575 +++++++ ...tivities-act16side-level_act16side_04.json | 526 ++++++ ...tivities-act16side-level_act16side_05.json | 624 ++++++++ ...tivities-act16side-level_act16side_06.json | 654 ++++++++ ...ivities-act16side-level_act16side_07.json} | 1336 +++++----------- ...tivities-act16side-level_act16side_08.json | 654 ++++++++ ...vities-act16side-level_act16side_ex01.json | 654 ++++++++ ...vities-act16side-level_act16side_ex01.json | 654 ++++++++ ...vities-act16side-level_act16side_ex02.json | 575 +++++++ ...vities-act16side-level_act16side_ex02.json | 575 +++++++ ...vities-act16side-level_act16side_ex03.json | 710 +++++++++ ...vities-act16side-level_act16side_ex03.json | 710 +++++++++ ...ities-act16side-level_act16side_ex04.json} | 1412 ++++++----------- ...vities-act16side-level_act16side_ex04.json | 710 +++++++++ ...vities-act16side-level_act16side_ex05.json | 575 +++++++ ...vities-act16side-level_act16side_ex05.json | 575 +++++++ ...vities-act16side-level_act16side_ex06.json | 710 +++++++++ ...vities-act16side-level_act16side_ex06.json | 710 +++++++++ ...vities-act16side-level_act16side_ex07.json | 710 +++++++++ ...vities-act16side-level_act16side_ex07.json | 710 +++++++++ ...ities-act16side-level_act16side_ex08.json} | 976 +++++------- ...ities-act16side-level_act16side_ex08.json} | 1046 ++++-------- ...vities-act16side-level_act16side_tr01.json | 477 ++++++ ...xi_1-obt-memory-level_memory_phenxi_1.json | 542 +++++++ resource/item_index.json | 4 +- 28 files changed, 15312 insertions(+), 3199 deletions(-) create mode 100644 resource/Arknights-Tile-Pos/act16side_01-activities-act16side-level_act16side_01.json create mode 100644 resource/Arknights-Tile-Pos/act16side_02-activities-act16side-level_act16side_02.json create mode 100644 resource/Arknights-Tile-Pos/act16side_03-activities-act16side-level_act16side_03.json create mode 100644 resource/Arknights-Tile-Pos/act16side_04-activities-act16side-level_act16side_04.json create mode 100644 resource/Arknights-Tile-Pos/act16side_05-activities-act16side-level_act16side_05.json create mode 100644 resource/Arknights-Tile-Pos/act16side_06-activities-act16side-level_act16side_06.json rename resource/Arknights-Tile-Pos/{act2bossrush_02-activities-act2bossrush-level_bossrush2_02.json => act16side_07-activities-act16side-level_act16side_07.json} (57%) create mode 100644 resource/Arknights-Tile-Pos/act16side_08-activities-act16side-level_act16side_08.json create mode 100644 resource/Arknights-Tile-Pos/act16side_ex01#f#-activities-act16side-level_act16side_ex01.json create mode 100644 resource/Arknights-Tile-Pos/act16side_ex01-activities-act16side-level_act16side_ex01.json create mode 100644 resource/Arknights-Tile-Pos/act16side_ex02#f#-activities-act16side-level_act16side_ex02.json create mode 100644 resource/Arknights-Tile-Pos/act16side_ex02-activities-act16side-level_act16side_ex02.json create mode 100644 resource/Arknights-Tile-Pos/act16side_ex03#f#-activities-act16side-level_act16side_ex03.json create mode 100644 resource/Arknights-Tile-Pos/act16side_ex03-activities-act16side-level_act16side_ex03.json rename resource/Arknights-Tile-Pos/{act2bossrush_03-activities-act2bossrush-level_bossrush2_03.json => act16side_ex04#f#-activities-act16side-level_act16side_ex04.json} (57%) create mode 100644 resource/Arknights-Tile-Pos/act16side_ex04-activities-act16side-level_act16side_ex04.json create mode 100644 resource/Arknights-Tile-Pos/act16side_ex05#f#-activities-act16side-level_act16side_ex05.json create mode 100644 resource/Arknights-Tile-Pos/act16side_ex05-activities-act16side-level_act16side_ex05.json create mode 100644 resource/Arknights-Tile-Pos/act16side_ex06#f#-activities-act16side-level_act16side_ex06.json create mode 100644 resource/Arknights-Tile-Pos/act16side_ex06-activities-act16side-level_act16side_ex06.json create mode 100644 resource/Arknights-Tile-Pos/act16side_ex07#f#-activities-act16side-level_act16side_ex07.json create mode 100644 resource/Arknights-Tile-Pos/act16side_ex07-activities-act16side-level_act16side_ex07.json rename resource/Arknights-Tile-Pos/{act2bossrush_01-activities-act2bossrush-level_bossrush2_01.json => act16side_ex08#f#-activities-act16side-level_act16side_ex08.json} (76%) rename resource/Arknights-Tile-Pos/{act2bossrush_04-activities-act2bossrush-level_bossrush2_04.json => act16side_ex08-activities-act16side-level_act16side_ex08.json} (61%) create mode 100644 resource/Arknights-Tile-Pos/act16side_tr01-activities-act16side-level_act16side_tr01.json create mode 100644 resource/Arknights-Tile-Pos/mem_phenxi_1-obt-memory-level_memory_phenxi_1.json diff --git a/.gitignore b/.gitignore index 895085dcb6..13335857eb 100644 --- a/.gitignore +++ b/.gitignore @@ -442,3 +442,9 @@ enc_temp_folder/* # Nuke .nuke/temp/* + +# 引航者试炼地图,手动改的参数 +/resource/Arknights-Tile-Pos/act2bossrush_01-activities-act2bossrush-level_bossrush2_01.json +/resource/Arknights-Tile-Pos/act2bossrush_02-activities-act2bossrush-level_bossrush2_02.json +/resource/Arknights-Tile-Pos/act2bossrush_03-activities-act2bossrush-level_bossrush2_03.json +/resource/Arknights-Tile-Pos/act2bossrush_04-activities-act2bossrush-level_bossrush2_04.json diff --git a/resource/Arknights-Tile-Pos/act16side_01-activities-act16side-level_act16side_01.json b/resource/Arknights-Tile-Pos/act16side_01-activities-act16side-level_act16side_01.json new file mode 100644 index 0000000000..870c26526b --- /dev/null +++ b/resource/Arknights-Tile-Pos/act16side_01-activities-act16side-level_act16side_01.json @@ -0,0 +1,526 @@ +{ + "code": "GA-1", + "height": 7, + "levelId": "activities/act16side/level_act16side_01", + "name": "灯下黑", + "stageId": "act16side_01", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telin" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telout" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.6, + -8.9 + ], + [ + 0.79546878123568, + -6.1, + -9.764789001808651 + ] + ], + "width": 10 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act16side_02-activities-act16side-level_act16side_02.json b/resource/Arknights-Tile-Pos/act16side_02-activities-act16side-level_act16side_02.json new file mode 100644 index 0000000000..c7eae2af3e --- /dev/null +++ b/resource/Arknights-Tile-Pos/act16side_02-activities-act16side-level_act16side_02.json @@ -0,0 +1,575 @@ +{ + "code": "GA-2", + "height": 7, + "levelId": "activities/act16side/level_act16side_02", + "name": "散步时光", + "stageId": "act16side_02", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.6, + -8.9 + ], + [ + 0.79546878123568, + -6.1, + -9.764789001808651 + ] + ], + "width": 11 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act16side_03-activities-act16side-level_act16side_03.json b/resource/Arknights-Tile-Pos/act16side_03-activities-act16side-level_act16side_03.json new file mode 100644 index 0000000000..74ac5a5540 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act16side_03-activities-act16side-level_act16side_03.json @@ -0,0 +1,575 @@ +{ + "code": "GA-3", + "height": 7, + "levelId": "activities/act16side/level_act16side_03", + "name": "混血儿", + "stageId": "act16side_03", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.6, + -8.9 + ], + [ + 0.79546878123568, + -6.1, + -9.764789001808651 + ] + ], + "width": 11 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act16side_04-activities-act16side-level_act16side_04.json b/resource/Arknights-Tile-Pos/act16side_04-activities-act16side-level_act16side_04.json new file mode 100644 index 0000000000..1c60638177 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act16side_04-activities-act16side-level_act16side_04.json @@ -0,0 +1,526 @@ +{ + "code": "GA-4", + "height": 7, + "levelId": "activities/act16side/level_act16side_04", + "name": "安魂教堂", + "stageId": "act16side_04", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telin" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telout" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.6, + -8.9 + ], + [ + 0.79546878123568, + -6.1, + -9.764789001808651 + ] + ], + "width": 10 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act16side_05-activities-act16side-level_act16side_05.json b/resource/Arknights-Tile-Pos/act16side_05-activities-act16side-level_act16side_05.json new file mode 100644 index 0000000000..4fbc592789 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act16side_05-activities-act16side-level_act16side_05.json @@ -0,0 +1,624 @@ +{ + "code": "GA-5", + "height": 7, + "levelId": "activities/act16side/level_act16side_05", + "name": "葬礼", + "stageId": "act16side_05", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.6, + -8.9 + ], + [ + 0.79546878123568, + -6.1, + -9.764789001808651 + ] + ], + "width": 12 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act16side_06-activities-act16side-level_act16side_06.json b/resource/Arknights-Tile-Pos/act16side_06-activities-act16side-level_act16side_06.json new file mode 100644 index 0000000000..7a38b87d95 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act16side_06-activities-act16side-level_act16side_06.json @@ -0,0 +1,654 @@ +{ + "code": "GA-6", + "height": 8, + "levelId": "activities/act16side/level_act16side_06", + "name": "安魂曲", + "stageId": "act16side_06", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telin" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telout" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.6, + -8.9 + ], + [ + 0.79546878123568, + -6.1, + -9.764789001808651 + ] + ], + "width": 11 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act2bossrush_02-activities-act2bossrush-level_bossrush2_02.json b/resource/Arknights-Tile-Pos/act16side_07-activities-act16side-level_act16side_07.json similarity index 57% rename from resource/Arknights-Tile-Pos/act2bossrush_02-activities-act2bossrush-level_bossrush2_02.json rename to resource/Arknights-Tile-Pos/act16side_07-activities-act16side-level_act16side_07.json index bb4a3dc35e..0d2f075002 100644 --- a/resource/Arknights-Tile-Pos/act2bossrush_02-activities-act2bossrush-level_bossrush2_02.json +++ b/resource/Arknights-Tile-Pos/act16side_07-activities-act16side-level_act16side_07.json @@ -1,9 +1,9 @@ { - "code": "TN-2", + "code": "GA-7", "height": 8, - "levelId": "activities/act2bossrush/level_bossrush2_02", - "name": "大块头和小不点", - "stageId": "act2bossrush_02", + "levelId": "activities/act16side/level_act16side_07", + "name": "光与影", + "stageId": "act16side_07", "tiles": [ [ { @@ -13,814 +13,6 @@ "isStart": false, "tileKey": "tile_forbidden" }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": true, - "tileKey": "tile_start" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_flystart" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_telout" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_flystart" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_telout" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_flystart" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": true, - "tileKey": "tile_start" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_flystart" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - } - ], - [ - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": true, - "tileKey": "tile_start" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": true, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": true, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_telin" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": true, - "tileKey": "tile_start" - } - ], - [ - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_fence" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_telin" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_telin" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": true, - "tileKey": "tile_start" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": true, - "tileKey": "tile_floor" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - } - ], - [ - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": true, - "tileKey": "tile_flystart" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_fence" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_fence" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - } - ], - [ - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": true, - "tileKey": "tile_flystart" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - } - ], - [ - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_telin" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, { "buildableType": 0, "heightType": 0, @@ -830,52 +22,52 @@ }, { "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 2, "heightType": 1, "isEnd": false, "isStart": false, - "tileKey": "tile_wall" + "tileKey": "tile_forbidden" }, { "buildableType": 0, - "heightType": 0, + "heightType": 1, "isEnd": false, "isStart": false, - "tileKey": "tile_floor" + "tileKey": "tile_forbidden" }, { "buildableType": 0, - "heightType": 0, + "heightType": 1, "isEnd": false, "isStart": false, - "tileKey": "tile_floor" + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" }, { "buildableType": 0, @@ -907,6 +99,85 @@ "isStart": false, "tileKey": "tile_forbidden" }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telout" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telin" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ { "buildableType": 0, "heightType": 1, @@ -936,32 +207,11 @@ "tileKey": "tile_road" }, { - "buildableType": 0, + "buildableType": 1, "heightType": 0, "isEnd": false, "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" + "tileKey": "tile_road" }, { "buildableType": 1, @@ -970,13 +220,6 @@ "isStart": false, "tileKey": "tile_road" }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": true, - "isStart": false, - "tileKey": "tile_end" - }, { "buildableType": 1, "heightType": 0, @@ -985,25 +228,11 @@ "tileKey": "tile_road" }, { - "buildableType": 0, + "buildableType": 1, "heightType": 0, "isEnd": false, "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" + "tileKey": "tile_road" }, { "buildableType": 0, @@ -1013,39 +242,25 @@ "tileKey": "tile_forbidden" }, { - "buildableType": 2, + "buildableType": 0, "heightType": 1, "isEnd": false, "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" + "tileKey": "tile_forbidden" }, { "buildableType": 1, "heightType": 0, "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, + "isStart": true, "tileKey": "tile_road" }, { "buildableType": 0, - "heightType": 0, - "isEnd": true, + "heightType": 1, + "isEnd": false, "isStart": false, - "tileKey": "tile_end" + "tileKey": "tile_forbidden" } ], [ @@ -1084,12 +299,212 @@ "isStart": false, "tileKey": "tile_forbidden" }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, { "buildableType": 0, "heightType": 1, "isEnd": false, "isStart": false, "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telin" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" }, { "buildableType": 0, @@ -1098,6 +513,15 @@ "isStart": false, "tileKey": "tile_telout" }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ { "buildableType": 0, "heightType": 1, @@ -1110,8 +534,80 @@ "heightType": 0, "isEnd": false, "isStart": false, - "tileKey": "tile_telout" + "tileKey": "tile_floor" }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ { "buildableType": 0, "heightType": 1, @@ -1200,15 +696,15 @@ ], "view": [ [ - -4.5, - -6.1, - -9.76 + 0.0, + -5.6, + -8.9 ], [ - -3.6, - -6.6, - -10.66 + 0.79546878123568, + -6.1, + -9.764789001808651 ] ], - "width": 21 -} + "width": 12 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act16side_08-activities-act16side-level_act16side_08.json b/resource/Arknights-Tile-Pos/act16side_08-activities-act16side-level_act16side_08.json new file mode 100644 index 0000000000..3657e2f01e --- /dev/null +++ b/resource/Arknights-Tile-Pos/act16side_08-activities-act16side-level_act16side_08.json @@ -0,0 +1,654 @@ +{ + "code": "GA-8", + "height": 8, + "levelId": "activities/act16side/level_act16side_08", + "name": "影与灰", + "stageId": "act16side_08", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telout" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telin" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telout" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telin" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.6, + -8.9 + ], + [ + 0.79546878123568, + -6.1, + -9.764789001808651 + ] + ], + "width": 11 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act16side_ex01#f#-activities-act16side-level_act16side_ex01.json b/resource/Arknights-Tile-Pos/act16side_ex01#f#-activities-act16side-level_act16side_ex01.json new file mode 100644 index 0000000000..e3a88988ec --- /dev/null +++ b/resource/Arknights-Tile-Pos/act16side_ex01#f#-activities-act16side-level_act16side_ex01.json @@ -0,0 +1,654 @@ +{ + "code": "GA-EX-1", + "height": 8, + "levelId": "activities/act16side/level_act16side_ex01", + "name": "巧克力曲奇", + "stageId": "act16side_ex01#f#", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_hole" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.6, + -8.9 + ], + [ + 0.79546878123568, + -6.1, + -9.764789001808651 + ] + ], + "width": 11 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act16side_ex01-activities-act16side-level_act16side_ex01.json b/resource/Arknights-Tile-Pos/act16side_ex01-activities-act16side-level_act16side_ex01.json new file mode 100644 index 0000000000..d4636c882b --- /dev/null +++ b/resource/Arknights-Tile-Pos/act16side_ex01-activities-act16side-level_act16side_ex01.json @@ -0,0 +1,654 @@ +{ + "code": "GA-EX-1", + "height": 8, + "levelId": "activities/act16side/level_act16side_ex01", + "name": "巧克力曲奇", + "stageId": "act16side_ex01", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_hole" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.6, + -8.9 + ], + [ + 0.79546878123568, + -6.1, + -9.764789001808651 + ] + ], + "width": 11 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act16side_ex02#f#-activities-act16side-level_act16side_ex02.json b/resource/Arknights-Tile-Pos/act16side_ex02#f#-activities-act16side-level_act16side_ex02.json new file mode 100644 index 0000000000..184ff25ca0 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act16side_ex02#f#-activities-act16side-level_act16side_ex02.json @@ -0,0 +1,575 @@ +{ + "code": "GA-EX-2", + "height": 7, + "levelId": "activities/act16side/level_act16side_ex02", + "name": "限量蒙布朗", + "stageId": "act16side_ex02#f#", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": true, + "tileKey": "tile_flystart" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.1, + -8.9 + ], + [ + 0.79546878123568, + -5.6, + -9.764789001808651 + ] + ], + "width": 11 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act16side_ex02-activities-act16side-level_act16side_ex02.json b/resource/Arknights-Tile-Pos/act16side_ex02-activities-act16side-level_act16side_ex02.json new file mode 100644 index 0000000000..fb8ffdc3fa --- /dev/null +++ b/resource/Arknights-Tile-Pos/act16side_ex02-activities-act16side-level_act16side_ex02.json @@ -0,0 +1,575 @@ +{ + "code": "GA-EX-2", + "height": 7, + "levelId": "activities/act16side/level_act16side_ex02", + "name": "限量蒙布朗", + "stageId": "act16side_ex02", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": true, + "tileKey": "tile_flystart" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.1, + -8.9 + ], + [ + 0.79546878123568, + -5.6, + -9.764789001808651 + ] + ], + "width": 11 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act16side_ex03#f#-activities-act16side-level_act16side_ex03.json b/resource/Arknights-Tile-Pos/act16side_ex03#f#-activities-act16side-level_act16side_ex03.json new file mode 100644 index 0000000000..fecd05ea16 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act16side_ex03#f#-activities-act16side-level_act16side_ex03.json @@ -0,0 +1,710 @@ +{ + "code": "GA-EX-3", + "height": 8, + "levelId": "activities/act16side/level_act16side_ex03", + "name": "香草圣代", + "stageId": "act16side_ex03#f#", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.6, + -8.9 + ], + [ + 0.79546878123568, + -6.1, + -9.764789001808651 + ] + ], + "width": 12 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act16side_ex03-activities-act16side-level_act16side_ex03.json b/resource/Arknights-Tile-Pos/act16side_ex03-activities-act16side-level_act16side_ex03.json new file mode 100644 index 0000000000..78785d9934 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act16side_ex03-activities-act16side-level_act16side_ex03.json @@ -0,0 +1,710 @@ +{ + "code": "GA-EX-3", + "height": 8, + "levelId": "activities/act16side/level_act16side_ex03", + "name": "香草圣代", + "stageId": "act16side_ex03", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.6, + -8.9 + ], + [ + 0.79546878123568, + -6.1, + -9.764789001808651 + ] + ], + "width": 12 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act2bossrush_03-activities-act2bossrush-level_bossrush2_03.json b/resource/Arknights-Tile-Pos/act16side_ex04#f#-activities-act16side-level_act16side_ex04.json similarity index 57% rename from resource/Arknights-Tile-Pos/act2bossrush_03-activities-act2bossrush-level_bossrush2_03.json rename to resource/Arknights-Tile-Pos/act16side_ex04#f#-activities-act16side-level_act16side_ex04.json index 4db1345539..1fca2fbac9 100644 --- a/resource/Arknights-Tile-Pos/act2bossrush_03-activities-act2bossrush-level_bossrush2_03.json +++ b/resource/Arknights-Tile-Pos/act16side_ex04#f#-activities-act16side-level_act16side_ex04.json @@ -1,9 +1,9 @@ { - "code": "TN-3", + "code": "GA-EX-4", "height": 8, - "levelId": "activities/act2bossrush/level_bossrush2_03", - "name": "裂地重击", - "stageId": "act2bossrush_03", + "levelId": "activities/act16side/level_act16side_ex04", + "name": "焦糖布丁", + "stageId": "act16side_ex04#f#", "tiles": [ [ { @@ -41,90 +41,6 @@ "isStart": false, "tileKey": "tile_forbidden" }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": true, - "tileKey": "tile_start" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": true, - "tileKey": "tile_start" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": true, - "tileKey": "tile_start" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, { "buildableType": 0, "heightType": 0, @@ -146,6 +62,27 @@ "isStart": false, "tileKey": "tile_forbidden" }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, { "buildableType": 0, "heightType": 1, @@ -157,24 +94,152 @@ [ { "buildableType": 0, - "heightType": 0, + "heightType": 1, "isEnd": false, - "isStart": true, - "tileKey": "tile_start" + "isStart": false, + "tileKey": "tile_forbidden" }, { - "buildableType": 0, + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, "heightType": 0, "isEnd": false, "isStart": false, - "tileKey": "tile_floor" + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" }, { "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, "heightType": 0, "isEnd": false, - "isStart": true, - "tileKey": "tile_floor" + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" }, { "buildableType": 1, @@ -196,27 +261,122 @@ "isEnd": false, "isStart": false, "tileKey": "tile_forbidden" - }, + } + ], + [ { "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, "heightType": 0, "isEnd": false, "isStart": false, - "tileKey": "tile_floor" + "tileKey": "tile_road" }, { "buildableType": 0, - "heightType": 0, + "heightType": 1, "isEnd": false, "isStart": false, - "tileKey": "tile_floor" + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" }, { "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, "heightType": 0, "isEnd": false, "isStart": false, - "tileKey": "tile_hole" + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" }, { "buildableType": 0, @@ -232,6 +392,192 @@ "isStart": false, "tileKey": "tile_forbidden" }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, { "buildableType": 0, "heightType": 0, @@ -250,198 +596,7 @@ "buildableType": 0, "heightType": 0, "isEnd": false, - "isStart": true, - "tileKey": "tile_start" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": true, - "tileKey": "tile_flystart" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": true, - "tileKey": "tile_flystart" - } - ], - [ - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_hole" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": true, "tileKey": "tile_floor" }, { @@ -453,665 +608,6 @@ } ], [ - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_hole" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - } - ], - [ - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": true, - "tileKey": "tile_floor" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - } - ], - [ - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - } - ], - [ - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": true, - "isStart": false, - "tileKey": "tile_end" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": true, - "tileKey": "tile_floor" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - } - ], - [ - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, { "buildableType": 0, "heightType": 1, @@ -1200,15 +696,15 @@ ], "view": [ [ - -4.5, - -6.1, - -9.76 + 0.0, + -5.6, + -8.9 ], [ - -3.56, - -6.57, - -10.56 + 0.79546878123568, + -6.1, + -9.764789001808651 ] ], - "width": 21 -} + "width": 12 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act16side_ex04-activities-act16side-level_act16side_ex04.json b/resource/Arknights-Tile-Pos/act16side_ex04-activities-act16side-level_act16side_ex04.json new file mode 100644 index 0000000000..a9727b4509 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act16side_ex04-activities-act16side-level_act16side_ex04.json @@ -0,0 +1,710 @@ +{ + "code": "GA-EX-4", + "height": 8, + "levelId": "activities/act16side/level_act16side_ex04", + "name": "焦糖布丁", + "stageId": "act16side_ex04", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.6, + -8.9 + ], + [ + 0.79546878123568, + -6.1, + -9.764789001808651 + ] + ], + "width": 12 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act16side_ex05#f#-activities-act16side-level_act16side_ex05.json b/resource/Arknights-Tile-Pos/act16side_ex05#f#-activities-act16side-level_act16side_ex05.json new file mode 100644 index 0000000000..79121e2dd3 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act16side_ex05#f#-activities-act16side-level_act16side_ex05.json @@ -0,0 +1,575 @@ +{ + "code": "GA-EX-5", + "height": 7, + "levelId": "activities/act16side/level_act16side_ex05", + "name": "年轮卷", + "stageId": "act16side_ex05#f#", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.6, + -8.9 + ], + [ + 0.79546878123568, + -6.1, + -9.764789001808651 + ] + ], + "width": 11 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act16side_ex05-activities-act16side-level_act16side_ex05.json b/resource/Arknights-Tile-Pos/act16side_ex05-activities-act16side-level_act16side_ex05.json new file mode 100644 index 0000000000..a572e9d472 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act16side_ex05-activities-act16side-level_act16side_ex05.json @@ -0,0 +1,575 @@ +{ + "code": "GA-EX-5", + "height": 7, + "levelId": "activities/act16side/level_act16side_ex05", + "name": "年轮卷", + "stageId": "act16side_ex05", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.6, + -8.9 + ], + [ + 0.79546878123568, + -6.1, + -9.764789001808651 + ] + ], + "width": 11 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act16side_ex06#f#-activities-act16side-level_act16side_ex06.json b/resource/Arknights-Tile-Pos/act16side_ex06#f#-activities-act16side-level_act16side_ex06.json new file mode 100644 index 0000000000..db1ed9b039 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act16side_ex06#f#-activities-act16side-level_act16side_ex06.json @@ -0,0 +1,710 @@ +{ + "code": "GA-EX-6", + "height": 8, + "levelId": "activities/act16side/level_act16side_ex06", + "name": "奶油冰淇淋", + "stageId": "act16side_ex06#f#", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telout" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telin" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telin" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telout" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.6, + -8.9 + ], + [ + 0.79546878123568, + -6.1, + -9.764789001808651 + ] + ], + "width": 12 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act16side_ex06-activities-act16side-level_act16side_ex06.json b/resource/Arknights-Tile-Pos/act16side_ex06-activities-act16side-level_act16side_ex06.json new file mode 100644 index 0000000000..05c2a89d45 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act16side_ex06-activities-act16side-level_act16side_ex06.json @@ -0,0 +1,710 @@ +{ + "code": "GA-EX-6", + "height": 8, + "levelId": "activities/act16side/level_act16side_ex06", + "name": "奶油冰淇淋", + "stageId": "act16side_ex06", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telout" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telin" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telin" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telout" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.6, + -8.9 + ], + [ + 0.79546878123568, + -6.1, + -9.764789001808651 + ] + ], + "width": 12 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act16side_ex07#f#-activities-act16side-level_act16side_ex07.json b/resource/Arknights-Tile-Pos/act16side_ex07#f#-activities-act16side-level_act16side_ex07.json new file mode 100644 index 0000000000..5f838db68e --- /dev/null +++ b/resource/Arknights-Tile-Pos/act16side_ex07#f#-activities-act16side-level_act16side_ex07.json @@ -0,0 +1,710 @@ +{ + "code": "GA-EX-7", + "height": 8, + "levelId": "activities/act16side/level_act16side_ex07", + "name": "苹果派", + "stageId": "act16side_ex07#f#", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.6, + -8.9 + ], + [ + 0.79546878123568, + -6.1, + -9.764789001808651 + ] + ], + "width": 12 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act16side_ex07-activities-act16side-level_act16side_ex07.json b/resource/Arknights-Tile-Pos/act16side_ex07-activities-act16side-level_act16side_ex07.json new file mode 100644 index 0000000000..c4f3fef85a --- /dev/null +++ b/resource/Arknights-Tile-Pos/act16side_ex07-activities-act16side-level_act16side_ex07.json @@ -0,0 +1,710 @@ +{ + "code": "GA-EX-7", + "height": 8, + "levelId": "activities/act16side/level_act16side_ex07", + "name": "苹果派", + "stageId": "act16side_ex07", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.6, + -8.9 + ], + [ + 0.79546878123568, + -6.1, + -9.764789001808651 + ] + ], + "width": 12 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act2bossrush_01-activities-act2bossrush-level_bossrush2_01.json b/resource/Arknights-Tile-Pos/act16side_ex08#f#-activities-act16side-level_act16side_ex08.json similarity index 76% rename from resource/Arknights-Tile-Pos/act2bossrush_01-activities-act2bossrush-level_bossrush2_01.json rename to resource/Arknights-Tile-Pos/act16side_ex08#f#-activities-act16side-level_act16side_ex08.json index e51c5a43aa..b2ab7cd92b 100644 --- a/resource/Arknights-Tile-Pos/act2bossrush_01-activities-act2bossrush-level_bossrush2_01.json +++ b/resource/Arknights-Tile-Pos/act16side_ex08#f#-activities-act16side-level_act16side_ex08.json @@ -1,9 +1,9 @@ { - "code": "TN-1", + "code": "GA-EX-8", "height": 8, - "levelId": "activities/act2bossrush/level_bossrush2_01", - "name": "困顿囚徒", - "stageId": "act2bossrush_01", + "levelId": "activities/act16side/level_act16side_ex08", + "name": "千层蛋糕", + "stageId": "act16side_ex08#f#", "tiles": [ [ { @@ -64,31 +64,10 @@ }, { "buildableType": 0, - "heightType": 1, + "heightType": 0, "isEnd": false, "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" + "tileKey": "tile_telout" }, { "buildableType": 0, @@ -120,6 +99,334 @@ } ], [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telout" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telin" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, { "buildableType": 0, "heightType": 0, @@ -134,6 +441,13 @@ "isStart": false, "tileKey": "tile_floor" }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, { "buildableType": 0, "heightType": 0, @@ -142,95 +456,18 @@ "tileKey": "tile_floor" }, { - "buildableType": 1, + "buildableType": 0, "heightType": 0, "isEnd": false, "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" + "tileKey": "tile_floor" }, { "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 3, "heightType": 0, "isEnd": false, - "isStart": false, - "tileKey": "tile_deepsea" - }, - { - "buildableType": 3, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_deepsea" - }, - { - "buildableType": 3, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_deepsea" - }, - { - "buildableType": 3, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_deepsea" - }, - { - "buildableType": 3, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_deepsea" - }, - { - "buildableType": 3, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_deepsea" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" + "isStart": true, + "tileKey": "tile_start" } ], [ @@ -241,13 +478,6 @@ "isStart": false, "tileKey": "tile_forbidden" }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, { "buildableType": 0, "heightType": 1, @@ -263,18 +493,11 @@ "tileKey": "tile_wall" }, { - "buildableType": 2, - "heightType": 1, + "buildableType": 0, + "heightType": 0, "isEnd": false, "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" + "tileKey": "tile_telin" }, { "buildableType": 1, @@ -290,6 +513,57 @@ "isStart": false, "tileKey": "tile_road" }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ { "buildableType": 0, "heightType": 0, @@ -297,64 +571,6 @@ "isStart": false, "tileKey": "tile_end" }, - { - "buildableType": 3, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_deepsea" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": true, - "tileKey": "tile_start" - } - ], - [ - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": true, - "tileKey": "tile_start" - }, { "buildableType": 0, "heightType": 0, @@ -383,20 +599,6 @@ "isStart": false, "tileKey": "tile_road" }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, { "buildableType": 2, "heightType": 1, @@ -425,320 +627,6 @@ "isStart": false, "tileKey": "tile_road" }, - { - "buildableType": 3, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_deepsea" - }, - { - "buildableType": 3, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_deepsea" - }, - { - "buildableType": 3, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_deepsea" - }, - { - "buildableType": 3, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_deepsea" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - } - ], - [ - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": true, - "tileKey": "tile_start" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 3, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_deepsea" - }, - { - "buildableType": 3, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_deepsea" - }, - { - "buildableType": 3, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_deepsea" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - } - ], - [ - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": true, - "tileKey": "tile_start" - } - ], - [ - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": true, - "tileKey": "tile_start" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, { "buildableType": 1, "heightType": 0, @@ -760,41 +648,6 @@ "isStart": false, "tileKey": "tile_end" }, - { - "buildableType": 3, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_deepsea" - }, - { - "buildableType": 3, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_deepsea" - }, - { - "buildableType": 3, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_deepsea" - }, - { - "buildableType": 3, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_deepsea" - }, - { - "buildableType": 3, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_deepsea" - }, { "buildableType": 0, "heightType": 1, @@ -888,27 +741,6 @@ "isStart": false, "tileKey": "tile_forbidden" }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, { "buildableType": 0, "heightType": 1, @@ -920,15 +752,15 @@ ], "view": [ [ - -2.0, + 0.0, -5.6, -8.9 ], [ - -1.2, + 0.79546878123568, -6.1, - -9.8 + -9.764789001808651 ] ], - "width": 16 -} + "width": 13 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act2bossrush_04-activities-act2bossrush-level_bossrush2_04.json b/resource/Arknights-Tile-Pos/act16side_ex08-activities-act16side-level_act16side_ex08.json similarity index 61% rename from resource/Arknights-Tile-Pos/act2bossrush_04-activities-act2bossrush-level_bossrush2_04.json rename to resource/Arknights-Tile-Pos/act16side_ex08-activities-act16side-level_act16side_ex08.json index 07ad6767ce..3ebc707306 100644 --- a/resource/Arknights-Tile-Pos/act2bossrush_04-activities-act2bossrush-level_bossrush2_04.json +++ b/resource/Arknights-Tile-Pos/act16side_ex08-activities-act16side-level_act16side_ex08.json @@ -1,9 +1,9 @@ { - "code": "TN-4", + "code": "GA-EX-8", "height": 8, - "levelId": "activities/act2bossrush/level_bossrush2_04", - "name": "骄阳之影", - "stageId": "act2bossrush_04", + "levelId": "activities/act16side/level_act16side_ex08", + "name": "千层蛋糕", + "stageId": "act16side_ex08", "tiles": [ [ { @@ -41,6 +41,27 @@ "isStart": false, "tileKey": "tile_forbidden" }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, { "buildableType": 0, "heightType": 0, @@ -75,7 +96,9 @@ "isEnd": false, "isStart": false, "tileKey": "tile_forbidden" - }, + } + ], + [ { "buildableType": 0, "heightType": 1, @@ -90,47 +113,61 @@ "isStart": false, "tileKey": "tile_forbidden" }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, { "buildableType": 0, "heightType": 0, "isEnd": false, "isStart": false, - "tileKey": "tile_telin" + "tileKey": "tile_floor" }, { - "buildableType": 0, + "buildableType": 2, "heightType": 1, "isEnd": false, "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": true, - "tileKey": "tile_start" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" + "tileKey": "tile_wall" }, { "buildableType": 0, @@ -162,54 +199,26 @@ "isStart": false, "tileKey": "tile_forbidden" }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, { "buildableType": 0, - "heightType": 0, + "heightType": 1, "isEnd": false, "isStart": false, - "tileKey": "tile_floor" + "tileKey": "tile_forbidden" }, { - "buildableType": 0, - "heightType": 0, + "buildableType": 2, + "heightType": 1, "isEnd": false, "isStart": false, - "tileKey": "tile_floor" + "tileKey": "tile_wall" }, { - "buildableType": 0, - "heightType": 0, + "buildableType": 2, + "heightType": 1, "isEnd": false, "isStart": false, - "tileKey": "tile_floor" + "tileKey": "tile_wall" }, { "buildableType": 1, @@ -219,46 +228,11 @@ "tileKey": "tile_road" }, { - "buildableType": 0, - "heightType": 0, + "buildableType": 2, + "heightType": 1, "isEnd": false, "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" + "tileKey": "tile_wall" }, { "buildableType": 0, @@ -267,6 +241,20 @@ "isStart": false, "tileKey": "tile_forbidden" }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, { "buildableType": 1, "heightType": 0, @@ -282,18 +270,11 @@ "tileKey": "tile_floor" }, { - "buildableType": 1, + "buildableType": 0, "heightType": 0, "isEnd": false, "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" + "tileKey": "tile_floor" }, { "buildableType": 0, @@ -304,211 +285,6 @@ } ], [ - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": true, - "tileKey": "tile_start" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_fence_bound" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - } - ], - [ - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_start" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, { "buildableType": 0, "heightType": 0, @@ -519,9 +295,16 @@ { "buildableType": 0, "heightType": 0, - "isEnd": true, + "isEnd": false, "isStart": false, - "tileKey": "tile_end" + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" }, { "buildableType": 1, @@ -530,34 +313,6 @@ "isStart": false, "tileKey": "tile_road" }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, { "buildableType": 1, "heightType": 0, @@ -565,6 +320,27 @@ "isStart": false, "tileKey": "tile_road" }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telin" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, { "buildableType": 0, "heightType": 0, @@ -572,20 +348,6 @@ "isStart": false, "tileKey": "tile_floor" }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, { "buildableType": 2, "heightType": 1, @@ -593,6 +355,20 @@ "isStart": false, "tileKey": "tile_wall" }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, { "buildableType": 0, "heightType": 1, @@ -602,6 +378,55 @@ } ], [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, { "buildableType": 0, "heightType": 0, @@ -625,38 +450,10 @@ }, { "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 1, "heightType": 0, "isEnd": false, "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" + "tileKey": "tile_floor" }, { "buildableType": 0, @@ -668,235 +465,9 @@ { "buildableType": 0, "heightType": 0, - "isEnd": true, - "isStart": false, - "tileKey": "tile_end" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - } - ], - [ - { - "buildableType": 0, - "heightType": 1, "isEnd": false, "isStart": true, - "tileKey": "tile_flystart" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" + "tileKey": "tile_start" } ], [ @@ -907,20 +478,6 @@ "isStart": false, "tileKey": "tile_forbidden" }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, - { - "buildableType": 2, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_wall" - }, { "buildableType": 0, "heightType": 1, @@ -929,46 +486,11 @@ "tileKey": "tile_forbidden" }, { - "buildableType": 0, - "heightType": 0, + "buildableType": 2, + "heightType": 1, "isEnd": false, "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 1, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_road" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" - }, - { - "buildableType": 0, - "heightType": 0, - "isEnd": false, - "isStart": false, - "tileKey": "tile_floor" + "tileKey": "tile_wall" }, { "buildableType": 0, @@ -985,11 +507,69 @@ "tileKey": "tile_road" }, { - "buildableType": 0, + "buildableType": 1, "heightType": 0, "isEnd": false, "isStart": false, - "tileKey": "tile_floor" + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" }, { "buildableType": 0, @@ -1006,25 +586,46 @@ "tileKey": "tile_road" }, { - "buildableType": 0, + "buildableType": 1, "heightType": 0, "isEnd": false, - "isStart": true, - "tileKey": "tile_start" + "isStart": false, + "tileKey": "tile_road" }, { - "buildableType": 0, + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, "heightType": 1, "isEnd": false, "isStart": false, - "tileKey": "tile_forbidden" + "tileKey": "tile_wall" }, { - "buildableType": 0, + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, "heightType": 0, "isEnd": false, "isStart": false, - "tileKey": "tile_floor" + "tileKey": "tile_road" }, { "buildableType": 1, @@ -1046,6 +647,13 @@ "isEnd": true, "isStart": false, "tileKey": "tile_end" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" } ], [ @@ -1133,62 +741,6 @@ "isStart": false, "tileKey": "tile_forbidden" }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, - { - "buildableType": 0, - "heightType": 1, - "isEnd": false, - "isStart": false, - "tileKey": "tile_forbidden" - }, { "buildableType": 0, "heightType": 1, @@ -1200,15 +752,15 @@ ], "view": [ [ - -4.5, + 0.0, -5.6, -8.9 ], [ - -3.73, - -6.07, - -9.75 + 0.79546878123568, + -6.1, + -9.764789001808651 ] ], - "width": 21 -} + "width": 13 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act16side_tr01-activities-act16side-level_act16side_tr01.json b/resource/Arknights-Tile-Pos/act16side_tr01-activities-act16side-level_act16side_tr01.json new file mode 100644 index 0000000000..7c94d3dcc9 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act16side_tr01-activities-act16side-level_act16side_tr01.json @@ -0,0 +1,477 @@ +{ + "code": "GA-TR-1", + "height": 7, + "levelId": "activities/act16side/level_act16side_tr01", + "name": "甜品时间", + "stageId": "act16side_tr01", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.08, + -8.02 + ], + [ + 0.6426583848887812, + -5.58, + -8.898158179157907 + ] + ], + "width": 9 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/mem_phenxi_1-obt-memory-level_memory_phenxi_1.json b/resource/Arknights-Tile-Pos/mem_phenxi_1-obt-memory-level_memory_phenxi_1.json new file mode 100644 index 0000000000..2ac192370f --- /dev/null +++ b/resource/Arknights-Tile-Pos/mem_phenxi_1-obt-memory-level_memory_phenxi_1.json @@ -0,0 +1,542 @@ +{ + "code": "mem_phenxi_1", + "height": 8, + "levelId": "obt/memory/level_memory_phenxi_1", + "name": "午后时光", + "stageId": "mem_phenxi_1", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_smog" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_smog" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -5.6, + -8.9 + ], + [ + 0.79546878123568, + -6.1, + -9.764789001808651 + ] + ], + "width": 9 +} \ No newline at end of file diff --git a/resource/item_index.json b/resource/item_index.json index 90a312a2a3..e1f981942d 100644 --- a/resource/item_index.json +++ b/resource/item_index.json @@ -1595,9 +1595,9 @@ "classifyType": "CONSUME", "description": "面对训练数据不足的问题,工程部生产了全新的芯片印刻仪以供干员们自行打印。", "icon": "itempack_mod_11.png", - "name": "术士芯片组印刻仪", + "name": "术师芯片组印刻仪", "sortId": -10000, - "usage": "一次性自助芯片印刻器械,存储了大量训练记录与材料,根据术士干员们的需求,可以轻松印刻出芯片组合。" + "usage": "一次性自助芯片印刻器械,存储了大量训练记录与材料,根据术师干员们的需求,可以轻松印刻出芯片组合。" }, "itempack_mod_12": { "classifyType": "CONSUME", From 115f3b4c68ca931a11378ea6a5804bc6a99b946e Mon Sep 17 00:00:00 2001 From: MistEO Date: Tue, 21 Feb 2023 21:15:10 +0800 Subject: [PATCH 024/100] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=9F=BA?= =?UTF-8?q?=E5=BB=BA=E5=AE=BF=E8=88=8D=E9=80=89=E6=8B=A9=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E8=AF=86=E5=88=AB=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/resource/tasks.json b/resource/tasks.json index f17cf50eab..6609118ea9 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -5311,17 +5311,17 @@ }, "InfrastOperSelected": { "template": "empty.png", - "templThreshold": 5000, + "templThreshold": 800, "templThreshold_Doc": "这个任务中作为符合range的像素点数量阈值", "maskRange": [ 95, 105 ], "rectMove": [ - 0, - -230, - 74, - 283 + -18, + -220, + 10, + 160 ] }, "InfrastOperOnShift": { From e40a9e7f8301c48578a4aaa0b18f4129d0c2993d Mon Sep 17 00:00:00 2001 From: MistEO Date: Tue, 21 Feb 2023 21:20:30 +0800 Subject: [PATCH 025/100] docs: update changelogs --- CHANGELOG.md | 42 ++++++++++++++---------------------------- 1 file changed, 14 insertions(+), 28 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab36a7d4b6..65fb26284c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ +## v4.11.0-beta.2 + +- 更新 `吾导先路` 活动关卡资源 @MistEO +- 优化 刷理智 主界面设置,更改为实时生效 @ABA2396 +- 修复 基建 宿舍复查识别错误 @MistEO +- 修复 macOS GUI 编队错误 @hguandl +- 修复 界面 托盘不显示的问题 @ABA2396 +- 迁移 文档 至官网 @ABA2396 + +### For overseas + +- Updated translation for YostarJP @wallsman + + ## v4.11.0-beta.1 - 重构 生息演算,支持黑市 npc 对话,支持刷粗制赤金 @WLLEGit @@ -13,31 +27,3 @@ - 修复 抄作业 神秘代码无法使用的问题 @zzyyyl - 修复 抄作业 干员名识别错误 @cenfusheng - 迁移 文档 至[官网](https://maa.plus/docs/),主仓库内不再更新 @ABA2396 - - -## v4.10.10 - -- 更新 `春分` 故事集 游戏数据 @MistEO - -## v4.10.9-rc.1 - -- 回滚 v4.10.8 版本 GUI 相关改动,后续修复后再次发布 @MistEO - -## v4.10.8-beta.1 - -- 新增 界面 保存最近连接端口号 @ABA2396 -- 新增 界面 公招识别 三星设置 7:40 @ABA2396 -- 重构 界面 调用方式 @ChingCdesu -- 优化 任务中途停止 等待时间 @ABA2396 -- 优化 保全派驻 上满核心后就不上工具人了 @MistEO -- 修复 保全派驻 第三层掉落卡住的问题 @MistEO -- 修复 检查更新 不应用代理设置的问题 @MistEO -- 修复 基建 会客室 不领取线索的问题 @Sed66666 -- 修复 界面 刷理智 相关下拉选项错误 @ABA2396 -- 修复 肉鸽 关卡超时撤退时的崩溃问题 @HerrCai0907 -- 修复 检测 ADB 时的崩溃问题 @ABA2396 -- 更新 文档 @ABA2396 - -For overseas - -- Added more template images for YostarJP @liuyifan-eric From 81e8e7318408863fed7ea351ee6c7d3e409c1a53 Mon Sep 17 00:00:00 2001 From: MistEO Date: Tue, 21 Feb 2023 21:23:40 +0800 Subject: [PATCH 026/100] docs: changelogs --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 65fb26284c..39315b5d26 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## v4.11.0-beta.2 -- 更新 `吾导先路` 活动关卡资源 @MistEO +- 更新 `吾导先路` 活动关卡资源、导航 @MistEO @ABA2396 - 优化 刷理智 主界面设置,更改为实时生效 @ABA2396 - 修复 基建 宿舍复查识别错误 @MistEO - 修复 macOS GUI 编队错误 @hguandl From d681bafeee3bc7c2f7fc9d74c2fc6b2729c80047 Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Wed, 22 Feb 2023 11:00:43 +0800 Subject: [PATCH 027/100] =?UTF-8?q?feat:=20=E7=AE=80=E6=98=93=E7=9A=84?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E8=A1=A8=E8=BE=BE=E5=BC=8F=E8=BF=90=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Config/TaskData.cpp | 495 ++++++++++++++++++++++++++------ src/MaaCore/Config/TaskData.h | 7 +- 2 files changed, 413 insertions(+), 89 deletions(-) diff --git a/src/MaaCore/Config/TaskData.cpp b/src/MaaCore/Config/TaskData.cpp index 27bfd6fa35..c3c15822a7 100644 --- a/src/MaaCore/Config/TaskData.cpp +++ b/src/MaaCore/Config/TaskData.cpp @@ -44,7 +44,7 @@ std::shared_ptr asst::TaskData::get(std::string_view name) return it->second; } - return expend_sharp_task(name, get_raw(name)).value_or(nullptr); + return expend_task(name, get_raw(name)).value_or(nullptr); } bool asst::TaskData::parse(const json::value& json) @@ -142,7 +142,7 @@ bool asst::TaskData::parse(const json::value& json) // 生成 # 型任务 for (const auto& [name, old_task] : m_raw_all_tasks_info) { - expend_sharp_task(name, old_task); + expend_task(name, old_task); } } @@ -197,97 +197,416 @@ bool asst::TaskData::parse(const json::value& json) return true; } -std::optional asst::TaskData::expend_sharp_task(std::string_view name, taskptr_t old_task) +std::optional asst::TaskData::perform_op(std::string_view task_name, + std::string_view subtask_name, char op, + tasklistptr_t x, tasklistptr_t y) +{ + auto ret = std::make_shared(); + + switch (op) { + case '+': + ranges::copy(*x, std::back_inserter(*ret)); + ranges::copy(*y, std::back_inserter(*ret)); + break; + case '^': + for (std::string_view sx : *x) { + bool flag = true; + for (std::string_view sy : *y) { + if (sx == sy) { + flag = false; + break; + } + } + if (flag) ret->emplace_back(sx); + } + break; + case '*': { + if (y->size() != 1) { + Log.error("There is more than one y:", *y, "while perform op", op, "in task:", subtask_name, + "of task:", task_name); + return std::nullopt; + } + int times = 0; + try { + times = std::stoi(y->front()); + } + catch (...) { + Log.error("y:", y->front(), "is not number while perform op", op, "in task:", subtask_name, + "of task:", task_name); + return std::nullopt; + } + for (int i = 0; i < times; ++i) { + ranges::copy(*x, std::back_inserter(*ret)); + } + break; + } + case '@': { + for (std::string_view s : *x) { + ranges::copy(append_prefix(*y, s), std::back_inserter(*ret)); + } + break; + } + case '#': { + if (x->size() != 1) { + // TODO: 这个限制可以去掉,例如 "(A+B)#next" 可以是 [ "A#next", "B#next" ] + Log.error("There is more than one x:", *x, "while perform op", op, "in task:", subtask_name, + "of task:", task_name); + return std::nullopt; + } + if (y->size() != 1) { + Log.error("There is more than one y:", *y, "while perform op", op, "in task:", subtask_name, + "of task:", task_name); + return std::nullopt; + } + std::string_view type = y->front(); + if (type == "self") { + ret->emplace_back(task_name); + break; + } + else if (type == "back") { + // "A#back" === "A", "B@A#back" === "B@A", "#back" === null + if (!x->front().empty()) { + ret->emplace_back(x->front()); + } + break; + } + + taskptr_t other_task_info_ptr = x->front().empty() ? default_task_info_ptr : get_raw(x->front()); + + // 都进 perform_op 了,task_change 必为 true +#define ASST_TASKDATA_PERFORM_OP_IF_BRANCH(t, m) \ + else if (type == #t) \ + { \ + bool task_changed = false; \ + std::unordered_set tasks_set {}; \ + if (!explain_tasks(*ret, other_task_info_ptr->t, task_name, task_changed, tasks_set, m)) { \ + Log.error("Explain task", x->front() + "->" #t, "failed while perform op", op, "in task:", subtask_name, \ + "of task:", task_name); \ + return std::nullopt; \ + } \ + } + if (other_task_info_ptr == nullptr) [[unlikely]] { + Log.error("Task", x->front(), "not found while perform op", op, "in task:", subtask_name, + "of task:", task_name); + return std::nullopt; + } + ASST_TASKDATA_PERFORM_OP_IF_BRANCH(next, false) + ASST_TASKDATA_PERFORM_OP_IF_BRANCH(sub, true) + ASST_TASKDATA_PERFORM_OP_IF_BRANCH(on_error_next, false) + ASST_TASKDATA_PERFORM_OP_IF_BRANCH(exceeded_next, false) + ASST_TASKDATA_PERFORM_OP_IF_BRANCH(reduce_other_times, true) + else [[unlikely]] + { + Log.error("Unknown sharp type", type, "while perform op", op, "in task:", subtask_name, + "of task:", task_name); + return std::nullopt; + } +#undef ASST_TASKDATA_PERFORM_OP_IF_BRANCH + break; + } + default: + Log.error("Unknown op", op, "in task:", subtask_name, "of task:", task_name); + return std::nullopt; + } + return ret; +} + +// new_tasks 是目的任务列表 +// raw_tasks 是源任务表达式列表 +// task_name 是任务名 +// task_changed 记录 raw_tasks 在转换为 new_tasks 时是否发生变化 +// tasks_set 记录任务列表中已有的任务(内容元素与 new_tasks 基本一致) +// multi 表示是否允许重复 +bool asst::TaskData::explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_tasks, std::string_view task_name, + bool& task_changed, [[maybe_unused]] std::unordered_set& tasks_set, + [[maybe_unused]] bool multi) +{ + for (std::string_view subtask_name : raw_tasks) { + if (subtask_name.empty()) { + task_changed = true; + continue; + } + if (tasks_set.contains(subtask_name) && !multi) { + task_changed = true; + continue; + } + // 记号表中预分配一些保留字 + std::vector symbols_table = { + "__END__", // 0 + ",", // 1 + "(", // 2 + ")", // 3 + "{", // 4 + "}", // 5 + "@", // 6 + "#", // 7 + "*", // 8 + "+", // 9 + "^", // 10 + "sub", // 11 + "next", // 12 + "on_error_next", // 13 + "exceeded_next", // 14 + "reduce_other_times", // 15 + "self", // 16 + "back", // 17 + "none", // 18 + }; + [[maybe_unused]] constexpr size_t symbl_end = 0; + [[maybe_unused]] constexpr size_t symbl_lambda_task_sep = 1; + [[maybe_unused]] constexpr size_t symbl_lparen = 2; + [[maybe_unused]] constexpr size_t symbl_rparen = 3; + [[maybe_unused]] constexpr size_t symbl_lbrace = 4; + [[maybe_unused]] constexpr size_t symbl_rbrace = 5; + [[maybe_unused]] constexpr size_t symbl_at = 6; + [[maybe_unused]] constexpr size_t symbl_sharp = 7; + [[maybe_unused]] constexpr size_t symbl_mul = 8; + [[maybe_unused]] constexpr size_t symbl_add = 9; + [[maybe_unused]] constexpr size_t symbl_sub = 10; + [[maybe_unused]] constexpr size_t symbl_name_start = 11; + [[maybe_unused]] constexpr size_t symbl_name_sub = 11; + [[maybe_unused]] constexpr size_t symbl_name_next = 12; + [[maybe_unused]] constexpr size_t symbl_name_on_error_next = 13; + [[maybe_unused]] constexpr size_t symbl_name_exceeded_next = 14; + [[maybe_unused]] constexpr size_t symbl_name_reduce_other_times = 15; + [[maybe_unused]] constexpr size_t symbl_name_self = 16; + [[maybe_unused]] constexpr size_t symbl_name_back = 17; + [[maybe_unused]] constexpr size_t symbl_name_none = 18; + + auto is_symbl_name = [&](size_t x) { + return x >= symbl_name_start; + }; + auto is_symbl_subtask_type = [&](size_t x) { + return x == symbl_name_sub || x == symbl_name_next || x == symbl_name_on_error_next || + x == symbl_name_exceeded_next || x == symbl_name_reduce_other_times; + }; + auto is_symbl_sharp_type = [&](size_t x) { + return is_symbl_subtask_type(x) || x == symbl_name_self || x == symbl_name_back || x == symbl_name_none; + }; + + std::unordered_map symbols_id = {}; + for (size_t i = 0; i != symbols_table.size(); ++i) { + symbols_id.emplace(symbols_table[i], i); + } + + std::vector symbol_stream; + auto emplace_symbol_if_not_empty = [&](const auto l, const auto r) { + if (l < r) { + auto symbol = std::string(l, r); + if (!symbols_id.contains(symbol)) { + size_t id = symbols_table.size(); + symbols_id.emplace(symbol, id); + symbols_table.emplace_back(symbol); + symbol_stream.emplace_back(id); + } + else { + symbol_stream.emplace_back(symbols_id[symbol]); + } + } + }; + + // 记号流分析 + auto y_begin = subtask_name.begin(); + for (auto p = subtask_name.begin(); p != subtask_name.end(); ++p) { + switch (*p) { + case ' ': + case ',': + case '(': + case ')': + case '{': + case '}': + case '#': + case '*': + case '+': + case '^': + task_changed = true; + [[fallthrough]]; + case '@': + emplace_symbol_if_not_empty(y_begin, p); + y_begin = p + 1; + if (*p != ' ') { + symbol_stream.emplace_back(symbols_id[std::string(1, *p)]); + } + } + } + emplace_symbol_if_not_empty(y_begin, subtask_name.end()); + symbol_stream.emplace_back(symbl_end); // 结束符 + // Log.debug(symbol_stream | views::transform([&](size_t id) { return symbols_table[id]; })); + // Log.debug(symbol_stream); + + /* + $name = 至少一位的任务名 + $numbers = 至少一位的数字 + + $subtask_type = sub + | next + | on_error_next + | exceeded_next + | reduce_other_times + + $sharp_type = $subtask_type + | self + | back + | none // 推迟实现 3 + + $subtask = $subtask_type ( $tasks ) + + $lambda_task = { $subtask , ... } // 推迟实现 1 + | { $tasks } // 推迟实现 1;不写 subtask_type 默认为 sub + + $parens = # $sharp_type + | $name + | $name $lambda_task // 推迟实现 1 + | ( $tasks ) + + $top_tasks = $top_tasks @ $parens // 推迟实现 2 + | $top_tasks # $sharp_type + | $parens + + $mul_tasks = $top_tasks * $numbers + | $top_tasks + + $tasks = $mul_tasks + $tasks + | $mul_tasks ^ $tasks // 删除 $mul_tasks 中所有在 $tasks 中的任务 + | $mul_tasks + */ + // 记号流处理 + using decode_func_t = std::function()>; + decode_func_t decode_name, decode_tasks, decode_multasks, decode_vtasks, decode_parens; + std::vector::const_iterator cur = symbol_stream.cbegin(); + decode_name = [&]() -> std::optional { + if (*cur >= symbl_name_start) { + return std::make_shared(tasklist_t { symbols_table[*(cur++)] }); + } + return std::nullopt; + }; + decode_tasks = [&]() -> std::optional { + auto l = decode_multasks(); + if (!l) return std::nullopt; + while (*cur == symbl_add || *cur == symbl_sub) { + if (*cur == symbl_add) { + ++cur; + auto r = decode_multasks(); + if (!r) return std::nullopt; + l = perform_op(task_name, subtask_name, '+', *l, *r); + } + if (*cur == symbl_sub) { + ++cur; + auto r = decode_multasks(); + if (!r) return std::nullopt; + l = perform_op(task_name, subtask_name, '^', *l, *r); + } + if (!l) return std::nullopt; + } + return l; + }; + decode_multasks = [&]() -> std::optional { + auto l = decode_vtasks(); + if (!l) return std::nullopt; + while (*cur == symbl_mul) { + if (*cur == symbl_mul) { + ++cur; + auto r = decode_name(); + if (!r) return std::nullopt; + l = perform_op(task_name, subtask_name, '*', *l, *r); + } + if (!l) return std::nullopt; + } + return l; + }; + decode_vtasks = [&]() -> std::optional { + auto l = decode_parens(); + if (!l) return std::nullopt; + while (*cur == symbl_at || *cur == symbl_sharp) { + if (*cur == symbl_at) { + ++cur; + auto r = decode_parens(); + if (!r) return std::nullopt; + l = perform_op(task_name, subtask_name, '@', *l, *r); + } + if (*cur == symbl_sharp) { + ++cur; + auto r = decode_name(); + if (!r) return std::nullopt; + l = perform_op(task_name, subtask_name, '#', *l, *r); + } + if (!l) return std::nullopt; + } + return l; + }; + decode_parens = [&]() -> std::optional { + if (*cur == symbl_lparen) { + ++cur; + auto l = decode_tasks(); + if (!l) return std::nullopt; + if (*cur != symbl_rparen) { + Log.error("Invalid symbol", *cur, "at", cur - symbol_stream.cbegin(), "in", symbol_stream, "(should be ')')"); + return std::nullopt; + } + ++cur; + return l; + } + if (*cur == symbl_sharp) { + ++cur; + auto r = decode_name(); + if (!r) return std::nullopt; + return perform_op(task_name, subtask_name, '#', std::make_shared(tasklist_t { "" }), *r); + } + if (*cur >= symbl_name_start) { + return decode_name(); + } + Log.error("Invalid symbol", *cur, "at", cur - symbol_stream.cbegin(), "in", symbol_stream); + return std::nullopt; + }; + auto opt = decode_tasks(); + if (!opt || (*cur != symbl_end && cur != symbol_stream.cend())) { + return false; + } + + if (opt.value()->empty()) continue; + + for (const auto& task : **opt) { + if (task.empty()) { + task_changed = true; + continue; + } + if (!tasks_set.contains(task)) { + tasks_set.emplace(task_name_view(task)); + } + else if (!multi) { + task_changed = true; + continue; + } + new_tasks.emplace_back(task); + } + + tasks_set.emplace(task_name_view(subtask_name)); + } + + return true; +} + +std::optional asst::TaskData::expend_task(std::string_view name, taskptr_t old_task) { if (old_task == nullptr) [[unlikely]] { return std::nullopt; } - bool task_changed = false; - auto task_info = _generate_task_info(old_task); - auto expend_sharp_task_list = [&](tasklist_t& new_task_list, const tasklist_t& task_list, - std::string_view list_type) -> bool { - new_task_list.clear(); - std::function generate_tasks; - std::unordered_set tasks_set {}; - generate_tasks = [&](const tasklist_t& raw_tasks) { - for (std::string_view task : raw_tasks) { - if (task.empty()) { - Log.error("Task", name, "has a empty", list_type); - return false; - } - if (tasks_set.contains(task)) [[unlikely]] { - task_changed = true; - continue; - } - tasks_set.emplace(task_name_view(task)); - - size_t pos = task.rfind('#'); - if (pos == std::string_view::npos) [[likely]] { - new_task_list.emplace_back(task); - continue; - } -#ifdef ASST_DEBUG - if (pos == 0) [[unlikely]] { - Log.trace("Task", name, "has a virtual", list_type, ":", (std::string("`") += task) += '`'); - } -#endif // ASST_DEBUG - - task_changed = true; - std::string_view type = task.substr(pos + 1); - if (type == "self") { - new_task_list.emplace_back(name); - continue; - } - taskptr_t other_task_info_ptr = pos ? get_raw(task.substr(0, pos)) : default_task_info_ptr; -#define ASST_TASKDATA_GENERATE_TASKS(t) \ - else if (type == #t) \ - { \ - if (!generate_tasks(other_task_info_ptr->t)) { \ - return false; \ - } \ + auto task_info = _generate_task_info(old_task); // 复制一份 + bool task_changed = false; // 任务列表是否发生变化 + std::unordered_set tasks_set {}; +#define ASST_TASKDATA_EXPEND_TASK_IF_BRANCH(type, m) \ + task_info->type.clear(); \ + tasks_set.clear(); \ + if (!explain_tasks(task_info->type, old_task->type, name, task_changed, tasks_set, m)) [[unlikely]] { \ + Log.error("Generate task_list", std::string(name) + "->" #type, "failed."); \ + return std::nullopt; \ } - if (other_task_info_ptr == nullptr) [[unlikely]] { - Log.error("Task", task, "not found"); - return false; - } - else if (type == "back") { - // "A#back" === "A", "B@A#back" === "B@A", "#back" === null - if (pos) { - new_task_list.emplace_back(task.substr(0, pos)); - } - } - ASST_TASKDATA_GENERATE_TASKS(next) - ASST_TASKDATA_GENERATE_TASKS(sub) - ASST_TASKDATA_GENERATE_TASKS(on_error_next) - ASST_TASKDATA_GENERATE_TASKS(exceeded_next) - ASST_TASKDATA_GENERATE_TASKS(reduce_other_times) - else [[unlikely]] - { - Log.error("Unknown type", type, "in", task); - return false; - } -#undef ASST_TASKDATA_GENERATE_TASKS - } - - return true; - }; - if (!generate_tasks(task_list)) [[unlikely]] { - Log.error("Generate task_list", (std::string(name) += "->") += list_type, "failed."); - return false; - } - return true; - }; - -#define ASST_TASKDATA_GENERATE_SHARP_TASK(type) \ - if (!expend_sharp_task_list(task_info->type, old_task->type, #type)) { \ - return std::nullopt; \ - } - ASST_TASKDATA_GENERATE_SHARP_TASK(next); - ASST_TASKDATA_GENERATE_SHARP_TASK(sub); - ASST_TASKDATA_GENERATE_SHARP_TASK(exceeded_next); - ASST_TASKDATA_GENERATE_SHARP_TASK(on_error_next); - ASST_TASKDATA_GENERATE_SHARP_TASK(reduce_other_times); -#undef ASST_TASKDATA_GENERATE_SHARP_TASK + ASST_TASKDATA_EXPEND_TASK_IF_BRANCH(next, false); + ASST_TASKDATA_EXPEND_TASK_IF_BRANCH(sub, true); + ASST_TASKDATA_EXPEND_TASK_IF_BRANCH(exceeded_next, false); + ASST_TASKDATA_EXPEND_TASK_IF_BRANCH(on_error_next, false); + ASST_TASKDATA_EXPEND_TASK_IF_BRANCH(reduce_other_times, true); +#undef ASST_TASKDATA_EXPEND_TASK_IF_BRANCH // tasks 个数超过上限时不再 emplace,返回临时值 constexpr size_t MAX_TASKS_SIZE = 65535; diff --git a/src/MaaCore/Config/TaskData.h b/src/MaaCore/Config/TaskData.h index ebfc884f0d..f678465304 100644 --- a/src/MaaCore/Config/TaskData.h +++ b/src/MaaCore/Config/TaskData.h @@ -17,6 +17,7 @@ namespace asst { private: using tasklist_t = std::vector; + using tasklistptr_t = std::shared_ptr; using taskptr_t = std::shared_ptr; std::shared_ptr _default_match_task_info(); @@ -141,7 +142,11 @@ namespace asst { return m_all_tasks_info.insert_or_assign(task_name_view(task_name), task_info_ptr); } - std::optional expend_sharp_task(std::string_view name, taskptr_t old_task); + std::optional perform_op(std::string_view task_name, std::string_view subtask_name, char op, + tasklistptr_t x, tasklistptr_t y); + bool explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_tasks, std::string_view name, + bool& task_changed, std::unordered_set& tasks_set, bool multi); + std::optional expend_task(std::string_view name, taskptr_t old_task); #ifdef ASST_DEBUG bool syntax_check(const std::string& task_name, const json::value& task_json); #endif From 2478aef08305d3ca92b6fe375e100b4279243da9 Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Tue, 21 Feb 2023 12:16:27 +0800 Subject: [PATCH 028/100] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E8=99=9A=E4=BB=BB=E5=8A=A1=20#none?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 例: ``` "A": { "next": [ "#none+B" ] } ``` 这个任务在增加前缀(如 `"D@A"`)时 next 不变。 --- src/MaaCore/Config/TaskData.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/MaaCore/Config/TaskData.cpp b/src/MaaCore/Config/TaskData.cpp index c3c15822a7..d19842c5f9 100644 --- a/src/MaaCore/Config/TaskData.cpp +++ b/src/MaaCore/Config/TaskData.cpp @@ -263,7 +263,10 @@ std::optional asst::TaskData::perform_op(std::str ret->emplace_back(task_name); break; } - else if (type == "back") { + if (type == "none") { + break; + } + if (type == "back") { // "A#back" === "A", "B@A#back" === "B@A", "#back" === null if (!x->front().empty()) { ret->emplace_back(x->front()); @@ -447,19 +450,19 @@ bool asst::TaskData::explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_ $sharp_type = $subtask_type | self | back - | none // 推迟实现 3 + | none $subtask = $subtask_type ( $tasks ) - $lambda_task = { $subtask , ... } // 推迟实现 1 - | { $tasks } // 推迟实现 1;不写 subtask_type 默认为 sub + $lambda_task = { $subtask , ... } // 推迟实现 + | { $tasks } // 推迟实现;不写 subtask_type 默认为 sub $parens = # $sharp_type | $name - | $name $lambda_task // 推迟实现 1 + | $name $lambda_task // 推迟实现 | ( $tasks ) - $top_tasks = $top_tasks @ $parens // 推迟实现 2 + $top_tasks = $top_tasks @ $parens | $top_tasks # $sharp_type | $parens From e6dbaa955c28a0ec502a05983c20d53c945864b9 Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Wed, 22 Feb 2023 10:58:21 +0800 Subject: [PATCH 029/100] =?UTF-8?q?perf:=20=E7=BB=93=E6=9E=84=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Config/TaskData.cpp | 444 +++++++++++++++----------------- src/MaaCore/Config/TaskData.h | 4 +- 2 files changed, 206 insertions(+), 242 deletions(-) diff --git a/src/MaaCore/Config/TaskData.cpp b/src/MaaCore/Config/TaskData.cpp index d19842c5f9..042115a08e 100644 --- a/src/MaaCore/Config/TaskData.cpp +++ b/src/MaaCore/Config/TaskData.cpp @@ -197,207 +197,200 @@ bool asst::TaskData::parse(const json::value& json) return true; } -std::optional asst::TaskData::perform_op(std::string_view task_name, - std::string_view subtask_name, char op, - tasklistptr_t x, tasklistptr_t y) -{ - auto ret = std::make_shared(); - - switch (op) { - case '+': - ranges::copy(*x, std::back_inserter(*ret)); - ranges::copy(*y, std::back_inserter(*ret)); - break; - case '^': - for (std::string_view sx : *x) { - bool flag = true; - for (std::string_view sy : *y) { - if (sx == sy) { - flag = false; - break; - } - } - if (flag) ret->emplace_back(sx); - } - break; - case '*': { - if (y->size() != 1) { - Log.error("There is more than one y:", *y, "while perform op", op, "in task:", subtask_name, - "of task:", task_name); - return std::nullopt; - } - int times = 0; - try { - times = std::stoi(y->front()); - } - catch (...) { - Log.error("y:", y->front(), "is not number while perform op", op, "in task:", subtask_name, - "of task:", task_name); - return std::nullopt; - } - for (int i = 0; i < times; ++i) { - ranges::copy(*x, std::back_inserter(*ret)); - } - break; - } - case '@': { - for (std::string_view s : *x) { - ranges::copy(append_prefix(*y, s), std::back_inserter(*ret)); - } - break; - } - case '#': { - if (x->size() != 1) { - // TODO: 这个限制可以去掉,例如 "(A+B)#next" 可以是 [ "A#next", "B#next" ] - Log.error("There is more than one x:", *x, "while perform op", op, "in task:", subtask_name, - "of task:", task_name); - return std::nullopt; - } - if (y->size() != 1) { - Log.error("There is more than one y:", *y, "while perform op", op, "in task:", subtask_name, - "of task:", task_name); - return std::nullopt; - } - std::string_view type = y->front(); - if (type == "self") { - ret->emplace_back(task_name); - break; - } - if (type == "none") { - break; - } - if (type == "back") { - // "A#back" === "A", "B@A#back" === "B@A", "#back" === null - if (!x->front().empty()) { - ret->emplace_back(x->front()); - } - break; - } - - taskptr_t other_task_info_ptr = x->front().empty() ? default_task_info_ptr : get_raw(x->front()); - - // 都进 perform_op 了,task_change 必为 true -#define ASST_TASKDATA_PERFORM_OP_IF_BRANCH(t, m) \ - else if (type == #t) \ - { \ - bool task_changed = false; \ - std::unordered_set tasks_set {}; \ - if (!explain_tasks(*ret, other_task_info_ptr->t, task_name, task_changed, tasks_set, m)) { \ - Log.error("Explain task", x->front() + "->" #t, "failed while perform op", op, "in task:", subtask_name, \ - "of task:", task_name); \ - return std::nullopt; \ - } \ - } - if (other_task_info_ptr == nullptr) [[unlikely]] { - Log.error("Task", x->front(), "not found while perform op", op, "in task:", subtask_name, - "of task:", task_name); - return std::nullopt; - } - ASST_TASKDATA_PERFORM_OP_IF_BRANCH(next, false) - ASST_TASKDATA_PERFORM_OP_IF_BRANCH(sub, true) - ASST_TASKDATA_PERFORM_OP_IF_BRANCH(on_error_next, false) - ASST_TASKDATA_PERFORM_OP_IF_BRANCH(exceeded_next, false) - ASST_TASKDATA_PERFORM_OP_IF_BRANCH(reduce_other_times, true) - else [[unlikely]] - { - Log.error("Unknown sharp type", type, "while perform op", op, "in task:", subtask_name, - "of task:", task_name); - return std::nullopt; - } -#undef ASST_TASKDATA_PERFORM_OP_IF_BRANCH - break; - } - default: - Log.error("Unknown op", op, "in task:", subtask_name, "of task:", task_name); - return std::nullopt; - } - return ret; -} - // new_tasks 是目的任务列表 // raw_tasks 是源任务表达式列表 // task_name 是任务名 // task_changed 记录 raw_tasks 在转换为 new_tasks 时是否发生变化 -// tasks_set 记录任务列表中已有的任务(内容元素与 new_tasks 基本一致) // multi 表示是否允许重复 bool asst::TaskData::explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_tasks, std::string_view task_name, - bool& task_changed, [[maybe_unused]] std::unordered_set& tasks_set, - [[maybe_unused]] bool multi) + bool& task_changed, bool multi) { - for (std::string_view subtask_name : raw_tasks) { - if (subtask_name.empty()) { + std::unordered_set tasks_set; // 记录任务列表中已有的任务(内容元素与 new_tasks 基本一致) + + using symbl_t = size_t; + [[maybe_unused]] constexpr symbl_t symbl_end = 0; + [[maybe_unused]] constexpr symbl_t symbl_lambda_task_sep = 1; + [[maybe_unused]] constexpr symbl_t symbl_lparen = 2; + [[maybe_unused]] constexpr symbl_t symbl_rparen = 3; + [[maybe_unused]] constexpr symbl_t symbl_lbrace = 4; + [[maybe_unused]] constexpr symbl_t symbl_rbrace = 5; + [[maybe_unused]] constexpr symbl_t symbl_at = 6; + [[maybe_unused]] constexpr symbl_t symbl_sharp = 7; + [[maybe_unused]] constexpr symbl_t symbl_mul = 8; + [[maybe_unused]] constexpr symbl_t symbl_add = 9; + [[maybe_unused]] constexpr symbl_t symbl_sub = 10; + + [[maybe_unused]] constexpr symbl_t symbl_name_start = 11; + + [[maybe_unused]] constexpr symbl_t symbl_name_sub = 11; + [[maybe_unused]] constexpr symbl_t symbl_name_next = 12; + [[maybe_unused]] constexpr symbl_t symbl_name_on_error_next = 13; + [[maybe_unused]] constexpr symbl_t symbl_name_exceeded_next = 14; + [[maybe_unused]] constexpr symbl_t symbl_name_reduce_other_times = 15; + [[maybe_unused]] constexpr symbl_t symbl_name_self = 16; + [[maybe_unused]] constexpr symbl_t symbl_name_back = 17; + [[maybe_unused]] constexpr symbl_t symbl_name_none = 18; + + static const std::vector symbl_table = { + "__END__", // 0 + ",", // 1 + "(", // 2 + ")", // 3 + "{", // 4 + "}", // 5 + "@", // 6 + "#", // 7 + "*", // 8 + "+", // 9 + "^", // 10 + "sub", // 11 + "next", // 12 + "on_error_next", // 13 + "exceeded_next", // 14 + "reduce_other_times", // 15 + "self", // 16 + "back", // 17 + "none", // 18 + }; + + auto is_symbl_name = [&](symbl_t x) { return x >= symbl_name_start; }; + auto is_symbl_subtask_type = [&](symbl_t x) { + return x == symbl_name_sub || x == symbl_name_next || x == symbl_name_on_error_next || + x == symbl_name_exceeded_next || x == symbl_name_reduce_other_times; + }; + auto is_symbl_sharp_type = [&](symbl_t x) { + return is_symbl_subtask_type(x) || x == symbl_name_self || x == symbl_name_back || x == symbl_name_none; + }; + + auto perform_op = [&](std::string_view task_expr, symbl_t op, tasklistptr_t x, + tasklistptr_t y) -> std::optional { + auto ret = std::make_shared(); + + switch (op) { + case symbl_add: + ranges::copy(*x, std::back_inserter(*ret)); + ranges::copy(*y, std::back_inserter(*ret)); + break; + case symbl_sub: + for (std::string_view sx : *x) { + bool flag = true; + for (std::string_view sy : *y) { + if (sx == sy) { + flag = false; + break; + } + } + if (flag) ret->emplace_back(sx); + } + break; + case symbl_mul: { + if (y->size() != 1) { + Log.error("There is more than one y:", *y, "while perform op", symbl_table[op], "in", task_expr, + "of task:", task_name); + return std::nullopt; + } + int times = 0; + try { + times = std::stoi(y->front()); + } + catch (...) { + Log.error("y:", y->front(), "is not number while perform op", symbl_table[op], "in", task_expr, + "of task:", task_name); + return std::nullopt; + } + for (int i = 0; i < times; ++i) { + ranges::copy(*x, std::back_inserter(*ret)); + } + break; + } + case symbl_at: { + for (std::string_view s : *x) { + ranges::copy(append_prefix(*y, s), std::back_inserter(*ret)); + } + break; + } + case symbl_sharp: { + if (y->size() != 1) { + Log.error("There is more than one y:", *y, "while perform op", symbl_table[op], "in", task_expr, + "of task:", task_name); + return std::nullopt; + } + std::string_view type = y->front(); + if (!x || x->empty()) { + x = std::make_shared(tasklist_t { "" }); + } + for (const auto& task : *x) { + if (type == "self") { + ret->emplace_back(task_name); + continue; + } + if (type == "none") { + continue; + } + if (type == "back") { + // "A#back" === "A", "B@A#back" === "B@A", "#back" === null + if (!task.empty()) ret->emplace_back(task); + continue; + } + taskptr_t other_task_info_ptr = task.empty() ? default_task_info_ptr : get_raw(task); + +#define ASST_TASKDATA_PERFORM_OP_IF_BRANCH(t, m) \ + else if (type == #t) \ + { \ + bool task_changed = false; \ + if (!explain_tasks(*ret, other_task_info_ptr->t, task_name, task_changed, m)) { \ + Log.error("Failed to explain task", task + "->" #t, "while perform op", symbl_table[op], "in", task_expr, \ + "of task:", task_name); \ + return std::nullopt; \ + } \ + } + if (other_task_info_ptr == nullptr) [[unlikely]] { + Log.error("Task", task, "not found while perform op", symbl_table[op], "in", task_expr, + "of task:", task_name); + return std::nullopt; + } + ASST_TASKDATA_PERFORM_OP_IF_BRANCH(next, false) + ASST_TASKDATA_PERFORM_OP_IF_BRANCH(sub, true) + ASST_TASKDATA_PERFORM_OP_IF_BRANCH(on_error_next, false) + ASST_TASKDATA_PERFORM_OP_IF_BRANCH(exceeded_next, false) + ASST_TASKDATA_PERFORM_OP_IF_BRANCH(reduce_other_times, true) + else [[unlikely]] + { + Log.error("Unknown symbol", type, "while perform op", symbl_table[op], "in", task_expr, + "of task:", task_name); + return std::nullopt; + } +#undef ASST_TASKDATA_PERFORM_OP_IF_BRANCH + } + + break; + } + default: + Log.error("Unknown op", symbl_table[op], "in", task_expr, "of task:", task_name); + return std::nullopt; + } + return ret; + }; + + for (std::string_view task_expr : raw_tasks) { + if (task_expr.empty() || (!multi && tasks_set.contains(task_expr))) { task_changed = true; continue; } - if (tasks_set.contains(subtask_name) && !multi) { - task_changed = true; - continue; - } - // 记号表中预分配一些保留字 - std::vector symbols_table = { - "__END__", // 0 - ",", // 1 - "(", // 2 - ")", // 3 - "{", // 4 - "}", // 5 - "@", // 6 - "#", // 7 - "*", // 8 - "+", // 9 - "^", // 10 - "sub", // 11 - "next", // 12 - "on_error_next", // 13 - "exceeded_next", // 14 - "reduce_other_times", // 15 - "self", // 16 - "back", // 17 - "none", // 18 - }; - [[maybe_unused]] constexpr size_t symbl_end = 0; - [[maybe_unused]] constexpr size_t symbl_lambda_task_sep = 1; - [[maybe_unused]] constexpr size_t symbl_lparen = 2; - [[maybe_unused]] constexpr size_t symbl_rparen = 3; - [[maybe_unused]] constexpr size_t symbl_lbrace = 4; - [[maybe_unused]] constexpr size_t symbl_rbrace = 5; - [[maybe_unused]] constexpr size_t symbl_at = 6; - [[maybe_unused]] constexpr size_t symbl_sharp = 7; - [[maybe_unused]] constexpr size_t symbl_mul = 8; - [[maybe_unused]] constexpr size_t symbl_add = 9; - [[maybe_unused]] constexpr size_t symbl_sub = 10; - [[maybe_unused]] constexpr size_t symbl_name_start = 11; - [[maybe_unused]] constexpr size_t symbl_name_sub = 11; - [[maybe_unused]] constexpr size_t symbl_name_next = 12; - [[maybe_unused]] constexpr size_t symbl_name_on_error_next = 13; - [[maybe_unused]] constexpr size_t symbl_name_exceeded_next = 14; - [[maybe_unused]] constexpr size_t symbl_name_reduce_other_times = 15; - [[maybe_unused]] constexpr size_t symbl_name_self = 16; - [[maybe_unused]] constexpr size_t symbl_name_back = 17; - [[maybe_unused]] constexpr size_t symbl_name_none = 18; - auto is_symbl_name = [&](size_t x) { - return x >= symbl_name_start; - }; - auto is_symbl_subtask_type = [&](size_t x) { - return x == symbl_name_sub || x == symbl_name_next || x == symbl_name_on_error_next || - x == symbl_name_exceeded_next || x == symbl_name_reduce_other_times; - }; - auto is_symbl_sharp_type = [&](size_t x) { - return is_symbl_subtask_type(x) || x == symbl_name_self || x == symbl_name_back || x == symbl_name_none; - }; + std::vector symbols_table = symbl_table; - std::unordered_map symbols_id = {}; - for (size_t i = 0; i != symbols_table.size(); ++i) { + std::unordered_map symbols_id = {}; + for (symbl_t i = 0; i != symbols_table.size(); ++i) { symbols_id.emplace(symbols_table[i], i); } - std::vector symbol_stream; + std::vector symbol_stream; auto emplace_symbol_if_not_empty = [&](const auto l, const auto r) { if (l < r) { auto symbol = std::string(l, r); if (!symbols_id.contains(symbol)) { - size_t id = symbols_table.size(); + symbl_t id = symbols_table.size(); symbols_id.emplace(symbol, id); symbols_table.emplace_back(symbol); symbol_stream.emplace_back(id); @@ -409,8 +402,8 @@ bool asst::TaskData::explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_ }; // 记号流分析 - auto y_begin = subtask_name.begin(); - for (auto p = subtask_name.begin(); p != subtask_name.end(); ++p) { + auto y_begin = task_expr.begin(); + for (auto p = task_expr.begin(); p != task_expr.end(); ++p) { switch (*p) { case ' ': case ',': @@ -432,9 +425,9 @@ bool asst::TaskData::explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_ } } } - emplace_symbol_if_not_empty(y_begin, subtask_name.end()); + emplace_symbol_if_not_empty(y_begin, task_expr.end()); symbol_stream.emplace_back(symbl_end); // 结束符 - // Log.debug(symbol_stream | views::transform([&](size_t id) { return symbols_table[id]; })); + // Log.debug(symbol_stream | views::transform([&](symbl_t id) { return symbols_table[id]; })); // Log.debug(symbol_stream); /* @@ -474,9 +467,9 @@ bool asst::TaskData::explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_ | $mul_tasks */ // 记号流处理 + auto cur = symbol_stream.cbegin(); using decode_func_t = std::function()>; decode_func_t decode_name, decode_tasks, decode_multasks, decode_vtasks, decode_parens; - std::vector::const_iterator cur = symbol_stream.cbegin(); decode_name = [&]() -> std::optional { if (*cur >= symbl_name_start) { return std::make_shared(tasklist_t { symbols_table[*(cur++)] }); @@ -487,18 +480,10 @@ bool asst::TaskData::explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_ auto l = decode_multasks(); if (!l) return std::nullopt; while (*cur == symbl_add || *cur == symbl_sub) { - if (*cur == symbl_add) { - ++cur; - auto r = decode_multasks(); - if (!r) return std::nullopt; - l = perform_op(task_name, subtask_name, '+', *l, *r); - } - if (*cur == symbl_sub) { - ++cur; - auto r = decode_multasks(); - if (!r) return std::nullopt; - l = perform_op(task_name, subtask_name, '^', *l, *r); - } + symbl_t op = *(cur++); + auto r = decode_multasks(); + if (!r) return std::nullopt; + l = perform_op(task_expr, op, *l, *r); if (!l) return std::nullopt; } return l; @@ -507,12 +492,10 @@ bool asst::TaskData::explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_ auto l = decode_vtasks(); if (!l) return std::nullopt; while (*cur == symbl_mul) { - if (*cur == symbl_mul) { - ++cur; - auto r = decode_name(); - if (!r) return std::nullopt; - l = perform_op(task_name, subtask_name, '*', *l, *r); - } + symbl_t op = *(cur++); + auto r = decode_name(); + if (!r) return std::nullopt; + l = perform_op(task_expr, op, *l, *r); if (!l) return std::nullopt; } return l; @@ -521,18 +504,10 @@ bool asst::TaskData::explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_ auto l = decode_parens(); if (!l) return std::nullopt; while (*cur == symbl_at || *cur == symbl_sharp) { - if (*cur == symbl_at) { - ++cur; - auto r = decode_parens(); - if (!r) return std::nullopt; - l = perform_op(task_name, subtask_name, '@', *l, *r); - } - if (*cur == symbl_sharp) { - ++cur; - auto r = decode_name(); - if (!r) return std::nullopt; - l = perform_op(task_name, subtask_name, '#', *l, *r); - } + symbl_t op = *(cur++); + auto r = decode_parens(); + if (!r) return std::nullopt; + l = perform_op(task_expr, op, *l, *r); if (!l) return std::nullopt; } return l; @@ -542,8 +517,9 @@ bool asst::TaskData::explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_ ++cur; auto l = decode_tasks(); if (!l) return std::nullopt; - if (*cur != symbl_rparen) { - Log.error("Invalid symbol", *cur, "at", cur - symbol_stream.cbegin(), "in", symbol_stream, "(should be ')')"); + if (*cur != symbl_rparen) [[unlikely]] { + Log.error("Invalid symbol", *cur, "at", cur - symbol_stream.cbegin(), "in", symbol_stream, + "(should be ')')"); return std::nullopt; } ++cur; @@ -553,7 +529,7 @@ bool asst::TaskData::explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_ ++cur; auto r = decode_name(); if (!r) return std::nullopt; - return perform_op(task_name, subtask_name, '#', std::make_shared(tasklist_t { "" }), *r); + return perform_op(task_expr, symbl_sharp, nullptr, *r); } if (*cur >= symbl_name_start) { return decode_name(); @@ -566,24 +542,16 @@ bool asst::TaskData::explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_ return false; } - if (opt.value()->empty()) continue; - for (const auto& task : **opt) { - if (task.empty()) { - task_changed = true; - continue; - } - if (!tasks_set.contains(task)) { - tasks_set.emplace(task_name_view(task)); - } - else if (!multi) { + if (task.empty() || (!multi && tasks_set.contains(task))) { task_changed = true; continue; } new_tasks.emplace_back(task); + tasks_set.emplace(task_name_view(task)); } - tasks_set.emplace(task_name_view(subtask_name)); + tasks_set.emplace(task_name_view(task_expr)); } return true; @@ -595,14 +563,12 @@ std::optional asst::TaskData::expend_task(std::string return std::nullopt; } auto task_info = _generate_task_info(old_task); // 复制一份 - bool task_changed = false; // 任务列表是否发生变化 - std::unordered_set tasks_set {}; -#define ASST_TASKDATA_EXPEND_TASK_IF_BRANCH(type, m) \ - task_info->type.clear(); \ - tasks_set.clear(); \ - if (!explain_tasks(task_info->type, old_task->type, name, task_changed, tasks_set, m)) [[unlikely]] { \ - Log.error("Generate task_list", std::string(name) + "->" #type, "failed."); \ - return std::nullopt; \ + bool task_changed = false; // 任务列表是否发生变化 +#define ASST_TASKDATA_EXPEND_TASK_IF_BRANCH(type, m) \ + task_info->type.clear(); \ + if (!explain_tasks(task_info->type, old_task->type, name, task_changed, m)) [[unlikely]] { \ + Log.error("Generate task_list", std::string(name) + "->" #type, "failed."); \ + return std::nullopt; \ } ASST_TASKDATA_EXPEND_TASK_IF_BRANCH(next, false); ASST_TASKDATA_EXPEND_TASK_IF_BRANCH(sub, true); diff --git a/src/MaaCore/Config/TaskData.h b/src/MaaCore/Config/TaskData.h index f678465304..424c5752ae 100644 --- a/src/MaaCore/Config/TaskData.h +++ b/src/MaaCore/Config/TaskData.h @@ -142,10 +142,8 @@ namespace asst { return m_all_tasks_info.insert_or_assign(task_name_view(task_name), task_info_ptr); } - std::optional perform_op(std::string_view task_name, std::string_view subtask_name, char op, - tasklistptr_t x, tasklistptr_t y); bool explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_tasks, std::string_view name, - bool& task_changed, std::unordered_set& tasks_set, bool multi); + bool& task_changed, bool multi); std::optional expend_task(std::string_view name, taskptr_t old_task); #ifdef ASST_DEBUG bool syntax_check(const std::string& task_name, const json::value& task_json); From 472a8b2b5fe955676740a62a5d09fb86afa6c8d3 Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Wed, 22 Feb 2023 11:57:04 +0800 Subject: [PATCH 030/100] =?UTF-8?q?feat:=20=E5=AF=B9=20@=20=E8=BF=90?= =?UTF-8?q?=E7=AE=97=E7=9A=84=E9=80=BB=E8=BE=91=E7=A8=8D=E4=BD=9C=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整前: (...)@#none=#none, #none@(...)=#none 调整后: (...)@#none=(...), #none@(...)=(...) --- src/MaaCore/Config/TaskData.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/MaaCore/Config/TaskData.cpp b/src/MaaCore/Config/TaskData.cpp index 042115a08e..642dc3e1a0 100644 --- a/src/MaaCore/Config/TaskData.cpp +++ b/src/MaaCore/Config/TaskData.cpp @@ -262,6 +262,7 @@ bool asst::TaskData::explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_ return is_symbl_subtask_type(x) || x == symbl_name_self || x == symbl_name_back || x == symbl_name_none; }; + // perform_op 的结果不保证符合参数 multi 的要求 auto perform_op = [&](std::string_view task_expr, symbl_t op, tasklistptr_t x, tasklistptr_t y) -> std::optional { auto ret = std::make_shared(); @@ -304,8 +305,15 @@ bool asst::TaskData::explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_ break; } case symbl_at: { - for (std::string_view s : *x) { - ranges::copy(append_prefix(*y, s), std::back_inserter(*ret)); + if (y->empty()) { // A@#none = A + ranges::copy(*x, std::back_inserter(*ret)); + } + else if (x->empty()) { // #none@A = A + ranges::copy(*y, std::back_inserter(*ret)); + } + else { // (A+B)@(C+D) = A@C + A@D + B@C + B@D + ranges::for_each( + *x, [&](std::string_view s) { ranges::copy(append_prefix(*y, s), std::back_inserter(*ret)); }); } break; } From cdd32b4dee0b2b0c68c34f669943774cb2b9641c Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Wed, 22 Feb 2023 12:01:14 +0800 Subject: [PATCH 031/100] =?UTF-8?q?feat:=20=E5=AF=B9=20#=20=E8=BF=90?= =?UTF-8?q?=E7=AE=97=E7=9A=84=E9=80=BB=E8=BE=91=E7=A8=8D=E4=BD=9C=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 允许 A#(next+sub), 表示 (A#next + A#sub) --- src/MaaCore/Config/TaskData.cpp | 72 ++++++++++++++++----------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/src/MaaCore/Config/TaskData.cpp b/src/MaaCore/Config/TaskData.cpp index 642dc3e1a0..c91c5f570f 100644 --- a/src/MaaCore/Config/TaskData.cpp +++ b/src/MaaCore/Config/TaskData.cpp @@ -318,29 +318,28 @@ bool asst::TaskData::explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_ break; } case symbl_sharp: { - if (y->size() != 1) { - Log.error("There is more than one y:", *y, "while perform op", symbl_table[op], "in", task_expr, - "of task:", task_name); + if (y->empty()) { + Log.error("There is no sharp_type while perform op", symbl_table[op], "in", task_expr, "of task:", task_name); return std::nullopt; } - std::string_view type = y->front(); - if (!x || x->empty()) { - x = std::make_shared(tasklist_t { "" }); - } - for (const auto& task : *x) { - if (type == "self") { - ret->emplace_back(task_name); - continue; + for (std::string_view type : *y) { + if (!x || x->empty()) { // unary + x = std::make_shared(tasklist_t { "" }); } - if (type == "none") { - continue; - } - if (type == "back") { - // "A#back" === "A", "B@A#back" === "B@A", "#back" === null - if (!task.empty()) ret->emplace_back(task); - continue; - } - taskptr_t other_task_info_ptr = task.empty() ? default_task_info_ptr : get_raw(task); + for (const auto& task : *x) { + if (type == "self") { + ret->emplace_back(task_name); + continue; + } + if (type == "none") { + continue; + } + if (type == "back") { + // "A#back" === "A", "B@A#back" === "B@A", "#back" === null + if (!task.empty()) ret->emplace_back(task); + continue; + } + taskptr_t other_task_info_ptr = task.empty() ? default_task_info_ptr : get_raw(task); #define ASST_TASKDATA_PERFORM_OP_IF_BRANCH(t, m) \ else if (type == #t) \ @@ -352,23 +351,24 @@ bool asst::TaskData::explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_ return std::nullopt; \ } \ } - if (other_task_info_ptr == nullptr) [[unlikely]] { - Log.error("Task", task, "not found while perform op", symbl_table[op], "in", task_expr, - "of task:", task_name); - return std::nullopt; - } - ASST_TASKDATA_PERFORM_OP_IF_BRANCH(next, false) - ASST_TASKDATA_PERFORM_OP_IF_BRANCH(sub, true) - ASST_TASKDATA_PERFORM_OP_IF_BRANCH(on_error_next, false) - ASST_TASKDATA_PERFORM_OP_IF_BRANCH(exceeded_next, false) - ASST_TASKDATA_PERFORM_OP_IF_BRANCH(reduce_other_times, true) - else [[unlikely]] - { - Log.error("Unknown symbol", type, "while perform op", symbl_table[op], "in", task_expr, - "of task:", task_name); - return std::nullopt; - } + if (other_task_info_ptr == nullptr) [[unlikely]] { + Log.error("Task", task, "not found while perform op", symbl_table[op], "in", task_expr, + "of task:", task_name); + return std::nullopt; + } + ASST_TASKDATA_PERFORM_OP_IF_BRANCH(next, false) + ASST_TASKDATA_PERFORM_OP_IF_BRANCH(sub, true) + ASST_TASKDATA_PERFORM_OP_IF_BRANCH(on_error_next, false) + ASST_TASKDATA_PERFORM_OP_IF_BRANCH(exceeded_next, false) + ASST_TASKDATA_PERFORM_OP_IF_BRANCH(reduce_other_times, true) + else [[unlikely]] + { + Log.error("Unknown symbol", type, "while perform op", symbl_table[op], "in", task_expr, + "of task:", task_name); + return std::nullopt; + } #undef ASST_TASKDATA_PERFORM_OP_IF_BRANCH + } } break; From 9cb07172b91c4a53e6907484e236b7d1ae96509e Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Wed, 22 Feb 2023 13:10:18 +0800 Subject: [PATCH 032/100] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E7=A9=BA=E7=99=BD=E7=AC=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Config/TaskData.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/MaaCore/Config/TaskData.cpp b/src/MaaCore/Config/TaskData.cpp index c91c5f570f..f0841ec3e2 100644 --- a/src/MaaCore/Config/TaskData.cpp +++ b/src/MaaCore/Config/TaskData.cpp @@ -414,6 +414,12 @@ bool asst::TaskData::explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_ for (auto p = task_expr.begin(); p != task_expr.end(); ++p) { switch (*p) { case ' ': + case '\t': + case '\r': + case '\n': + emplace_symbol_if_not_empty(y_begin, p); + y_begin = p + 1; + break; case ',': case '(': case ')': @@ -428,9 +434,10 @@ bool asst::TaskData::explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_ case '@': emplace_symbol_if_not_empty(y_begin, p); y_begin = p + 1; - if (*p != ' ') { - symbol_stream.emplace_back(symbols_id[std::string(1, *p)]); - } + symbol_stream.emplace_back(symbols_id[std::string(1, *p)]); + break; + default: + break; } } emplace_symbol_if_not_empty(y_begin, task_expr.end()); From c06edb25de71302788d19de3cd8598c79169c952 Mon Sep 17 00:00:00 2001 From: Horror Proton <107091537+horror-proton@users.noreply.github.com> Date: Wed, 1 Feb 2023 19:56:44 +0800 Subject: [PATCH 033/100] =?UTF-8?q?feat:=20=E5=AE=9E=E9=AA=8C=E6=80=A7?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20OCR=20=E5=AD=97=E7=AC=A6=E7=AD=89=E4=BB=B7?= =?UTF-8?q?=E7=B1=BB=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Vision/OcrImageAnalyzer.cpp | 57 +++++++++++++++++++++++-- src/MaaCore/Vision/OcrImageAnalyzer.h | 5 ++- 2 files changed, 57 insertions(+), 5 deletions(-) diff --git a/src/MaaCore/Vision/OcrImageAnalyzer.cpp b/src/MaaCore/Vision/OcrImageAnalyzer.cpp index dbb9f439d7..120261f822 100644 --- a/src/MaaCore/Vision/OcrImageAnalyzer.cpp +++ b/src/MaaCore/Vision/OcrImageAnalyzer.cpp @@ -15,6 +15,11 @@ bool asst::OcrImageAnalyzer::analyze() std::vector preds_vec; + preds_vec.emplace_back([](TextRect& tr) -> bool { + tr.text = equivalent_class_preprocess(tr.text); + return true; + }); + if (!m_replace.empty()) { TextRectProc text_replace = [&](TextRect& tr) -> bool { for (const auto& [regex, new_str] : m_replace) { @@ -93,19 +98,25 @@ void asst::OcrImageAnalyzer::set_use_cache(bool is_use) noexcept void asst::OcrImageAnalyzer::set_required(std::vector required) noexcept { + ranges::for_each(required, [](std::string& str) { str = equivalent_class_preprocess(str); }); m_required = std::move(required); } -void asst::OcrImageAnalyzer::set_replace(std::unordered_map replace) noexcept +void asst::OcrImageAnalyzer::set_replace(const std::unordered_map& replace) noexcept { - m_replace = std::move(replace); + m_replace = {}; + for (auto&& [key, val] : replace) { + auto new_key = equivalent_class_preprocess(key); + auto new_val = equivalent_class_preprocess(val); + m_replace[new_key] = new_val; + } } void asst::OcrImageAnalyzer::set_task_info(OcrTaskInfo task_info) noexcept { - m_required = std::move(task_info.text); + set_required(std::move(task_info.text)); m_full_match = task_info.full_match; - m_replace = std::move(task_info.replace_map); + set_replace(task_info.replace_map); m_use_cache = task_info.cache; m_use_char_model = task_info.is_ascii; @@ -124,6 +135,44 @@ std::vector& asst::OcrImageAnalyzer::get_result() noexcept return m_ocr_result; } +std::string asst::OcrImageAnalyzer::equivalent_class_preprocess(const std::string& in) +{ + using equivalent_class = std::vector; + static const std::vector classes { + // hiragana + { "あ", "ぁ" }, + { "い", "ぃ" }, + { "う", "ぅ" }, + { "え", "ぇ" }, + { "お", "ぉ" }, + { "つ", "っ" }, + { "や", "ゃ" }, + { "ゆ", "ゅ" }, + { "よ", "ょ" }, + { "わ", "ゎ" }, + // katakana + { "ア", "ァ" }, + { "イ", "ィ" }, + { "ウ", "ゥ" }, + { "エ", "ェ" }, + { "オ", "ォ" }, + { "ツ", "ッ" }, + { "ヤ", "ャ" }, + { "ユ", "ュ" }, + { "ヨ", "ョ" }, + { "ワ", "ヮ" }, + }; // TODO: store this into a file + + auto result = in; + for (const auto& cls : classes) { + // replace the elements in group into the first one + ranges::for_each(cls.begin() + 1, cls.end(), + [&](const std::string& elem) { utils::string_replace_all_in_place(result, elem, cls.front()); }); + } + + return result; +} + void asst::OcrImageAnalyzer::set_task_info(std::shared_ptr task_ptr) { set_task_info(*std::dynamic_pointer_cast(task_ptr)); diff --git a/src/MaaCore/Vision/OcrImageAnalyzer.h b/src/MaaCore/Vision/OcrImageAnalyzer.h index ad817a3093..139a3ac97a 100644 --- a/src/MaaCore/Vision/OcrImageAnalyzer.h +++ b/src/MaaCore/Vision/OcrImageAnalyzer.h @@ -25,7 +25,7 @@ namespace asst virtual void sort_result_by_required(); // 按传入的需求数组排序,传入的在前面结果接在前面 void set_required(std::vector required) noexcept; - void set_replace(std::unordered_map replace) noexcept; + void set_replace(const std::unordered_map& replace) noexcept; virtual void set_task_info(std::shared_ptr task_ptr); virtual void set_task_info(const std::string& task_name); @@ -38,6 +38,9 @@ namespace asst virtual const std::vector& get_result() const noexcept; virtual std::vector& get_result() noexcept; + // normalize similar characters into the same one + static std::string equivalent_class_preprocess(const std::string& in); + protected: virtual void set_task_info(OcrTaskInfo task_info) noexcept; From 0ce25cac57bde25d6a2601176fdf0f3e88ca8848 Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Tue, 21 Feb 2023 22:25:00 -0600 Subject: [PATCH 034/100] feat: OCR equivalence class --- resource/ocr_config.json | 76 +++++++++++++++++++ .../Config/Miscellaneous/OcrConfig.cpp | 28 +++++++ src/MaaCore/Config/Miscellaneous/OcrConfig.h | 32 ++++++++ src/MaaCore/Config/ResourceLoader.cpp | 2 + src/MaaCore/MaaCore.vcxproj | 2 + src/MaaCore/MaaCore.vcxproj.filters | 6 ++ src/MaaCore/Vision/OcrImageAnalyzer.cpp | 47 ++---------- src/MaaCore/Vision/OcrImageAnalyzer.h | 3 - 8 files changed, 151 insertions(+), 45 deletions(-) create mode 100644 resource/ocr_config.json create mode 100644 src/MaaCore/Config/Miscellaneous/OcrConfig.cpp create mode 100644 src/MaaCore/Config/Miscellaneous/OcrConfig.h diff --git a/resource/ocr_config.json b/resource/ocr_config.json new file mode 100644 index 0000000000..04bfe0c4fb --- /dev/null +++ b/resource/ocr_config.json @@ -0,0 +1,76 @@ +{ + "equivalence_classes": [ + [ + "あ", + "ぁ" + ], + [ + "い", + "ぃ" + ], + [ + "う", + "ぅ" + ], + [ + "え", + "ぇ" + ], + [ + "お", + "ぉ" + ], + [ + "つ", + "っ" + ], + [ + "や", + "ゃ" + ], + [ + "ゆ", + "ゅ" + ], + [ + "よ", + "ょ" + ], + [ + "ア", + "ァ" + ], + [ + "イ", + "ィ" + ], + [ + "ウ", + "ゥ" + ], + [ + "エ", + "ェ" + ], + [ + "オ", + "ォ" + ], + [ + "ツ", + "ッ" + ], + [ + "ヤ", + "ャ" + ], + [ + "ユ", + "ュ" + ], + [ + "ヨ", + "ョ" + ] + ] +} \ No newline at end of file diff --git a/src/MaaCore/Config/Miscellaneous/OcrConfig.cpp b/src/MaaCore/Config/Miscellaneous/OcrConfig.cpp new file mode 100644 index 0000000000..251c7a475d --- /dev/null +++ b/src/MaaCore/Config/Miscellaneous/OcrConfig.cpp @@ -0,0 +1,28 @@ +#include "OcrConfig.h" + +#include + +#include "Utils/Logger.hpp" + +std::string asst::OcrConfig::process_equivalence_class(const std::string& str) +{ + std::string result = str; + for (const auto& eq_class : m_eq_classes) { + ranges::for_each(eq_class.begin() + 1, eq_class.end(), [&](const std::string& elem) { + utils::string_replace_all_in_place(result, elem, eq_class.front()); + }); + } + return result; +} + +bool asst::OcrConfig::parse(const json::value& json) +{ + for (const json::value& eq_class : json.at("equivalence_classes").as_array()) { + equivalence_class eq_class_tmp; + for (const json::value& eq_element : eq_class.as_array()) { + eq_class_tmp.emplace_back(eq_element.as_string()); + } + m_eq_classes.emplace_back(std::move(eq_class_tmp)); + } + return true; +} diff --git a/src/MaaCore/Config/Miscellaneous/OcrConfig.h b/src/MaaCore/Config/Miscellaneous/OcrConfig.h new file mode 100644 index 0000000000..e4aed6f819 --- /dev/null +++ b/src/MaaCore/Config/Miscellaneous/OcrConfig.h @@ -0,0 +1,32 @@ +#pragma once + +#include "Config/AbstractConfig.h" + +#include "Utils/Ranges.hpp" +#include +#include +#include +#include +#include + +#include "Common/AsstTypes.h" + +namespace asst +{ + class OcrConfig final : public SingletonHolder, public AbstractConfig + { + public: + virtual ~OcrConfig() override = default; + + std::string process_equivalence_class(const std::string& str); + + protected: + virtual bool parse(const json::value& json) override; + + using equivalence_class = std::vector; + + std::vector m_eq_classes; + }; + inline static auto& OcrData = OcrConfig::get_instance(); + +} // namespace asst diff --git a/src/MaaCore/Config/ResourceLoader.cpp b/src/MaaCore/Config/ResourceLoader.cpp index fb265bb74b..7203c27f65 100644 --- a/src/MaaCore/Config/ResourceLoader.cpp +++ b/src/MaaCore/Config/ResourceLoader.cpp @@ -13,6 +13,7 @@ #include "Miscellaneous/RecruitConfig.h" #include "Miscellaneous/StageDropsConfig.h" #include "Miscellaneous/TilePack.h" +#include "Miscellaneous/OcrConfig.h" #include "Roguelike/RoguelikeCopilotConfig.h" #include "Roguelike/RoguelikeRecruitConfig.h" #include "Roguelike/RoguelikeShoppingConfig.h" @@ -64,6 +65,7 @@ bool asst::ResourceLoader::load(const std::filesystem::path& path) LoadResourceAndCheckRet(RoguelikeRecruitConfig, "roguelike"_p / "recruitment.json"_p); LoadResourceAndCheckRet(RoguelikeShoppingConfig, "roguelike"_p / "shopping.json"_p); LoadResourceAndCheckRet(BattleDataConfig, "battle_data.json"_p); + LoadResourceAndCheckRet(OcrConfig, "ocr_config.json"_p); /* load resource with json and template files*/ LoadResourceWithTemplAndCheckRet(TaskData, "tasks.json"_p, "template"_p); diff --git a/src/MaaCore/MaaCore.vcxproj b/src/MaaCore/MaaCore.vcxproj index 763116e97b..519770df00 100644 --- a/src/MaaCore/MaaCore.vcxproj +++ b/src/MaaCore/MaaCore.vcxproj @@ -29,6 +29,7 @@ + @@ -159,6 +160,7 @@ + diff --git a/src/MaaCore/MaaCore.vcxproj.filters b/src/MaaCore/MaaCore.vcxproj.filters index a6c1c8f235..5aea742d34 100644 --- a/src/MaaCore/MaaCore.vcxproj.filters +++ b/src/MaaCore/MaaCore.vcxproj.filters @@ -507,6 +507,9 @@ 源文件\Task\Reclamation + + 源文件\Config\Miscellaneous + @@ -836,5 +839,8 @@ 源文件\Task\Reclamation + + 源文件\Config\Miscellaneous + \ No newline at end of file diff --git a/src/MaaCore/Vision/OcrImageAnalyzer.cpp b/src/MaaCore/Vision/OcrImageAnalyzer.cpp index 120261f822..d0c311d138 100644 --- a/src/MaaCore/Vision/OcrImageAnalyzer.cpp +++ b/src/MaaCore/Vision/OcrImageAnalyzer.cpp @@ -4,6 +4,7 @@ #include #include "Config/Miscellaneous/OcrPack.h" +#include "Config/Miscellaneous/OcrConfig.h" #include "Config/TaskData.h" #include "Utils/Logger.hpp" @@ -16,7 +17,7 @@ bool asst::OcrImageAnalyzer::analyze() std::vector preds_vec; preds_vec.emplace_back([](TextRect& tr) -> bool { - tr.text = equivalent_class_preprocess(tr.text); + tr.text = OcrData.process_equivalence_class(tr.text); return true; }); @@ -98,7 +99,7 @@ void asst::OcrImageAnalyzer::set_use_cache(bool is_use) noexcept void asst::OcrImageAnalyzer::set_required(std::vector required) noexcept { - ranges::for_each(required, [](std::string& str) { str = equivalent_class_preprocess(str); }); + ranges::for_each(required, [](std::string& str) { str = OcrData.process_equivalence_class(str); }); m_required = std::move(required); } @@ -106,8 +107,8 @@ void asst::OcrImageAnalyzer::set_replace(const std::unordered_map& asst::OcrImageAnalyzer::get_result() noexcept return m_ocr_result; } -std::string asst::OcrImageAnalyzer::equivalent_class_preprocess(const std::string& in) -{ - using equivalent_class = std::vector; - static const std::vector classes { - // hiragana - { "あ", "ぁ" }, - { "い", "ぃ" }, - { "う", "ぅ" }, - { "え", "ぇ" }, - { "お", "ぉ" }, - { "つ", "っ" }, - { "や", "ゃ" }, - { "ゆ", "ゅ" }, - { "よ", "ょ" }, - { "わ", "ゎ" }, - // katakana - { "ア", "ァ" }, - { "イ", "ィ" }, - { "ウ", "ゥ" }, - { "エ", "ェ" }, - { "オ", "ォ" }, - { "ツ", "ッ" }, - { "ヤ", "ャ" }, - { "ユ", "ュ" }, - { "ヨ", "ョ" }, - { "ワ", "ヮ" }, - }; // TODO: store this into a file - - auto result = in; - for (const auto& cls : classes) { - // replace the elements in group into the first one - ranges::for_each(cls.begin() + 1, cls.end(), - [&](const std::string& elem) { utils::string_replace_all_in_place(result, elem, cls.front()); }); - } - - return result; -} - void asst::OcrImageAnalyzer::set_task_info(std::shared_ptr task_ptr) { set_task_info(*std::dynamic_pointer_cast(task_ptr)); diff --git a/src/MaaCore/Vision/OcrImageAnalyzer.h b/src/MaaCore/Vision/OcrImageAnalyzer.h index 139a3ac97a..90e1f8037a 100644 --- a/src/MaaCore/Vision/OcrImageAnalyzer.h +++ b/src/MaaCore/Vision/OcrImageAnalyzer.h @@ -38,9 +38,6 @@ namespace asst virtual const std::vector& get_result() const noexcept; virtual std::vector& get_result() noexcept; - // normalize similar characters into the same one - static std::string equivalent_class_preprocess(const std::string& in); - protected: virtual void set_task_info(OcrTaskInfo task_info) noexcept; From 19a3b576231f3a12ff80a265aefad90c1c8f3725 Mon Sep 17 00:00:00 2001 From: Horror Proton <107091537+horror-proton@users.noreply.github.com> Date: Sat, 18 Feb 2023 01:08:28 +0800 Subject: [PATCH 035/100] perf: read tile data concurrently --- src/MaaCore/Config/Miscellaneous/TilePack.cpp | 129 ++++++++++++++---- 1 file changed, 104 insertions(+), 25 deletions(-) diff --git a/src/MaaCore/Config/Miscellaneous/TilePack.cpp b/src/MaaCore/Config/Miscellaneous/TilePack.cpp index 33d42976ec..362f64380d 100644 --- a/src/MaaCore/Config/Miscellaneous/TilePack.cpp +++ b/src/MaaCore/Config/Miscellaneous/TilePack.cpp @@ -1,6 +1,20 @@ #include "TilePack.h" #include "Common/AsstConf.h" +#include "meojson/json.hpp" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + ASST_SUPPRESS_CV_WARNINGS_START #include ASST_SUPPRESS_CV_WARNINGS_END @@ -16,36 +30,101 @@ bool asst::TilePack::load(const std::filesystem::path& path) return false; } - std::vector tiles_array; - for (const auto& entry : std::filesystem::directory_iterator(path)) { - const auto& file_path = entry.path(); - if (file_path.extension() != ".json") { - continue; - } - auto json_opt = json::open(file_path); - if (!json_opt) { - Log.error("Failed to open json file:", file_path); - return false; - } - auto& json = json_opt.value(); - if (json.is_array()) { - // 兼容上游仓库的 levels.json - // 有些用户习惯于在游戏更新了但maa还没发版前,自己手动更新下 levels.json,可以提前用 - tiles_array.insert(tiles_array.end(), std::make_move_iterator(json.as_array().begin()), - std::make_move_iterator(json.as_array().end())); - } - else if (json.is_object()) { - tiles_array.emplace_back(std::move(*json_opt)); - } - else { - Log.error("Invalid json file:", file_path); - return false; + std::list tiles_array; + std::queue> file_strings; + + std::atomic_bool eoq = false; + std::mutex queue_mut; + std::condition_variable condvar; + + using result_type = std::optional>; + std::vector> workers; + + { + auto n_workers = std::max(1U, std::thread::hardware_concurrency()); + workers.reserve(n_workers); + for (auto thi = 0U; thi < n_workers; ++thi) { + workers.emplace_back(std::async(std::launch::async, [&]() -> result_type { + std::list result; + while (true) { + std::unique_lock lk { queue_mut }; + condvar.wait(lk, [&]() -> bool { return !file_strings.empty() || eoq.load(); }); + if (file_strings.empty()) return result; + + std::string buf {}; + buf.swap(file_strings.front().second); + auto path = file_strings.front().first; + file_strings.pop(); + lk.unlock(); + + auto json_opt = json::parse(buf); + if (!json_opt) { + Log.error("Unable to parse json file:", path); + eoq.store(true); + return std::nullopt; + } + + auto& json = json_opt.value(); + if (json.is_array()) { + // 兼容上游仓库的 levels.json + // 有些用户习惯于在游戏更新了但maa还没发版前,自己手动更新下 levels.json,可以提前用 + result.insert(tiles_array.end(), std::make_move_iterator(json.as_array().begin()), + std::make_move_iterator(json.as_array().end())); + } + else if (json.is_object()) { + result.emplace_back(std::move(json)); + } + else { + Log.error("Invalid json file:", path); + eoq.store(true); + return std::nullopt; + } + } + })); } } + for (const auto& entry : std::filesystem::directory_iterator(path)) { + + if (eoq.load()) break; // this means parsing went wrong + + const auto& file_path = entry.path(); + if (file_path.extension() != ".json") continue; + + const auto f_size = std::filesystem::file_size(file_path); + std::ifstream ifs(file_path, std::ios::in); + auto buf = std::string(f_size, '\0'); + ifs.read(buf.data(), static_cast(buf.size())); + { + std::unique_lock lk(queue_mut); + file_strings.push(std::make_pair(file_path, std::move(buf))); + } + condvar.notify_one(); + } + + eoq.store(true); + condvar.notify_all(); + + auto result = std::transform_reduce( + workers.begin(), workers.end(), std::optional { std::list {} }, + [](result_type lhs, result_type rhs) -> result_type { + if (!lhs || !rhs) return std::nullopt; + lhs->splice(lhs->end(), std::move(rhs).value()); + return lhs; + }, + [&](std::future& fut) -> result_type { + while (fut.wait_for(std::chrono::milliseconds(10)) == std::future_status::timeout) + condvar.notify_all(); // is this necessary? + return fut.get(); + }); + + if (!result) return false; + Log.info("got", result->size(), "maps"); + try { + // TODO: this move has no effect m_tile_calculator = - std::make_shared(WindowWidthDefault, WindowHeightDefault, std::move(tiles_array)); + std::make_shared(WindowWidthDefault, WindowHeightDefault, std::move(result).value()); } catch (const std::exception& e) { Log.error("Tile create failed", e.what()); From 93c62df489a717a07fa660e153428ee994243fbe Mon Sep 17 00:00:00 2001 From: LambdaLe Date: Wed, 22 Feb 2023 20:45:40 +0800 Subject: [PATCH 036/100] =?UTF-8?q?feat:=20Python=E6=B7=BB=E5=8A=A0Hyperv?= =?UTF-8?q?=E8=93=9D=E5=8F=A0=E7=9A=84=E7=AB=AF=E5=8F=A3=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E4=B8=8E=E6=A8=A1=E6=8B=9F=E5=99=A8=E5=90=AF=E5=8A=A8=E5=87=BD?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Python/asst/emulator.py | 33 +++++++++++++++++++++++++++++++++ src/Python/sample.py | 7 +++++++ 2 files changed, 40 insertions(+) create mode 100644 src/Python/asst/emulator.py diff --git a/src/Python/asst/emulator.py b/src/Python/asst/emulator.py new file mode 100644 index 0000000000..64df006e30 --- /dev/null +++ b/src/Python/asst/emulator.py @@ -0,0 +1,33 @@ +import time +import subprocess + +class Bluestacks: + @staticmethod + def get_hyperv_port(conf_path=r"C:\ProgramData\BlueStacks_nxt\bluestacks.conf", instance_name="Pie64") -> int: + """ 获取Hyper-v版蓝叠的adb port + + :param conf_path: bluestacks.conf 的路径+文件名 + :param instance_name: 多开的名称,在bluestacks.conf中以类似bst.instance..status.adb_port的形式出现,如Nougat64,Pie64,Pie64_1等 + :return: adb端口 + """ + with open(conf_path) as f: + configs = dict(list(map(lambda line: line.replace('\n', '').split('='), f.readlines()))) + return int(configs[f'bst.instance.{instance_name}.status.adb_port'].replace('"', "")) + + @staticmethod + def launch_emulator_win(emulator_path=r'C:\Program Files\BlueStacks_nxt\HD-Player.exe', post_delay=30, arg_instance=None): + """ 启动模拟器 + 如需管理员权限启动模拟器则以管理员权限执行Python脚本 + + :param emulator_path: 模拟器可执行文件路径+文件名 + :param post_delay: 启动后的等待时间(s) + :param arg_instance: 多开实例名,获取方式见get_hyperv_port注释。默认则置空。 + :return: 模拟器进程 + """ + args = [emulator_path] + if arg_instance: + args += ["--instance", arg_instance] + emulator_proc = subprocess.Popen(args) + time.sleep(post_delay) + return emulator_proc + \ No newline at end of file diff --git a/src/Python/sample.py b/src/Python/sample.py index 49a69aa1d1..3fb4257bb8 100644 --- a/src/Python/sample.py +++ b/src/Python/sample.py @@ -5,6 +5,7 @@ import time from asst.asst import Asst from asst.utils import Message, Version from asst.updater import Updater +from asst.emulator import Bluestacks @Asst.CallBackType @@ -37,6 +38,12 @@ if __name__ == "__main__": # 暂停下干员 # asst.set_instance_option(InstanceOptionType.deployment_with_pause, '1') + # 启动模拟器。例如启动蓝叠模拟器的多开Pie64_1,并等待30s + # Bluestacks.launch_emulator_win(r'C:\Program Files\BlueStacks_nxt\HD-Player.exe', 30, "Pie64_1") + + # 获取Hyper-v蓝叠的adb port + # port = Bluestacks.get_hyperv_port(r"C:\ProgramData\BlueStacks_nxt\bluestacks.conf", "Pie64_1") + # 请自行配置 adb 环境变量,或修改为 adb 可执行程序的路径 if asst.connect('adb.exe', '127.0.0.1:5555'): print('连接成功') From a0c5a5e06d1d763bb49e7dce4b90e812c1c4d01c Mon Sep 17 00:00:00 2001 From: uye <2396806385@qq.com> Date: Wed, 22 Feb 2023 23:01:14 +0800 Subject: [PATCH 037/100] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A04=E7=82=B9?= =?UTF-8?q?=E6=A3=80=E6=9F=A5web=E6=98=AF=E5=90=A6=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=85=B3=E5=8D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaWpfGui/Helper/StageManager.cs | 6 ++---- src/MaaWpfGui/Main/TaskQueueViewModel.cs | 8 ++++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/MaaWpfGui/Helper/StageManager.cs b/src/MaaWpfGui/Helper/StageManager.cs index 007458d8e2..ea742d71e6 100644 --- a/src/MaaWpfGui/Helper/StageManager.cs +++ b/src/MaaWpfGui/Helper/StageManager.cs @@ -38,7 +38,6 @@ namespace MaaWpfGui // model references private readonly TaskQueueViewModel _taskQueueViewModel; - private readonly SettingsViewModel _settingsViewModel; // datas private Dictionary _stages; @@ -50,7 +49,6 @@ namespace MaaWpfGui public StageManager(IContainer container) { _taskQueueViewModel = container.Get(); - _settingsViewModel = container.Get(); UpdateStage(false); Execute.OnUIThread(async () => @@ -68,7 +66,7 @@ namespace MaaWpfGui }); } - private void UpdateStage(bool fromWeb) + public void UpdateStage(bool fromWeb) { var tempStage = new Dictionary { @@ -90,7 +88,7 @@ namespace MaaWpfGui "yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture).AddHours(-Convert.ToInt32(keyValuePairs?["TimeZone"].ToString() ?? "0")); - var clientType = _settingsViewModel.ClientType; + var clientType = ViewStatusStorage.Get("Start.ClientType", string.Empty); // 官服和B服使用同样的资源 if (clientType == "Bilibili" || clientType == string.Empty) diff --git a/src/MaaWpfGui/Main/TaskQueueViewModel.cs b/src/MaaWpfGui/Main/TaskQueueViewModel.cs index 9d1af40fb5..ab8bc951a2 100644 --- a/src/MaaWpfGui/Main/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/Main/TaskQueueViewModel.cs @@ -157,8 +157,12 @@ namespace MaaWpfGui { if (NeedToUpdateDatePrompt()) { - UpdateDatePrompt(); - UpdateStageList(false); + Execute.OnUIThread(() => + { + _stageManager.UpdateStage(true); + UpdateDatePrompt(); + UpdateStageList(false); + }); } refreshCustomInfrastPlanIndexByPeriod(); From 4b465ebd358d0e7ad34cd5f35515aee4ae8ff095 Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Sun, 19 Feb 2023 19:40:06 +0800 Subject: [PATCH 038/100] =?UTF-8?q?feat:=20=E5=88=A0=E9=99=A4=E4=B8=80?= =?UTF-8?q?=E6=AE=B5=E5=86=97=E4=BD=99=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/resource/tasks.json b/resource/tasks.json index 6609118ea9..f43c85647d 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -2585,15 +2585,6 @@ ] }, "StartUp@ClickCorner": { - "ClickCorner_Doc": "点击屏幕右边,不会点到掉落物品,且不会关掉关卡选择的一块区域", - "algorithm": "JustReturn", - "action": "ClickRect", - "specificRect": [ - 1000, - 120, - 270, - 10 - ], "next": [ "StartUp@ReturnTo", "StartUp", @@ -2601,9 +2592,6 @@ "StartUp@FromStageSN", "StartUp@TodaysSupplies", "StartUp@OfflineConfirm" - ], - "onErrorNext": [ - "StartUp@RestartGameAndContinue" ] }, "FromStageSN": { From a754a7fe7739a7cc035d1866ef93214f283d8b69 Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Sun, 19 Feb 2023 19:52:00 +0800 Subject: [PATCH 039/100] =?UTF-8?q?fix:=20=E5=88=A0=E9=99=A4=E4=B8=80?= =?UTF-8?q?=E6=AE=B5=E5=8F=AF=E8=83=BD=E5=AF=BC=E8=87=B4=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ClickCorner 这个任务只会在 EndOfAction 等 掉落识别 的任务结束后调用。 这里若出现差错导致没有进入前面的任务而是再次进入 EndOfAction 任务(例如 ClickCorner 的点击失效导致停留在结算界面),可能会导致重复识别 --- resource/tasks.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/resource/tasks.json b/resource/tasks.json index f43c85647d..58364f9ea2 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -2985,8 +2985,7 @@ "StartButton2", "UseMedicine", "UseStone", - "NoStone", - "EndOfAction" + "NoStone" ], "onErrorNext": [ "RestartGameAndContinue" From a1237c1b34238489d5fa21a0cece6f1504e3a29a Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Sun, 19 Feb 2023 20:22:49 +0800 Subject: [PATCH 040/100] =?UTF-8?q?feat:=20=E9=87=8D=E5=91=BD=E5=90=8D=20L?= =?UTF-8?q?oading=E3=80=81=20Loading2=20=E7=9B=B8=E5=85=B3=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将 Loading 任务重命名为 LoadingText,Loading2 任务重命名为 LoadingIcon 方便区分 --- resource/global/YoStarJP/resource/tasks.json | 2 +- resource/global/txwy/resource/tasks.json | 2 +- resource/tasks.json | 58 +++++++++--------- .../{Loading2.png => LoadingIcon.png} | Bin 4 files changed, 31 insertions(+), 31 deletions(-) rename resource/template/{Loading2.png => LoadingIcon.png} (100%) diff --git a/resource/global/YoStarJP/resource/tasks.json b/resource/global/YoStarJP/resource/tasks.json index 2433e12485..c689fe5592 100644 --- a/resource/global/YoStarJP/resource/tasks.json +++ b/resource/global/YoStarJP/resource/tasks.json @@ -1853,7 +1853,7 @@ "本日配給" ] }, - "Loading": { + "LoadingText": { "text": [ "ニューラル", "コネクタ", diff --git a/resource/global/txwy/resource/tasks.json b/resource/global/txwy/resource/tasks.json index 23c9799e74..78ec900772 100644 --- a/resource/global/txwy/resource/tasks.json +++ b/resource/global/txwy/resource/tasks.json @@ -862,7 +862,7 @@ "今日配給" ] }, - "Loading": { + "LoadingText": { "text": [ "正在提交", "反饋至神經" diff --git a/resource/tasks.json b/resource/tasks.json index 58364f9ea2..e41ec0910c 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -2344,7 +2344,7 @@ "action": "DoNothing", "next": [ "StartUp@StartUpThemes#next", - "StartUpBegin@Loading2", + "StartUpBegin@LoadingIcon", "StartUp@ReturnTo", "StartUp@EndOfAction", "StartUp@FromStageSN" @@ -2371,7 +2371,7 @@ ], "next": [ "StartUpThemes#next", - "GameStart@Loading2" + "GameStart@LoadingIcon" ] }, "StartToWakeUp": { @@ -2384,7 +2384,7 @@ ], "next": [ "StartUpThemes#next", - "StartToWakeUp@Loading2" + "StartToWakeUp@LoadingIcon" ] }, "StartLoginBServer": { @@ -2397,7 +2397,7 @@ ], "next": [ "StartUpThemes#next", - "StartLoginBServer@Loading2" + "StartLoginBServer@LoadingIcon" ] }, "StartUpConnectingFlag": { @@ -2410,7 +2410,7 @@ ], "next": [ "StartUpThemes#next", - "StartUpConnectingFlag@Loading2" + "StartUpConnectingFlag@LoadingIcon" ] }, "StartUp": { @@ -2478,7 +2478,7 @@ "#back" ] }, - "Loading": { + "LoadingText": { "algorithm": "OcrDetect", "action": "DoNothing", "text": [ @@ -2492,12 +2492,12 @@ 120 ], "next": [ - "Loading", + "LoadingText", "#next", "#back" ] }, - "Loading2": { + "LoadingIcon": { "Doc": "开始唤醒最后阶段的黑色正三角加载画面", "roi": [ 480, @@ -2506,7 +2506,7 @@ 280 ], "next": [ - "Loading2", + "LoadingIcon", "#next", "#back" ] @@ -2526,7 +2526,7 @@ "#back", "ReturnTo", "ReturnToConfirm", - "ReturnTo@Loading2", + "ReturnTo@LoadingIcon", "CloseAnnos#next", "FromStageSN", "TodaysSupplies" @@ -2544,7 +2544,7 @@ "next": [ "ReturnTo", "#back", - "ReturnToConfirm@Loading2", + "ReturnToConfirm@LoadingIcon", "CloseAnnos#next", "FromStageSN", "TodaysSupplies", @@ -2876,8 +2876,8 @@ "PRTS2", "PRTS3", "EndOfAction", - "WaitAfterPRTS@Loading", - "WaitAfterPRTS@Loading2", + "WaitAfterPRTS@LoadingText", + "WaitAfterPRTS@LoadingIcon", "ClickCornerAfterPRTS_1" ] }, @@ -2900,8 +2900,8 @@ "UseMedicine", "UseStone", "NoStone", - "WaitAfterPRTS@Loading", - "WaitAfterPRTS@Loading2", + "WaitAfterPRTS@LoadingText", + "WaitAfterPRTS@LoadingIcon", "StartUpThemes#next" ] }, @@ -3251,7 +3251,7 @@ "postDelay": 5000, "next": [ "StartUpThemes#next", - "RestartGameAndContinue@Loading2", + "RestartGameAndContinue@LoadingIcon", "ReturnTo", "FromStageSN" ] @@ -3325,7 +3325,7 @@ 255 ], "next": [ - "RecruitBegin@Loading", + "RecruitBegin@LoadingText", "RecruitBegin" ] }, @@ -3340,7 +3340,7 @@ 420 ], "next": [ - "RecruitFinish@Loading", + "RecruitFinish@LoadingText", "RecruitFinish", "Recruit", "RecruitSkip", @@ -4026,7 +4026,7 @@ ], "next": [ "CreditShop-Bought", - "CreditShop-BuyIt@Loading", + "CreditShop-BuyIt@LoadingText", "CreditShop-NoMoney" ] }, @@ -4147,7 +4147,7 @@ "preDelay": 500, "postDelay": 500, "next": [ - "RecruitRefreshConfirm@Loading", + "RecruitRefreshConfirm@LoadingText", "SleepThenStop" ] }, @@ -4208,7 +4208,7 @@ 80 ], "next": [ - "RecruitConfirm@Loading", + "RecruitConfirm@LoadingText", "RecruitFlag" ] }, @@ -4427,7 +4427,7 @@ 165 ], "next": [ - "DroneConfirm@Loading", + "DroneConfirm@LoadingText", "DeliverableOrder", "DroneAssist-Trade-Stop", "DroneAssistMfg" @@ -4486,7 +4486,7 @@ ], "postDelay": 1000, "next": [ - "ReplenishToMaxConfirm@Loading", + "ReplenishToMaxConfirm@LoadingText", "Stop" ] }, @@ -5720,7 +5720,7 @@ 160 ], "next": [ - "ClueGiveTo1stConfirm@Loading", + "ClueGiveTo1stConfirm@LoadingText", "SelectClue", "CloseSendClue" ] @@ -5753,7 +5753,7 @@ 160 ], "next": [ - "ClueGiveTo2ndConfirm@Loading", + "ClueGiveTo2ndConfirm@LoadingText", "SelectClue", "CloseSendClue" ] @@ -5786,7 +5786,7 @@ 160 ], "next": [ - "ClueGiveTo3rdConfirm@Loading", + "ClueGiveTo3rdConfirm@LoadingText", "SelectClue", "CloseSendClue" ] @@ -5819,7 +5819,7 @@ 160 ], "next": [ - "ClueGiveTo4thConfirm@Loading", + "ClueGiveTo4thConfirm@LoadingText", "SelectClue", "CloseSendClue" ] @@ -8291,8 +8291,8 @@ "Roguelike@GamePassSkip1", "Roguelike@GamePassTheEndConfirm", "Roguelike@GamePass", - "Roguelike@StartAction@Loading", - "Roguelike@StartAction@Loading2" + "Roguelike@StartAction@LoadingText", + "Roguelike@StartAction@LoadingIcon" ] }, "Roguelike@StartExplore": { diff --git a/resource/template/Loading2.png b/resource/template/LoadingIcon.png similarity index 100% rename from resource/template/Loading2.png rename to resource/template/LoadingIcon.png From 6f1a92bb73349779abe3567f6aa36ab2eee3326e Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Wed, 22 Feb 2023 18:30:15 -0600 Subject: [PATCH 041/100] fix: move json to JP folder --- .../global/YoStarJP/resource/ocr_config.json | 76 +++++++++++++++++++ resource/ocr_config.json | 75 +----------------- 2 files changed, 77 insertions(+), 74 deletions(-) create mode 100644 resource/global/YoStarJP/resource/ocr_config.json diff --git a/resource/global/YoStarJP/resource/ocr_config.json b/resource/global/YoStarJP/resource/ocr_config.json new file mode 100644 index 0000000000..04bfe0c4fb --- /dev/null +++ b/resource/global/YoStarJP/resource/ocr_config.json @@ -0,0 +1,76 @@ +{ + "equivalence_classes": [ + [ + "あ", + "ぁ" + ], + [ + "い", + "ぃ" + ], + [ + "う", + "ぅ" + ], + [ + "え", + "ぇ" + ], + [ + "お", + "ぉ" + ], + [ + "つ", + "っ" + ], + [ + "や", + "ゃ" + ], + [ + "ゆ", + "ゅ" + ], + [ + "よ", + "ょ" + ], + [ + "ア", + "ァ" + ], + [ + "イ", + "ィ" + ], + [ + "ウ", + "ゥ" + ], + [ + "エ", + "ェ" + ], + [ + "オ", + "ォ" + ], + [ + "ツ", + "ッ" + ], + [ + "ヤ", + "ャ" + ], + [ + "ユ", + "ュ" + ], + [ + "ヨ", + "ョ" + ] + ] +} \ No newline at end of file diff --git a/resource/ocr_config.json b/resource/ocr_config.json index 04bfe0c4fb..adcdd47982 100644 --- a/resource/ocr_config.json +++ b/resource/ocr_config.json @@ -1,76 +1,3 @@ { - "equivalence_classes": [ - [ - "あ", - "ぁ" - ], - [ - "い", - "ぃ" - ], - [ - "う", - "ぅ" - ], - [ - "え", - "ぇ" - ], - [ - "お", - "ぉ" - ], - [ - "つ", - "っ" - ], - [ - "や", - "ゃ" - ], - [ - "ゆ", - "ゅ" - ], - [ - "よ", - "ょ" - ], - [ - "ア", - "ァ" - ], - [ - "イ", - "ィ" - ], - [ - "ウ", - "ゥ" - ], - [ - "エ", - "ェ" - ], - [ - "オ", - "ォ" - ], - [ - "ツ", - "ッ" - ], - [ - "ヤ", - "ャ" - ], - [ - "ユ", - "ュ" - ], - [ - "ヨ", - "ョ" - ] - ] + "equivalence_classes": [] } \ No newline at end of file From 5b3b470954d3669bfaeb3c2e9792ee0955e0c6ae Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Thu, 23 Feb 2023 09:17:07 +0800 Subject: [PATCH 042/100] =?UTF-8?q?fix:=20=E8=B0=83=E6=95=B4=20ClickCorner?= =?UTF-8?q?=20=E7=9B=B8=E5=85=B3=E4=BB=BB=E5=8A=A1=EF=BC=8C=E5=B0=86?= =?UTF-8?q?=E9=87=8D=E8=AF=95=E6=AC=A1=E6=95=B0=E4=BB=8E=E5=8E=9F=E6=9D=A5?= =?UTF-8?q?=E7=9A=84=202=20=E6=AC=A1=E6=8F=90=E9=AB=98=E5=88=B0=205=20?= =?UTF-8?q?=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 49 ++++++++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/resource/tasks.json b/resource/tasks.json index e41ec0910c..2ee32a2c45 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -2729,6 +2729,7 @@ }, "StartButton1": { "algorithm": "OcrDetect", + "action": "ClickSelf", "text": [ "开始行动" ], @@ -2744,7 +2745,18 @@ "StageSNReturnFlag", "Stop" ], - "action": "ClickSelf", + "reduceOtherTimes": [ + "ClickCornerAfterPRTS", + "ClickCornerAfterPRTS", + "ClickCornerAfterPRTS", + "ClickCornerAfterPRTS", + "ClickCornerAfterPRTS", + "ClickCorner", + "ClickCorner", + "ClickCorner", + "ClickCorner", + "ClickCorner" + ], "next": [ "StartButton2", "UseMedicine", @@ -2878,20 +2890,21 @@ "EndOfAction", "WaitAfterPRTS@LoadingText", "WaitAfterPRTS@LoadingIcon", - "ClickCornerAfterPRTS_1" + "ClickCornerAfterPRTS" ] }, "ClickCornerAfterPRTS": { - "Doc": "base_task", - "ClickCorner_Doc": "点击屏幕右边,不会点到掉落物品,且不会关掉关卡选择的一块区域", "algorithm": "JustReturn", "action": "ClickRect", + "Doc": "点击屏幕右边,不会点到掉落物品,且不会关掉关卡选择的一块区域", + "Doc2": "在比较卡的时候点击屏幕,或是在升级时点击屏幕以进入到结算界面,最多 5 次,间隔 3s", "specificRect": [ 1000, 120, 270, 10 ], + "maxTimes": 5, "postDelay": 3000, "next": [ "EndOfAction", @@ -2902,19 +2915,10 @@ "NoStone", "WaitAfterPRTS@LoadingText", "WaitAfterPRTS@LoadingIcon", - "StartUpThemes#next" - ] - }, - "ClickCornerAfterPRTS_1": { - "baseTask": "ClickCornerAfterPRTS", - "next": [ - "ClickCornerAfterPRTS#next", - "ClickCornerAfterPRTS_2" - ] - }, - "ClickCornerAfterPRTS_2": { - "baseTask": "ClickCornerAfterPRTS", - "onErrorNext": [ + "StartUpThemes#next", + "#self" + ], + "exceededNext": [ "RestartGameAndContinue" ] }, @@ -2971,7 +2975,7 @@ "preDelay": 5000 }, "ClickCorner": { - "ClickCorner_Doc": "点击屏幕右边,不会点到掉落物品,且不会关掉关卡选择的一块区域", + "Doc": "点击屏幕右边,不会点到掉落物品,且不会关掉关卡选择的一块区域", "algorithm": "JustReturn", "action": "ClickRect", "specificRect": [ @@ -2980,14 +2984,17 @@ 270, 10 ], + "maxTimes": 5, "next": [ "StartButton1", "StartButton2", "UseMedicine", "UseStone", - "NoStone" + "NoStone", + "ClickCorner@LoadingIcon", + "#self" ], - "onErrorNext": [ + "exceededNext": [ "RestartGameAndContinue" ] }, @@ -3228,7 +3235,7 @@ "FightMissionFailedAndStop" ], "onErrorNext": [ - "ClickCornerAfterPRTS_1" + "ClickCornerAfterPRTS" ] }, "FightMissionFailedAndStop": { From 6ba171f529a9d42c9d433bb58af0c5c1ea1a2351 Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Thu, 23 Feb 2023 09:02:16 +0800 Subject: [PATCH 043/100] =?UTF-8?q?perf:=20=E4=BD=BF=E7=94=A8=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E8=A1=A8=E8=BE=BE=E5=BC=8F=E7=9A=84=E8=AF=AD=E6=B3=95?= =?UTF-8?q?=E4=BC=98=E5=8C=96=20ClickCorner=20=E7=9B=B8=E5=85=B3=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/resource/tasks.json b/resource/tasks.json index 2ee32a2c45..dccc29b29f 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -2746,16 +2746,7 @@ "Stop" ], "reduceOtherTimes": [ - "ClickCornerAfterPRTS", - "ClickCornerAfterPRTS", - "ClickCornerAfterPRTS", - "ClickCornerAfterPRTS", - "ClickCornerAfterPRTS", - "ClickCorner", - "ClickCorner", - "ClickCorner", - "ClickCorner", - "ClickCorner" + "(ClickCornerAfterPRTS+ClickCorner)*5" ], "next": [ "StartButton2", @@ -2888,8 +2879,8 @@ "PRTS2", "PRTS3", "EndOfAction", - "WaitAfterPRTS@LoadingText", - "WaitAfterPRTS@LoadingIcon", + "#self@LoadingText", + "#self@LoadingIcon", "ClickCornerAfterPRTS" ] }, @@ -2908,14 +2899,7 @@ "postDelay": 3000, "next": [ "EndOfAction", - "StartButton1", - "StartButton2", - "UseMedicine", - "UseStone", - "NoStone", - "WaitAfterPRTS@LoadingText", - "WaitAfterPRTS@LoadingIcon", - "StartUpThemes#next", + "((ClickCorner + WaitAfterPRTS + StartUpThemes)#next ^ ClickCornerAfterPRTS)", "#self" ], "exceededNext": [ @@ -2991,7 +2975,7 @@ "UseMedicine", "UseStone", "NoStone", - "ClickCorner@LoadingIcon", + "#self@LoadingIcon", "#self" ], "exceededNext": [ From 4e925a7b2543b9ce8da883ee0c637f572340e8d6 Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Thu, 23 Feb 2023 09:14:44 +0800 Subject: [PATCH 044/100] =?UTF-8?q?perf:=20=E7=AE=80=E5=8C=96=20PRTS=20?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/resource/tasks.json b/resource/tasks.json index dccc29b29f..fb1d511a1f 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -2651,9 +2651,7 @@ "Fight@UsePrts", "Fight@UsePrts-StageSN", "Fight@StartButton1", - "Fight@PRTS3", - "Fight@PRTS", - "Fight@PRTS2", + "Fight@PRTS#next", "Fight@EndOfAction" ] }, @@ -2670,9 +2668,7 @@ "Fight@CloseAnnos#next", "Fight@FromStageSN", "Fight@TodaysSupplies", - "Fight@PRTS3", - "Fight@PRTS", - "Fight@PRTS2", + "Fight@PRTS#next", "Fight@EndOfAction" ] }, @@ -2811,9 +2807,7 @@ 340 ], "next": [ - "PRTS", - "PRTS2", - "PRTS3", + "PRTS#next", "EndOfAction", "StartButton2", "PrtsErrorConfirm", @@ -2822,6 +2816,14 @@ ] }, "PRTS": { + "algorithm": "JustReturn", + "next": [ + "PRTS1", + "PRTS2", + "PRTS3" + ] + }, + "PRTS1": { "action": "DoNothing", "template": "BattleOfficiallyBegin.png", "roi": [ @@ -2836,9 +2838,7 @@ ], "postDelay": 5000, "next": [ - "PRTS", - "PRTS2", - "PRTS3", + "PRTS#next", "EndOfAction", "PrtsErrorConfirm", "OfflineConfirm", @@ -2846,7 +2846,7 @@ ] }, "PRTS2": { - "baseTask": "PRTS", + "baseTask": "PRTS1", "algorithm": "OcrDetect", "text": [ "接管" @@ -2859,7 +2859,7 @@ ] }, "PRTS3": { - "baseTask": "PRTS", + "baseTask": "PRTS1", "algorithm": "OcrDetect", "text": [ "角色" @@ -2875,9 +2875,7 @@ "algorithm": "JustReturn", "action": "DoNothing", "next": [ - "PRTS", - "PRTS2", - "PRTS3", + "PRTS#next", "EndOfAction", "#self@LoadingText", "#self@LoadingIcon", @@ -3166,9 +3164,7 @@ 160 ], "next": [ - "PRTS", - "PRTS2", - "PRTS3", + "PRTS#next", "PrtsErrorConfirm", "OfflineConfirm", "StartUpThemes#next", From 3f0636ac61daa2dbd7d8c8118d8ae2091e8f0bfa Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Thu, 23 Feb 2023 09:56:33 +0800 Subject: [PATCH 045/100] style: format MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 请各位开发者统一代码风格! ``` python tools\ClangFormatter\clang-formatter.py --clang-format=YOUR\PATH\TO\clang-format.exe --input=src\MaaCore python tools\ClangFormatter\clang-formatter.py --clang-format=YOUR\PATH\TO\clang-format.exe --input=src\resource ``` 参考 https://maa.plus/docs/2.2-%E5%BC%80%E5%8F%91%E7%9B%B8%E5%85%B3.html#%E5%9C%A8-visual-studio-%E4%B8%AD%E5%90%AF%E7%94%A8-clang-format --- resource/Arknights-Tile-Pos/.clang-format | 3 -- resource/copilot/SSS_多索雷斯在建地块.json | 15 +++--- resource/global/txwy/resource/tasks.json | 42 ++++++++--------- resource/tasks.json | 43 +++++++++-------- src/MaaCore/Assistant.cpp | 4 +- .../Miscellaneous/AvatarCacheManager.cpp | 6 +-- src/MaaCore/Config/TaskData.cpp | 3 +- src/MaaCore/Controller.cpp | 7 +-- .../Task/Fight/DrGrandetTaskPlugin.cpp | 4 +- .../Task/Infrast/InfrastAbstractTask.cpp | 23 ++++++---- .../Task/Infrast/InfrastAbstractTask.h | 3 +- src/MaaCore/Task/Infrast/InfrastDormTask.cpp | 6 +-- src/MaaCore/Task/Infrast/InfrastInfoTask.cpp | 2 +- .../Task/Infrast/InfrastReceptionTask.cpp | 6 +-- src/MaaCore/Task/Interface/AwardTask.cpp | 3 +- src/MaaCore/Task/Interface/DepotTask.cpp | 3 +- .../Task/Interface/ReclamationTask.cpp | 1 - src/MaaCore/Task/Interface/SingleStepTask.cpp | 6 +-- .../Task/Miscellaneous/BattleProcessTask.cpp | 2 +- .../Task/Miscellaneous/CreditShoppingTask.cpp | 6 +-- .../Miscellaneous/DepotRecognitionTask.cpp | 4 +- .../Reclamation/ReclamationBattlePlugin.cpp | 20 ++++---- .../Reclamation/ReclamationBattlePlugin.h | 6 +-- .../ReclamationConclusionReportPlugin.cpp | 14 +++--- .../ReclamationConclusionReportPlugin.h | 1 - .../Reclamation/ReclamationControlTask.cpp | 10 ++-- .../Task/Reclamation/ReclamationControlTask.h | 46 +++++++++---------- src/MaaCore/Task/ReportDataTask.cpp | 6 +-- src/MaaCore/Task/ReportDataTask.h | 3 +- .../RoguelikeCustomStartTaskPlugin.cpp | 4 +- .../RoguelikeCustomStartTaskPlugin.h | 8 ++-- .../RoguelikeFormationTaskPlugin.cpp | 4 +- .../Roguelike/RoguelikeRecruitTaskPlugin.cpp | 3 +- .../Roguelike/RoguelikeShoppingTaskPlugin.cpp | 4 +- .../RoguelikeSkillSelectionTaskPlugin.cpp | 4 +- .../SingleStepBattleProcessTask.cpp | 2 +- .../InfrastClueVacancyImageAnalyzer.cpp | 2 +- .../Infrast/InfrastFacilityImageAnalyzer.cpp | 2 +- .../Infrast/InfrastOperImageAnalyzer.cpp | 6 +-- .../Infrast/InfrastSmileyImageAnalyzer.cpp | 2 +- .../BattleSkillReadyImageAnalyzer.cpp | 2 +- .../Miscellaneous/CreditShopImageAnalyzer.cpp | 10 ++-- .../Miscellaneous/RecruitImageAnalyzer.cpp | 4 +- .../Miscellaneous/StageDropsImageAnalyzer.h | 5 +- .../RoguelikeFormationImageAnalyzer.cpp | 2 +- .../RoguelikeSkillSelectionImageAnalyzer.cpp | 6 +-- 46 files changed, 186 insertions(+), 182 deletions(-) delete mode 100644 resource/Arknights-Tile-Pos/.clang-format diff --git a/resource/Arknights-Tile-Pos/.clang-format b/resource/Arknights-Tile-Pos/.clang-format deleted file mode 100644 index 01d0321393..0000000000 --- a/resource/Arknights-Tile-Pos/.clang-format +++ /dev/null @@ -1,3 +0,0 @@ -Language: Json -ColumnLimit: 1000 -IndentWidth: 2 diff --git a/resource/copilot/SSS_多索雷斯在建地块.json b/resource/copilot/SSS_多索雷斯在建地块.json index 8c4d5d4b72..d4994789c8 100644 --- a/resource/copilot/SSS_多索雷斯在建地块.json +++ b/resource/copilot/SSS_多索雷斯在建地块.json @@ -14,11 +14,11 @@ "A", "A", "A", "A" ], "strategy": "优选策略", - "opers":[ + "opers": [ { "name": "棘刺", "skill": 3, - "skill_usage":1 + "skill_usage": 1 }, { "name": "泥岩", @@ -41,14 +41,14 @@ "skill_usage": 0 } ], - "tool_men":{ + "tool_men": { "先锋": 1, "近卫": 2, "辅助": 7, "重装": 2, "术士": 3 }, - "drops":[ + "drops": [ "近卫", "无需增调干员", "辅助", @@ -86,7 +86,7 @@ "梅尔", "罗小黑" ], - "stages":[ + "stages": [ { "stage_name": "蜂拥而上", "strategies": [ @@ -197,7 +197,7 @@ 5, 3 ], - "direction": "Left" + "direction": "Left" }, { "core": "泥岩", @@ -268,7 +268,8 @@ "近卫": 3 }, "location": [ - 6,1 + 6, + 1 ], "direction": "Left" }, diff --git a/resource/global/txwy/resource/tasks.json b/resource/global/txwy/resource/tasks.json index 23c9799e74..d1233caf70 100644 --- a/resource/global/txwy/resource/tasks.json +++ b/resource/global/txwy/resource/tasks.json @@ -17,22 +17,22 @@ "殘陽" ] }, - "LevelOfDifficulty": { + "LevelOfDifficulty": { "text": [ "環境", "PRTS" ] - }, + }, "EnterChapterDifficultyHard": { "text": [ "進入", - "作戰" + "作戰" ] }, "EnterChapterDifficultyNormal": { "text": [ "進入", - "作戰" + "作戰" ] }, "StageEpisodeToOF": { @@ -51,7 +51,7 @@ "algorithm": "OcrDetect", "text": [ "愚人號", - "活動", + "活動", "關卡已開放" ], "roi": [ @@ -61,21 +61,21 @@ 150 ] }, - "SN-Chapter2": { - "preDelay":2000, + "SN-Chapter2": { + "preDelay": 2000, "next": [ "SN-Chapter2", "ChapterSwipeToTheRight" ] }, "SN-Chapter3": { - "preDelay":2000, + "preDelay": 2000, "next": [ "SN-Chapter3", "ChapterSwipeToTheLeft" ] }, - "BattleStartPre": { + "BattleStartPre": { "text": [ "開始行動", "開始突襲", @@ -112,11 +112,11 @@ "杰西卡" ], [ - "潔絮西卡", + "潔絮西卡", "杰西卡" ], - [ - "絮西卡", + [ + "絮西卡", "杰西卡" ], [ @@ -823,15 +823,15 @@ "澄閃", "澄闪" ], - [ + [ "風丸", "风丸" ], - [ + [ "見行者", "见行者" ], - [ + [ "菲亞梅塔", "菲亚梅塔" ], @@ -839,19 +839,19 @@ "號角", "号角" ], - [ + [ "歸溟幽靈鯊", "归溟幽灵鲨" ], - [ + [ "掠風", "掠风" ], - [ + [ "流明", "流明" ], - [ + [ "艾麗妮", "艾丽妮" ] @@ -1062,12 +1062,12 @@ "採" ] }, - "CreditShop-NoMoney": { + "CreditShop-NoMoney": { "text": [ "信用不足", "無法購買" ] - }, + }, "InfrastReward": { "text": [ "可收穫", diff --git a/resource/tasks.json b/resource/tasks.json index 6609118ea9..17cb93c156 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -6556,24 +6556,15 @@ "template": "empty.png", "templThreshold": 0.75 }, - "BattleOperRoleCaster": { - }, - "BattleOperRoleMedic": { - }, - "BattleOperRolePioneer": { - }, - "BattleOperRoleSniper": { - }, - "BattleOperRoleSpecial": { - }, - "BattleOperRoleSupport": { - }, - "BattleOperRoleTank": { - }, - "BattleOperRoleWarrior": { - }, - "BattleOperRoleDrone": { - }, + "BattleOperRoleCaster": {}, + "BattleOperRoleMedic": {}, + "BattleOperRolePioneer": {}, + "BattleOperRoleSniper": {}, + "BattleOperRoleSpecial": {}, + "BattleOperRoleSupport": {}, + "BattleOperRoleTank": {}, + "BattleOperRoleWarrior": {}, + "BattleOperRoleDrone": {}, "BattleOperCostRange": { "algorithm": "Hash", "hash": [], @@ -9540,7 +9531,9 @@ }, "RoguelikeRefreshSupportBtnOcr": { "algorithm": "OcrDetect", - "text": [ "更新助战列表" ], + "text": [ + "更新助战列表" + ], "roi": [ 1097, 13, @@ -9556,7 +9549,9 @@ }, "RoguelikeChooseSupportBtnOcr": { "algorithm": "OcrDetect", - "text": [ "选择助战" ], + "text": [ + "选择助战" + ], "roi": [ 1011, 9, @@ -11049,12 +11044,16 @@ "CheckNextDay@Reclamation@NextDay": { "template": "Reclamation@NextDay.png", "postDelay": 0, - "next": [ "Stop" ] + "next": [ + "Stop" + ] }, "EnterNextDay@Reclamation@Begin": { "baseTask": "Reclamation@NextDay", "template": "Reclamation@NextDay.png", - "next": [ "Stop" ] + "next": [ + "Stop" + ] }, "WaitNextDayFlag@Reclamation@BetweenDayFlag": { "template": "Reclamation@BetweenDayFlag.png", diff --git a/src/MaaCore/Assistant.cpp b/src/MaaCore/Assistant.cpp index 7ebde35da1..efc494f37f 100644 --- a/src/MaaCore/Assistant.cpp +++ b/src/MaaCore/Assistant.cpp @@ -14,12 +14,12 @@ #include "Task/Interface/DepotTask.h" #include "Task/Interface/FightTask.h" #include "Task/Interface/InfrastTask.h" -#include "Task/Interface/SingleStepTask.h" #include "Task/Interface/MallTask.h" -#include "Task/Interface/RecruitTask.h" #include "Task/Interface/ReclamationTask.h" +#include "Task/Interface/RecruitTask.h" #include "Task/Interface/RoguelikeTask.h" #include "Task/Interface/SSSCopilotTask.h" +#include "Task/Interface/SingleStepTask.h" #include "Task/Interface/StartUpTask.h" #include "Utils/Logger.hpp" #ifdef ASST_DEBUG diff --git a/src/MaaCore/Config/Miscellaneous/AvatarCacheManager.cpp b/src/MaaCore/Config/Miscellaneous/AvatarCacheManager.cpp index 5b6a92d9fd..a38d26d7e2 100644 --- a/src/MaaCore/Config/Miscellaneous/AvatarCacheManager.cpp +++ b/src/MaaCore/Config/Miscellaneous/AvatarCacheManager.cpp @@ -1,9 +1,9 @@ #include "AvatarCacheManager.h" +#include "../TaskData.h" #include "BattleDataConfig.h" #include "Utils/ImageIo.hpp" #include "Utils/Logger.hpp" -#include "../TaskData.h" bool asst::AvatarCacheManager::load(const std::filesystem::path& path) { @@ -30,10 +30,10 @@ bool asst::AvatarCacheManager::load(const std::filesystem::path& path) Log.warn("unknown oper", name); continue; } - + Log.trace(filepath); cv::Mat avatar = asst::imread(filepath); - + if (avatar.empty()) { Log.warn("failed to read", filepath); continue; diff --git a/src/MaaCore/Config/TaskData.cpp b/src/MaaCore/Config/TaskData.cpp index f0841ec3e2..bcb47eaec2 100644 --- a/src/MaaCore/Config/TaskData.cpp +++ b/src/MaaCore/Config/TaskData.cpp @@ -319,7 +319,8 @@ bool asst::TaskData::explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_ } case symbl_sharp: { if (y->empty()) { - Log.error("There is no sharp_type while perform op", symbl_table[op], "in", task_expr, "of task:", task_name); + Log.error("There is no sharp_type while perform op", symbl_table[op], "in", task_expr, + "of task:", task_name); return std::nullopt; } for (std::string_view type : *y) { diff --git a/src/MaaCore/Controller.cpp b/src/MaaCore/Controller.cpp index a26326c62d..34079b0998 100644 --- a/src/MaaCore/Controller.cpp +++ b/src/MaaCore/Controller.cpp @@ -797,7 +797,7 @@ bool asst::Controller::swipe_without_scale(const Point& p1, const Point& p2, int const auto& opt = Config.get_options(); if (m_minitouch_enabled && m_minitouch_available) { Log.trace(m_use_maa_touch ? "maatouch" : "minitouch", "swipe", p1, p2, duration, extra_swipe, slope_in, - slope_out); + slope_out); Minitoucher toucher(std::bind(&Controller::input_to_minitouch, this, std::placeholders::_1), m_minitouch_props); toucher.down(x1, y1); @@ -1600,7 +1600,7 @@ std::optional asst::Controller::call_command_posix(const std::string& cmd, if (client_socket < 0) { Log.error("accept failed:", strerror(errno)); ::kill(m_child, SIGKILL); - ::waitpid(m_child, &exit_ret, 0); + ::waitpid(m_child, &exit_ret, 0); return std::nullopt; } @@ -1621,7 +1621,8 @@ std::optional asst::Controller::call_command_posix(const std::string& cmd, } } while (::waitpid(m_child, &exit_ret, WNOHANG) == 0 && !check_timeout()); } - ::waitpid(m_child, &exit_ret, 0); // if ::waitpid(m_child, &exit_ret, WNOHANG) == 0, repeat it will cause ECHILD, so not check the return value + ::waitpid(m_child, &exit_ret, 0); // if ::waitpid(m_child, &exit_ret, WNOHANG) == 0, repeat it will cause + // ECHILD, so not check the return value } else { // failed to create child process diff --git a/src/MaaCore/Task/Fight/DrGrandetTaskPlugin.cpp b/src/MaaCore/Task/Fight/DrGrandetTaskPlugin.cpp index 56e6484bdb..39b0dedb94 100644 --- a/src/MaaCore/Task/Fight/DrGrandetTaskPlugin.cpp +++ b/src/MaaCore/Task/Fight/DrGrandetTaskPlugin.cpp @@ -1,9 +1,9 @@ #include "DrGrandetTaskPlugin.h" -#include "Controller.h" -#include "Vision/OcrImageAnalyzer.h" #include "Config/TaskData.h" +#include "Controller.h" #include "Utils/Logger.hpp" +#include "Vision/OcrImageAnalyzer.h" #include diff --git a/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp b/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp index 224d62cac4..2be908161e 100644 --- a/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp @@ -5,16 +5,16 @@ #include #include "Common/AsstMsg.h" +#include "Config/TaskData.h" #include "Controller.h" +#include "Task/ProcessTask.h" +#include "Utils/Logger.hpp" +#include "Utils/Ranges.hpp" #include "Vision/Infrast/InfrastFacilityImageAnalyzer.h" #include "Vision/Infrast/InfrastOperImageAnalyzer.h" #include "Vision/MatchImageAnalyzer.h" #include "Vision/OcrImageAnalyzer.h" #include "Vision/OcrWithPreprocessImageAnalyzer.h" -#include "Config/TaskData.h" -#include "Task/ProcessTask.h" -#include "Utils/Logger.hpp" -#include "Utils/Ranges.hpp" asst::InfrastAbstractTask::InfrastAbstractTask(const AsstCallback& callback, Assistant* inst, std::string_view task_chain) @@ -242,7 +242,8 @@ bool asst::InfrastAbstractTask::swipe_and_select_custom_opers(bool is_dorm_order /// @param origin_room_config 期望的配置 /// @param num_of_opers_expect 期望选中的人数,空置则按names.size()判断 /// @return 是否符合期望 -bool asst::InfrastAbstractTask::select_opers_review(infrast::CustomRoomConfig const& origin_room_config, size_t num_of_opers_expect) +bool asst::InfrastAbstractTask::select_opers_review(infrast::CustomRoomConfig const& origin_room_config, + size_t num_of_opers_expect) { LogTraceFunction; // save_img("debug/"); @@ -250,15 +251,18 @@ bool asst::InfrastAbstractTask::select_opers_review(infrast::CustomRoomConfig co const auto image = ctrler()->get_image(); InfrastOperImageAnalyzer oper_analyzer(image); - oper_analyzer.set_to_be_calced(InfrastOperImageAnalyzer::ToBeCalced::Selected | InfrastOperImageAnalyzer::ToBeCalced::Doing); + oper_analyzer.set_to_be_calced(InfrastOperImageAnalyzer::ToBeCalced::Selected | + InfrastOperImageAnalyzer::ToBeCalced::Doing); if (!oper_analyzer.analyze()) { Log.warn("No oper"); return false; } oper_analyzer.sort_by_loc(); const auto& oper_analyzer_res = oper_analyzer.get_result(); - size_t selected_count = ranges::count_if(oper_analyzer_res, [](const infrast::Oper& info) { return info.selected; }); - Log.info("selected_count,config.names.size,num_of_opers_expect = ", selected_count, ",", room_config.names.size(), ",", num_of_opers_expect); + size_t selected_count = + ranges::count_if(oper_analyzer_res, [](const infrast::Oper& info) { return info.selected; }); + Log.info("selected_count,config.names.size,num_of_opers_expect = ", selected_count, ",", room_config.names.size(), + ",", num_of_opers_expect); if (selected_count < num_of_opers_expect) { Log.warn("select opers review fail: 选中干员数与期望不符"); @@ -289,7 +293,8 @@ bool asst::InfrastAbstractTask::select_opers_review(infrast::CustomRoomConfig co if (auto iter = ranges::find(room_config.names, name); iter != room_config.names.end()) { Log.info(name, "在\"operators\"中,且已选中"); room_config.names.erase(iter); - } else { // 备选干员或自动选择,只要不选工作中的干员即可 + } + else { // 备选干员或自动选择,只要不选工作中的干员即可 if (oper.doing == infrast::Doing::Working) { Log.warn("选了工作中的干员:", name); Log.warn("select opers review fail: 非自定义配置,却选了工作中的干员"); diff --git a/src/MaaCore/Task/Infrast/InfrastAbstractTask.h b/src/MaaCore/Task/Infrast/InfrastAbstractTask.h index 43c9667904..e188b30b17 100644 --- a/src/MaaCore/Task/Infrast/InfrastAbstractTask.h +++ b/src/MaaCore/Task/Infrast/InfrastAbstractTask.h @@ -39,7 +39,8 @@ namespace asst infrast::CustomRoomConfig& current_room_config(); bool swipe_and_select_custom_opers(bool is_dorm_order = false); bool select_custom_opers(std::vector& partial_result); - bool select_opers_review(infrast::CustomRoomConfig const& origin_room_config, size_t num_of_opers_expect = 0); // 复核干员选择是否符合期望 + bool select_opers_review(infrast::CustomRoomConfig const& origin_room_config, + size_t num_of_opers_expect = 0); // 复核干员选择是否符合期望 void order_opers_selection(const std::vector& names); virtual void click_return_button() override; diff --git a/src/MaaCore/Task/Infrast/InfrastDormTask.cpp b/src/MaaCore/Task/Infrast/InfrastDormTask.cpp index 8aab98f4ea..dc7afbb16a 100644 --- a/src/MaaCore/Task/Infrast/InfrastDormTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastDormTask.cpp @@ -2,14 +2,14 @@ #include +#include "Config/TaskData.h" #include "Controller.h" +#include "Task/ProcessTask.h" +#include "Utils/Logger.hpp" #include "Vision/Infrast/InfrastOperImageAnalyzer.h" #include "Vision/MatchImageAnalyzer.h" #include "Vision/OcrImageAnalyzer.h" #include "Vision/OcrWithPreprocessImageAnalyzer.h" -#include "Config/TaskData.h" -#include "Task/ProcessTask.h" -#include "Utils/Logger.hpp" asst::InfrastDormTask& asst::InfrastDormTask::set_notstationed_enabled(bool dorm_notstationed_enabled) noexcept { diff --git a/src/MaaCore/Task/Infrast/InfrastInfoTask.cpp b/src/MaaCore/Task/Infrast/InfrastInfoTask.cpp index 7e57a67fa4..8033058c82 100644 --- a/src/MaaCore/Task/Infrast/InfrastInfoTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastInfoTask.cpp @@ -1,9 +1,9 @@ #include "InfrastInfoTask.h" #include "Controller.h" -#include "Vision/Infrast/InfrastFacilityImageAnalyzer.h" #include "Status.h" #include "Utils/Logger.hpp" +#include "Vision/Infrast/InfrastFacilityImageAnalyzer.h" bool asst::InfrastInfoTask::_run() { diff --git a/src/MaaCore/Task/Infrast/InfrastReceptionTask.cpp b/src/MaaCore/Task/Infrast/InfrastReceptionTask.cpp index b80261c8c9..dda7c5265f 100644 --- a/src/MaaCore/Task/Infrast/InfrastReceptionTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastReceptionTask.cpp @@ -2,13 +2,13 @@ #include "Utils/Ranges.hpp" +#include "Config/TaskData.h" #include "Controller.h" +#include "Task/ProcessTask.h" +#include "Utils/Logger.hpp" #include "Vision/Infrast/InfrastClueImageAnalyzer.h" #include "Vision/Infrast/InfrastClueVacancyImageAnalyzer.h" #include "Vision/MatchImageAnalyzer.h" -#include "Config/TaskData.h" -#include "Task/ProcessTask.h" -#include "Utils/Logger.hpp" bool asst::InfrastReceptionTask::_run() { diff --git a/src/MaaCore/Task/Interface/AwardTask.cpp b/src/MaaCore/Task/Interface/AwardTask.cpp index 99472678b3..02503f708f 100644 --- a/src/MaaCore/Task/Interface/AwardTask.cpp +++ b/src/MaaCore/Task/Interface/AwardTask.cpp @@ -4,8 +4,7 @@ #include "Task/ProcessTask.h" -asst::AwardTask::AwardTask(const AsstCallback& callback, Assistant* inst) - : InterfaceTask(callback, inst, TaskType) +asst::AwardTask::AwardTask(const AsstCallback& callback, Assistant* inst) : InterfaceTask(callback, inst, TaskType) { auto award_task_ptr = std::make_shared(m_callback, m_inst, TaskType); award_task_ptr->set_tasks({ "AwardBegin" }); diff --git a/src/MaaCore/Task/Interface/DepotTask.cpp b/src/MaaCore/Task/Interface/DepotTask.cpp index 22a8f6fb2d..d47dae3ae6 100644 --- a/src/MaaCore/Task/Interface/DepotTask.cpp +++ b/src/MaaCore/Task/Interface/DepotTask.cpp @@ -3,8 +3,7 @@ #include "Task/Miscellaneous/DepotRecognitionTask.h" #include "Task/ProcessTask.h" -asst::DepotTask::DepotTask(const AsstCallback& callback, Assistant* inst) - : InterfaceTask(callback, inst, TaskType) +asst::DepotTask::DepotTask(const AsstCallback& callback, Assistant* inst) : InterfaceTask(callback, inst, TaskType) { auto enter_task = std::make_shared(m_callback, m_inst, TaskType); enter_task->set_tasks({ "DepotBegin" }).set_ignore_error(true); diff --git a/src/MaaCore/Task/Interface/ReclamationTask.cpp b/src/MaaCore/Task/Interface/ReclamationTask.cpp index c7de688f38..45b914e0b4 100644 --- a/src/MaaCore/Task/Interface/ReclamationTask.cpp +++ b/src/MaaCore/Task/Interface/ReclamationTask.cpp @@ -9,7 +9,6 @@ #include "Task/Reclamation/ReclamationConclusionReportPlugin.h" #include "Task/Reclamation/ReclamationControlTask.h" - asst::ReclamationTask::ReclamationTask(const AsstCallback& callback, Assistant* inst) : InterfaceTask(callback, inst, TaskType), m_reclamation_task_ptr(std::make_shared(callback, inst, TaskType)) diff --git a/src/MaaCore/Task/Interface/SingleStepTask.cpp b/src/MaaCore/Task/Interface/SingleStepTask.cpp index cd5528f2ff..bc931ee3e7 100644 --- a/src/MaaCore/Task/Interface/SingleStepTask.cpp +++ b/src/MaaCore/Task/Interface/SingleStepTask.cpp @@ -12,7 +12,7 @@ asst::SingleStepTask::SingleStepTask(const AsstCallback& callback, Assistant* in bool asst::SingleStepTask::set_params(const json::value& params) { LogTraceFunction; - + std::string type = params.get("type", ""); std::string subtype = params.get("subtype", ""); auto details_opt = params.find("details"); @@ -39,7 +39,7 @@ bool asst::SingleStepTask::set_copilot_stage(const json::value& details) bool asst::SingleStepTask::append_copllot_start() { LogTraceFunction; - + auto start_2_tp = std::make_shared(m_callback, m_inst, TaskType); start_2_tp->set_tasks({ "BattleStartAll" }).set_ignore_error(false); m_subtasks.emplace_back(std::move(start_2_tp)); @@ -50,7 +50,7 @@ bool asst::SingleStepTask::append_copllot_start() bool asst::SingleStepTask::append_copilot_action(const json::value& details) { LogTraceFunction; - + auto task = std::make_shared(m_callback, m_inst, TaskType); try { diff --git a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp index df4f1ef22e..893e9837a0 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp @@ -247,7 +247,7 @@ bool asst::BattleProcessTask::wait_condition(const Action& action) if (image.empty()) { image = ctrler()->get_image(); check_in_battle(image); - } + } }; auto do_strategy_and_update_image = [&]() { do_strategic_action(image); diff --git a/src/MaaCore/Task/Miscellaneous/CreditShoppingTask.cpp b/src/MaaCore/Task/Miscellaneous/CreditShoppingTask.cpp index 3f99e1a911..d6b660d511 100644 --- a/src/MaaCore/Task/Miscellaneous/CreditShoppingTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/CreditShoppingTask.cpp @@ -3,13 +3,13 @@ #include #include +#include "Config/TaskData.h" #include "Controller.h" +#include "Task/ProcessTask.h" +#include "Utils/Logger.hpp" #include "Vision/MatchImageAnalyzer.h" #include "Vision/Miscellaneous/CreditShopImageAnalyzer.h" #include "Vision/OcrImageAnalyzer.h" -#include "Config/TaskData.h" -#include "Task/ProcessTask.h" -#include "Utils/Logger.hpp" void asst::CreditShoppingTask::set_black_list(std::vector black_list) { diff --git a/src/MaaCore/Task/Miscellaneous/DepotRecognitionTask.cpp b/src/MaaCore/Task/Miscellaneous/DepotRecognitionTask.cpp index 27292e2cdd..e9da44e8bb 100644 --- a/src/MaaCore/Task/Miscellaneous/DepotRecognitionTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/DepotRecognitionTask.cpp @@ -4,12 +4,12 @@ #include -#include "Controller.h" -#include "Vision/Miscellaneous/DepotImageAnalyzer.h" #include "Config/GeneralConfig.h" #include "Config/TaskData.h" +#include "Controller.h" #include "Task/ProcessTask.h" #include "Utils/Logger.hpp" +#include "Vision/Miscellaneous/DepotImageAnalyzer.h" bool asst::DepotRecognitionTask::_run() { diff --git a/src/MaaCore/Task/Reclamation/ReclamationBattlePlugin.cpp b/src/MaaCore/Task/Reclamation/ReclamationBattlePlugin.cpp index 9a1b73ed7d..490049f4bc 100644 --- a/src/MaaCore/Task/Reclamation/ReclamationBattlePlugin.cpp +++ b/src/MaaCore/Task/Reclamation/ReclamationBattlePlugin.cpp @@ -2,21 +2,20 @@ #include "Utils/NoWarningCV.h" +#include "Config/TaskData.h" #include "Controller.h" +#include "ReclamationControlTask.h" #include "Status.h" #include "Task/ProcessTask.h" #include "Utils/Logger.hpp" -#include "Vision/OcrImageAnalyzer.h" #include "Vision/MatchImageAnalyzer.h" #include "Vision/Miscellaneous/BattleSkillReadyImageAnalyzer.h" -#include "Config/TaskData.h" -#include "ReclamationControlTask.h" +#include "Vision/OcrImageAnalyzer.h" using namespace asst; - asst::ReclamationBattlePlugin::ReclamationBattlePlugin(const AsstCallback& callback, Assistant* inst, - std::string_view task_chain) + std::string_view task_chain) : AbstractTaskPlugin(callback, inst, task_chain), BattleHelper(inst) {} @@ -42,7 +41,7 @@ bool asst::ReclamationBattlePlugin::_run() return quit_action(); } else if (m_battle_mode == ReclamationBattleMode::BuyWater) { - sleep(1500); // 等待技能图标 + sleep(1500); // 等待技能图标 bool result = buy_water(); quit_action(); return result; @@ -121,7 +120,8 @@ bool asst::ReclamationBattlePlugin::communicate_with(const std::string& npcName) return false; } -bool asst::ReclamationBattlePlugin::communicate_with_aux(const std::string& npcName, std::function orderComp) +bool asst::ReclamationBattlePlugin::communicate_with_aux( + const std::string& npcName, std::function orderComp) { auto image = ctrler()->get_image(); BattleSkillReadyImageAnalyzer skillReadyAnalyzer(image); @@ -181,9 +181,9 @@ bool asst::ReclamationBattlePlugin::do_dialog_procedure(const std::vectorget_image(); @@ -196,7 +196,7 @@ bool asst::ReclamationBattlePlugin::do_dialog_procedure(const std::vector +#include "Config/TaskData.h" #include "Controller.h" #include "Status.h" #include "Task/ProcessTask.h" #include "Utils/Logger.hpp" -#include "Vision/OcrImageAnalyzer.h" #include "Vision/MatchImageAnalyzer.h" -#include "Config/TaskData.h" - +#include "Vision/OcrImageAnalyzer.h" bool asst::ReclamationConclusionReportPlugin::verify(AsstMsg msg, const json::value& details) const { @@ -42,10 +40,11 @@ bool asst::ReclamationConclusionReportPlugin::check_page_valid(const cv::Mat& im return pageAnalyzer.analyze(); } -void asst::ReclamationConclusionReportPlugin::analyze(const cv::Mat& image) { +void asst::ReclamationConclusionReportPlugin::analyze(const cv::Mat& image) +{ m_badges = analyze_badges(image); m_construction_points = analyze_construction_points(image); - + m_total_badges += (m_badges == -1 ? 0 : m_badges); m_total_cons_points += (m_construction_points == -1 ? 0 : m_construction_points); } @@ -89,7 +88,8 @@ int asst::ReclamationConclusionReportPlugin::analyze_construction_points(const c } } -void asst::ReclamationConclusionReportPlugin::info_callback() { +void asst::ReclamationConclusionReportPlugin::info_callback() +{ json::value info = basic_info_with_what("ReclamationReport"); json::value& details = info["details"]; details["badges"] = m_badges; diff --git a/src/MaaCore/Task/Reclamation/ReclamationConclusionReportPlugin.h b/src/MaaCore/Task/Reclamation/ReclamationConclusionReportPlugin.h index 2639a7a269..15548b5494 100644 --- a/src/MaaCore/Task/Reclamation/ReclamationConclusionReportPlugin.h +++ b/src/MaaCore/Task/Reclamation/ReclamationConclusionReportPlugin.h @@ -10,7 +10,6 @@ #include "Status.h" #include "Utils/NoWarningCVMat.h" - namespace asst { class ProcessTask; diff --git a/src/MaaCore/Task/Reclamation/ReclamationControlTask.cpp b/src/MaaCore/Task/Reclamation/ReclamationControlTask.cpp index 3bcadc26f4..0a0977a2e2 100644 --- a/src/MaaCore/Task/Reclamation/ReclamationControlTask.cpp +++ b/src/MaaCore/Task/Reclamation/ReclamationControlTask.cpp @@ -9,7 +9,7 @@ #include "ReclamationBattlePlugin.h" -#define RunCheckSuccess(func, ...) \ +#define RunCheckSuccess(func, ...) \ do { \ if (!func(__VA_ARGS__)) return false; \ } while (false); @@ -96,7 +96,7 @@ bool asst::ReclamationControlTask::run_smelt_gold_procedure() for (int i = 0; i < 2; ++i) swipe_right(); RunCheckSuccess(ProcessTask(*this, { "Reclamation@EnterSmeltGoldPage" }).run); - + if (check_manufacture_status() != 1) return false; while (!need_exit() && check_manufacture_status() == 1) { smelt_gold_callback(++m_total_gold); @@ -229,14 +229,16 @@ bool asst::ReclamationControlTask::swipe_left() return ProcessTask(*this, { "Reclamation@CmdCenterSwipeLeft" }).run(); } -void asst::ReclamationControlTask::procedure_start_callback(int times) { +void asst::ReclamationControlTask::procedure_start_callback(int times) +{ json::value info = basic_info_with_what("ReclamationProcedureStart"); json::value& details = info["details"]; details["times"] = times; callback(AsstMsg::SubTaskExtraInfo, info); } -void asst::ReclamationControlTask::smelt_gold_callback(int times) { +void asst::ReclamationControlTask::smelt_gold_callback(int times) +{ json::value info = basic_info_with_what("ReclamationSmeltGold"); json::value& details = info["details"]; details["times"] = times; diff --git a/src/MaaCore/Task/Reclamation/ReclamationControlTask.h b/src/MaaCore/Task/Reclamation/ReclamationControlTask.h index 09e1a417a3..bedef05b05 100644 --- a/src/MaaCore/Task/Reclamation/ReclamationControlTask.h +++ b/src/MaaCore/Task/Reclamation/ReclamationControlTask.h @@ -22,35 +22,35 @@ namespace asst bool run_giveup_upon_fight_procedure(); bool run_smelt_gold_procedure(); - bool navigate_to_reclamation_home(); // 导航至生息演算主界面 - bool give_up_last_algorithm_if(); // 如果有,放弃上次演算 - bool start_with_default_formation(); // 开始演算,至第一天 - bool skip_announce_report(); // 跳过每日公告 - bool start_action_enter(); // 区域交互确认 - bool battle_default_formation_start(); // 默认战斗编队并开始战斗 - bool level_complete_comfirm(); // 场景退出结算,至地图界面 - bool enter_next_day_if_useup(); // 如果决断点耗尽,进入下一天 - bool wait_between_day(); // 等待日期转换动画结束 - bool reset_scope(); // 重置地图大小 - bool enter_command_center(); // 进入侧边栏的命令中心 - bool do_manufacture(); // 点击制作按钮 + bool navigate_to_reclamation_home(); // 导航至生息演算主界面 + bool give_up_last_algorithm_if(); // 如果有,放弃上次演算 + bool start_with_default_formation(); // 开始演算,至第一天 + bool skip_announce_report(); // 跳过每日公告 + bool start_action_enter(); // 区域交互确认 + bool battle_default_formation_start(); // 默认战斗编队并开始战斗 + bool level_complete_comfirm(); // 场景退出结算,至地图界面 + bool enter_next_day_if_useup(); // 如果决断点耗尽,进入下一天 + bool wait_between_day(); // 等待日期转换动画结束 + bool reset_scope(); // 重置地图大小 + bool enter_command_center(); // 进入侧边栏的命令中心 + bool do_manufacture(); // 点击制作按钮 - bool check_next_day(); // 决断点消耗完进入下一天的标志 - bool check_emergency(); // 敌袭到达 - int check_manufacture_status(); // 制造界面是否材料充足,0不足,1充足,-1非建造页面 + bool check_next_day(); // 决断点消耗完进入下一天的标志 + bool check_emergency(); // 敌袭到达 + int check_manufacture_status(); // 制造界面是否材料充足,0不足,1充足,-1非建造页面 - bool click_center_base(); // 点击中心基地图标 - bool click_corner_black_market(); // 点击左上角黑市图标 - bool click_any_zone(); // 点击奇遇外任意区 - bool click_black_market(); // 点击黑市 - - bool swipe_right(); + bool click_center_base(); // 点击中心基地图标 + bool click_corner_black_market(); // 点击左上角黑市图标 + bool click_any_zone(); // 点击奇遇外任意区 + bool click_black_market(); // 点击黑市 + + bool swipe_right(); bool swipe_left(); - + void procedure_start_callback(int times); void smelt_gold_callback(int times); ReclamationTaskMode m_task_mode = ReclamationTaskMode::GiveupUponFight; - int m_total_gold = 0; // 制作赤金的次数 + int m_total_gold = 0; // 制作赤金的次数 }; } diff --git a/src/MaaCore/Task/ReportDataTask.cpp b/src/MaaCore/Task/ReportDataTask.cpp index b6167c8b4e..5c0efb6d5e 100644 --- a/src/MaaCore/Task/ReportDataTask.cpp +++ b/src/MaaCore/Task/ReportDataTask.cpp @@ -87,7 +87,7 @@ void asst::ReportDataTask::report_to_penguin() constexpr int DefaultBackoff = 10 * 1000; // 10s int backoff = DefaultBackoff; - + auto penguin_success_cond = [](const http::Response& response) -> bool { return response.success(); }; auto penguin_retry_cond = [&](const http::Response& response) -> bool { if (!response.status_code()) { @@ -126,7 +126,7 @@ void asst::ReportDataTask::report_to_penguin() } Log.info("Re-report to penguin-stats.cn", Penguin_CN); std::string new_cmd_format = utils::string_replace_all(cmd_format, Penguin_IO, Penguin_CN); - + backoff = DefaultBackoff; response = report(PenguinSubtaskName, new_cmd_format, penguin_success_cond, penguin_retry_cond); @@ -202,6 +202,6 @@ asst::http::Response asst::ReportDataTask::escape_and_request(const std::string& Log.info("request:\n" + cmd_line); std::string response = utils::call_command(cmd_line); Log.info("response:\n" + response); - + return response; } diff --git a/src/MaaCore/Task/ReportDataTask.h b/src/MaaCore/Task/ReportDataTask.h index bc57c9ebdd..27dedb3e79 100644 --- a/src/MaaCore/Task/ReportDataTask.h +++ b/src/MaaCore/Task/ReportDataTask.h @@ -41,7 +41,8 @@ namespace asst void report_to_penguin(); void report_to_yituliu(); http::Response escape_and_request(const std::string& format); - http::Response report(std::string_view subtask, const std::string& format, + http::Response report( + std::string_view subtask, const std::string& format, HttpResponsePred success_cond = [](const http::Response& response) -> bool { return response.success(); }, HttpResponsePred retry_cond = [](const http::Response& response) -> bool { return !response.status_code() || response.status_5xx(); diff --git a/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.cpp index 009da15caa..8602dd6c6d 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.cpp @@ -1,12 +1,12 @@ #include "RoguelikeCustomStartTaskPlugin.h" -#include "Controller.h" -#include "Vision/OcrImageAnalyzer.h" #include "Config/Miscellaneous/BattleDataConfig.h" #include "Config/TaskData.h" +#include "Controller.h" #include "Status.h" #include "Task/ProcessTask.h" #include "Utils/Logger.hpp" +#include "Vision/OcrImageAnalyzer.h" bool asst::RoguelikeCustomStartTaskPlugin::verify(AsstMsg msg, const json::value& details) const { diff --git a/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.h index 069dc59247..809e093166 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.h @@ -6,10 +6,10 @@ namespace asst enum class RoguelikeCustomType { None, - Squad, // 分队类型, like 指挥分队, 矛头分队, etc - Roles, // 职业类型, like 先手必胜, 稳扎稳打, etc - CoreChar, // 首选干员, 干员名 - UseSupport, // 使用助战 + Squad, // 分队类型, like 指挥分队, 矛头分队, etc + Roles, // 职业类型, like 先手必胜, 稳扎稳打, etc + CoreChar, // 首选干员, 干员名 + UseSupport, // 使用助战 UseNonfriendSupport // 可以使用非好友助战 // CoCoreChar, // 次选干员, 干员名 }; diff --git a/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.cpp index e326433889..43f16a37f3 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.cpp @@ -2,12 +2,12 @@ #include "Utils/Ranges.hpp" -#include "Controller.h" -#include "Vision/Roguelike/RoguelikeFormationImageAnalyzer.h" #include "Config/TaskData.h" +#include "Controller.h" #include "Status.h" #include "Task/ProcessTask.h" #include "Utils/Logger.hpp" +#include "Vision/Roguelike/RoguelikeFormationImageAnalyzer.h" bool asst::RoguelikeFormationTaskPlugin::verify(AsstMsg msg, const json::value& details) const { diff --git a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp index 34f3b87729..e3ceb817fc 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp @@ -435,8 +435,7 @@ bool asst::RoguelikeRecruitTaskPlugin::check_support_char(const std::string& nam if (satisfied_chars.size()) break; } - if (page != MaxPageCnt - 1) - ProcessTask(*this, { "RoguelikeSupportSwipeRight" }).run(); + if (page != MaxPageCnt - 1) ProcessTask(*this, { "RoguelikeSupportSwipeRight" }).run(); } if (satisfied_chars.size()) break; diff --git a/src/MaaCore/Task/Roguelike/RoguelikeShoppingTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeShoppingTaskPlugin.cpp index d5e961f062..ded7c302f8 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeShoppingTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeShoppingTaskPlugin.cpp @@ -1,12 +1,12 @@ #include "RoguelikeShoppingTaskPlugin.h" -#include "Controller.h" -#include "Vision/OcrWithFlagTemplImageAnalyzer.h" #include "Config/Miscellaneous/BattleDataConfig.h" #include "Config/Roguelike/RoguelikeShoppingConfig.h" +#include "Controller.h" #include "Status.h" #include "Task/ProcessTask.h" #include "Utils/Logger.hpp" +#include "Vision/OcrWithFlagTemplImageAnalyzer.h" bool asst::RoguelikeShoppingTaskPlugin::verify(AsstMsg msg, const json::value& details) const { diff --git a/src/MaaCore/Task/Roguelike/RoguelikeSkillSelectionTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeSkillSelectionTaskPlugin.cpp index 92843d1392..d5994a8b74 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeSkillSelectionTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeSkillSelectionTaskPlugin.cpp @@ -1,10 +1,10 @@ #include "RoguelikeSkillSelectionTaskPlugin.h" -#include "Controller.h" -#include "Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.h" #include "Config/Roguelike/RoguelikeRecruitConfig.h" #include "Config/TaskData.h" +#include "Controller.h" #include "Status.h" +#include "Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.h" #include "Utils/Logger.hpp" diff --git a/src/MaaCore/Task/SingleStep/SingleStepBattleProcessTask.cpp b/src/MaaCore/Task/SingleStep/SingleStepBattleProcessTask.cpp index 3c5b521997..a7f0174244 100644 --- a/src/MaaCore/Task/SingleStep/SingleStepBattleProcessTask.cpp +++ b/src/MaaCore/Task/SingleStep/SingleStepBattleProcessTask.cpp @@ -7,7 +7,7 @@ bool asst::SingleStepBattleProcessTask::set_stage_name_cache(const std::string& stage_name) { LogTraceFunction; - + if (!Tile.contains(stage_name)) { Log.error("get stage info failed", stage_name); return false; diff --git a/src/MaaCore/Vision/Infrast/InfrastClueVacancyImageAnalyzer.cpp b/src/MaaCore/Vision/Infrast/InfrastClueVacancyImageAnalyzer.cpp index 0f007360f9..160160b3c5 100644 --- a/src/MaaCore/Vision/Infrast/InfrastClueVacancyImageAnalyzer.cpp +++ b/src/MaaCore/Vision/Infrast/InfrastClueVacancyImageAnalyzer.cpp @@ -1,8 +1,8 @@ #include "InfrastClueVacancyImageAnalyzer.h" -#include "Vision/MatchImageAnalyzer.h" #include "Utils/Logger.hpp" #include "Utils/NoWarningCV.h" +#include "Vision/MatchImageAnalyzer.h" bool asst::InfrastClueVacancyImageAnalyzer::analyze() { diff --git a/src/MaaCore/Vision/Infrast/InfrastFacilityImageAnalyzer.cpp b/src/MaaCore/Vision/Infrast/InfrastFacilityImageAnalyzer.cpp index 60aa3993cf..a974dc30a2 100644 --- a/src/MaaCore/Vision/Infrast/InfrastFacilityImageAnalyzer.cpp +++ b/src/MaaCore/Vision/Infrast/InfrastFacilityImageAnalyzer.cpp @@ -2,9 +2,9 @@ #include "Utils/NoWarningCV.h" -#include "Vision/MultiMatchImageAnalyzer.h" #include "Config/TaskData.h" #include "Utils/Logger.hpp" +#include "Vision/MultiMatchImageAnalyzer.h" bool asst::InfrastFacilityImageAnalyzer::analyze() { diff --git a/src/MaaCore/Vision/Infrast/InfrastOperImageAnalyzer.cpp b/src/MaaCore/Vision/Infrast/InfrastOperImageAnalyzer.cpp index 063ab54e61..8fc2fb736e 100644 --- a/src/MaaCore/Vision/Infrast/InfrastOperImageAnalyzer.cpp +++ b/src/MaaCore/Vision/Infrast/InfrastOperImageAnalyzer.cpp @@ -3,12 +3,12 @@ #include "Utils/NoWarningCV.h" #include "Utils/Ranges.hpp" -#include "Vision/HashImageAnalyzer.h" -#include "Vision/MatchImageAnalyzer.h" -#include "InfrastSmileyImageAnalyzer.h" #include "Config/Miscellaneous/InfrastConfig.h" #include "Config/TaskData.h" +#include "InfrastSmileyImageAnalyzer.h" #include "Utils/Logger.hpp" +#include "Vision/HashImageAnalyzer.h" +#include "Vision/MatchImageAnalyzer.h" bool asst::InfrastOperImageAnalyzer::analyze() { diff --git a/src/MaaCore/Vision/Infrast/InfrastSmileyImageAnalyzer.cpp b/src/MaaCore/Vision/Infrast/InfrastSmileyImageAnalyzer.cpp index e2fbabb0a9..75f8acf0b2 100644 --- a/src/MaaCore/Vision/Infrast/InfrastSmileyImageAnalyzer.cpp +++ b/src/MaaCore/Vision/Infrast/InfrastSmileyImageAnalyzer.cpp @@ -2,8 +2,8 @@ #include "Utils/NoWarningCV.h" -#include "Vision/MultiMatchImageAnalyzer.h" #include "Utils/StringMisc.hpp" +#include "Vision/MultiMatchImageAnalyzer.h" bool asst::InfrastSmileyImageAnalyzer::analyze() { diff --git a/src/MaaCore/Vision/Miscellaneous/BattleSkillReadyImageAnalyzer.cpp b/src/MaaCore/Vision/Miscellaneous/BattleSkillReadyImageAnalyzer.cpp index e067d77b04..510d947830 100644 --- a/src/MaaCore/Vision/Miscellaneous/BattleSkillReadyImageAnalyzer.cpp +++ b/src/MaaCore/Vision/Miscellaneous/BattleSkillReadyImageAnalyzer.cpp @@ -60,7 +60,7 @@ bool asst::BattleSkillReadyImageAnalyzer::analyze() if (iter.score > value) { iter.rect = rect; iter.score = value; - } + } need_push = false; break; } diff --git a/src/MaaCore/Vision/Miscellaneous/CreditShopImageAnalyzer.cpp b/src/MaaCore/Vision/Miscellaneous/CreditShopImageAnalyzer.cpp index 13282acc61..291649fb1c 100644 --- a/src/MaaCore/Vision/Miscellaneous/CreditShopImageAnalyzer.cpp +++ b/src/MaaCore/Vision/Miscellaneous/CreditShopImageAnalyzer.cpp @@ -5,15 +5,15 @@ #include "Utils/NoWarningCV.h" #include "Config/TaskData.h" +#include "Utils/Logger.hpp" #include "Vision/MatchImageAnalyzer.h" #include "Vision/MultiMatchImageAnalyzer.h" #include "Vision/OcrImageAnalyzer.h" -#include "Utils/Logger.hpp" void asst::CreditShopImageAnalyzer::set_black_list(std::vector black_list) { Log.info(__FUNCTION__, black_list); - + m_shopping_list = std::move(black_list); m_is_white_list = false; } @@ -21,7 +21,7 @@ void asst::CreditShopImageAnalyzer::set_black_list(std::vector blac void asst::CreditShopImageAnalyzer::set_white_list(std::vector black_list) { Log.info(__FUNCTION__, black_list); - + m_shopping_list = std::move(black_list); m_is_white_list = true; } @@ -67,7 +67,7 @@ bool asst::CreditShopImageAnalyzer::commodities_analyze() bool asst::CreditShopImageAnalyzer::whether_to_buy_analyze() { Log.info(__FUNCTION__, m_shopping_list, "mode", m_is_white_list); - + const auto product_name_task_ptr = Task.get("CreditShop-ProductName"); for (const Rect& commodity : m_commodities) { @@ -104,7 +104,7 @@ bool asst::CreditShopImageAnalyzer::whether_to_buy_analyze() ranges::sort(m_need_to_buy, std::less {}, [&](const auto& pair) { return ranges::find(m_shopping_list, pair.second); }); } - + return !m_need_to_buy.empty(); } diff --git a/src/MaaCore/Vision/Miscellaneous/RecruitImageAnalyzer.cpp b/src/MaaCore/Vision/Miscellaneous/RecruitImageAnalyzer.cpp index ad9e260d06..4ebbc7aa75 100644 --- a/src/MaaCore/Vision/Miscellaneous/RecruitImageAnalyzer.cpp +++ b/src/MaaCore/Vision/Miscellaneous/RecruitImageAnalyzer.cpp @@ -1,10 +1,10 @@ #include "RecruitImageAnalyzer.h" +#include "Config/Miscellaneous/RecruitConfig.h" +#include "Config/TaskData.h" #include "Vision/MatchImageAnalyzer.h" #include "Vision/MultiMatchImageAnalyzer.h" #include "Vision/OcrImageAnalyzer.h" -#include "Config/Miscellaneous/RecruitConfig.h" -#include "Config/TaskData.h" bool asst::RecruitImageAnalyzer::analyze() { diff --git a/src/MaaCore/Vision/Miscellaneous/StageDropsImageAnalyzer.h b/src/MaaCore/Vision/Miscellaneous/StageDropsImageAnalyzer.h index 4c8640c467..962c17cc0c 100644 --- a/src/MaaCore/Vision/Miscellaneous/StageDropsImageAnalyzer.h +++ b/src/MaaCore/Vision/Miscellaneous/StageDropsImageAnalyzer.h @@ -1,6 +1,6 @@ #pragma once -#include "Vision/AbstractImageAnalyzer.h" #include "Config/Miscellaneous/StageDropsConfig.h" +#include "Vision/AbstractImageAnalyzer.h" #include @@ -31,7 +31,8 @@ namespace asst int match_quantity(const Rect& roi, const std::string& item, bool use_word_model = false); std::optional match_quantity_string(const Rect& roi, bool use_word_model = false); - std::optional match_quantity_string(const Rect& roi, const std::string& item, bool use_word_model = false); + std::optional match_quantity_string(const Rect& roi, const std::string& item, + bool use_word_model = false); StageDropType match_droptype(const Rect& roi); std::string match_item(const Rect& roi, StageDropType type, int index, int size); diff --git a/src/MaaCore/Vision/Roguelike/RoguelikeFormationImageAnalyzer.cpp b/src/MaaCore/Vision/Roguelike/RoguelikeFormationImageAnalyzer.cpp index 902a0d77ff..d3e16dfe69 100644 --- a/src/MaaCore/Vision/Roguelike/RoguelikeFormationImageAnalyzer.cpp +++ b/src/MaaCore/Vision/Roguelike/RoguelikeFormationImageAnalyzer.cpp @@ -2,9 +2,9 @@ #include "Utils/NoWarningCV.h" -#include "Vision/MultiMatchImageAnalyzer.h" #include "Config/TaskData.h" #include "Utils/Logger.hpp" +#include "Vision/MultiMatchImageAnalyzer.h" bool asst::RoguelikeFormationImageAnalyzer::analyze() { diff --git a/src/MaaCore/Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.cpp b/src/MaaCore/Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.cpp index 5c8a7730af..d495ef75fb 100644 --- a/src/MaaCore/Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.cpp +++ b/src/MaaCore/Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.cpp @@ -2,13 +2,13 @@ #include "Utils/NoWarningCV.h" -#include "Vision/MatchImageAnalyzer.h" -#include "Vision/MultiMatchImageAnalyzer.h" -#include "Vision/OcrWithPreprocessImageAnalyzer.h" #include "Config/Roguelike/RoguelikeRecruitConfig.h" #include "Config/TaskData.h" #include "Utils/Logger.hpp" #include "Utils/StringMisc.hpp" +#include "Vision/MatchImageAnalyzer.h" +#include "Vision/MultiMatchImageAnalyzer.h" +#include "Vision/OcrWithPreprocessImageAnalyzer.h" bool asst::RoguelikeSkillSelectionImageAnalyzer::analyze() { From 4012725c7261417af1ddc9389c57e7df4bf87664 Mon Sep 17 00:00:00 2001 From: uye <2396806385@qq.com> Date: Thu, 23 Feb 2023 16:28:44 +0800 Subject: [PATCH 046/100] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Config/TaskData.cpp | 21 +++++++++++-- src/MaaWpfGui/Main/TaskQueueViewModel.cs | 39 +++++++++++++----------- 2 files changed, 40 insertions(+), 20 deletions(-) diff --git a/src/MaaCore/Config/TaskData.cpp b/src/MaaCore/Config/TaskData.cpp index bcb47eaec2..ab8b787569 100644 --- a/src/MaaCore/Config/TaskData.cpp +++ b/src/MaaCore/Config/TaskData.cpp @@ -255,11 +255,26 @@ bool asst::TaskData::explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_ auto is_symbl_name = [&](symbl_t x) { return x >= symbl_name_start; }; auto is_symbl_subtask_type = [&](symbl_t x) { - return x == symbl_name_sub || x == symbl_name_next || x == symbl_name_on_error_next || - x == symbl_name_exceeded_next || x == symbl_name_reduce_other_times; + switch (x) { + case symbl_name_sub: + case symbl_name_next: + case symbl_name_on_error_next: + case symbl_name_exceeded_next: + case symbl_name_reduce_other_times: + return true; + default: + return false; + } }; auto is_symbl_sharp_type = [&](symbl_t x) { - return is_symbl_subtask_type(x) || x == symbl_name_self || x == symbl_name_back || x == symbl_name_none; + switch (x) { + case symbl_name_self: + case symbl_name_back: + case symbl_name_none: + return true; + default: + return is_symbl_subtask_type(x); + } }; // perform_op 的结果不保证符合参数 multi 的要求 diff --git a/src/MaaWpfGui/Main/TaskQueueViewModel.cs b/src/MaaWpfGui/Main/TaskQueueViewModel.cs index ab8bc951a2..a70dac98c1 100644 --- a/src/MaaWpfGui/Main/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/Main/TaskQueueViewModel.cs @@ -1961,6 +1961,26 @@ namespace MaaWpfGui /// public List AllDrops { get; set; } = new List(); + /// + /// 关卡不可掉落的材料 + /// + private static readonly HashSet excludedValues = new HashSet() + { + "3213", "3223", "3233", "3243", // 双芯片 + "3253", "3263", "3273", "3283", + "7001", "7002", "7003", "7004", // 许可/凭证 + "4004", "4005", + "3105", "3131", "3132", "3233", // 龙骨/加固建材 + "6001", // 演习券 + "3141", "4002", // 源石 + "32001", // 芯片助剂 + "30115", // 聚合剂 + "30125", // 双极纳米片 + "30135", // D32钢 + "30145", // 晶体电子单元 + "30155", // 烧结核凝晶 + }; + private void InitDrops() { var reader = Utils.GetItemList(); @@ -1975,26 +1995,11 @@ namespace MaaWpfGui } var dis = item.Value["name"].ToString(); -#pragma warning disable SA1009 // Closing parenthesis should be spaced correctly - if ( - val.Equals("3213") || val.Equals("3223") || val.Equals("3233") || val.Equals("3243") // 双芯片 - || val.Equals("3253") || val.Equals("3263") || val.Equals("3273") || val.Equals("3283") - || val.Equals("7001") || val.Equals("7002") || val.Equals("7003") || val.Equals("7004") // 许可/凭证 - || val.Equals("4004") || val.Equals("4005") - || val.Equals("3105") || val.Equals("3131") || val.Equals("3132") || val.Equals("3233") // 龙骨/加固建材 - || val.Equals("6001") // 演习券 - || val.Equals("3141") || val.Equals("4002") // 源石 - || val.Equals("32001") // 芯片助剂 - || val.Equals("30115") // 聚合剂 - || val.Equals("30125") // 双极纳米片 - || val.Equals("30135") // D32钢 - || val.Equals("30145") // 晶体电子单元 - || val.Equals("30155") // 烧结核凝晶 - ) + + if (excludedValues.Contains(val)) { continue; } -#pragma warning restore SA1009 AllDrops.Add(new CombData { Display = dis, Value = val }); } From 86d2a91d48ed21a0077952dc624e97ab9f9244bf Mon Sep 17 00:00:00 2001 From: uye <2396806385@qq.com> Date: Thu, 23 Feb 2023 17:04:39 +0800 Subject: [PATCH 047/100] =?UTF-8?q?fix:=20=E6=97=A5=E6=9C=8D=E8=AF=AD?= =?UTF-8?q?=E8=A8=80=E8=B5=84=E6=BA=90=E9=94=99=E8=AF=AF/Japanese=20client?= =?UTF-8?q?=20language=20file=20error?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaWpfGui/Res/Localizations/ja-jp.xaml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml index 6f0961c39a..94cab10cdd 100644 --- a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml +++ b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml @@ -104,7 +104,7 @@ 繁荣证章 建造点数 锻造赤金 - + 選ばない CN-公式 Bilibili @@ -123,8 +123,6 @@ エミュレータが検出されない 管理者権限でこのアプリを開くか 手動で接続設定を行ってください 複数のシミュレータが検出されたため 不要なエミュレータを閉じるか 手動で接続設定を行ってください - すでに最新版です~ - 言語を切り替える 言語 言語設定が変更されました、今すぐMAAを再起動して言語設定を適用しますか? @@ -145,9 +143,8 @@ 安定版 ベータ版 内部テスト版 - Update version + Update version aria2を使う - 更新版 アップデートを確認する 新しいバージョンが見つかりました @@ -177,7 +174,7 @@ 新バージョンが見つかりましたが、アップデートパッケージがありません アップデートするには、手動でフルパッケージをダウンロードしてください。 - + タイマー スタートアップ From 9ed6b35c6d3202779b29480ef9c601f9d6337376 Mon Sep 17 00:00:00 2001 From: uye <2396806385@qq.com> Date: Thu, 23 Feb 2023 17:09:14 +0800 Subject: [PATCH 048/100] =?UTF-8?q?fix:=20=E9=9F=A9=E6=9C=8D=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E6=96=87=E4=BB=B6typo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaWpfGui/Res/Localizations/ko-kr.xaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml index d575b6bdb0..ce247492ec 100644 --- a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml +++ b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml @@ -277,7 +277,7 @@ 최근 작전--> 현재/최근 이벤트가 닫혀 있습니다 - 남은 개방일 수: + 남은 개방일 수: 1일 미만 1-7 CE-6 (용문폐) @@ -424,7 +424,7 @@ 이성 회복 아이템을 사용했습니다 순오리지늄을 사용했습니다 - PRTS 오류 + PRTS 오류 태그가 새로 고쳐졌습니다. 모집 확정 요구 오퍼레이터 충돌 From e2d40e0ec338cf90d06f50409eabaac0c64b5619 Mon Sep 17 00:00:00 2001 From: "Y. Ding" Date: Thu, 23 Feb 2023 01:46:29 -0800 Subject: [PATCH 049/100] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=87=B3=E5=85=AC?= =?UTF-8?q?=E5=AD=99=E9=95=BF=E4=B9=90=E6=9C=80=E6=96=B0=E6=8E=92=E7=8F=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 公孙长乐于1月20日动态(https://www.bilibili.com/opus/752809936429252680)中对原排班稍有修改,2月21日视频(https://www.bilibili.com/video/BV1EM411c7Ng)再次提到新排班 --- .../243_layout_4_times_a_day.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/resource/custom_infrast/243_layout_4_times_a_day.json b/resource/custom_infrast/243_layout_4_times_a_day.json index 3f1037546d..7061dbd63f 100644 --- a/resource/custom_infrast/243_layout_4_times_a_day.json +++ b/resource/custom_infrast/243_layout_4_times_a_day.json @@ -1,6 +1,6 @@ { "title": "243 极限效率,一天四换", - "description": "干员配置要求极高,请留意\n若缺少干员请自行拷贝文件并修改(请勿直接修改,以免更新后被覆盖)\n\n作业作者:MistEO\n感谢公孙长乐大佬提供数据及方案支持!\n[20220119 修订] 视频地址: https://www.bilibili.com/video/BV1qD4y1H77E?t=365\n请把年放在加工站", + "description": "干员配置要求极高,请留意\n若缺少干员请自行拷贝文件并修改(请勿直接修改,以免更新后被覆盖)\n\n作业作者:MistEO\n感谢公孙长乐大佬提供数据及方案支持!\n[20220119 修订] 视频地址: https://www.bilibili.com/video/BV1EM411c7Ng\n请把年放在加工站", "plans": [ { "name": "A+B 组 8H", @@ -271,11 +271,11 @@ "control": [ { "operators": [ - "阿米娅", - "重岳", - "琴柳", - "令", - "焰尾" + "阿米娅", + "凯尔希", + "琴柳", + "焰尾", + "令" ] } ], @@ -291,9 +291,9 @@ }, { "operators": [ - "但书", - "乌有", - "黑键" + "但书", + "空弦", + "黑键" ], "product": "LMD" } From 04d9699fb452a64dd64a092b924744f67e113699 Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Thu, 23 Feb 2023 19:10:00 +0800 Subject: [PATCH 050/100] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E4=BF=AE=E6=94=B9=E4=BB=BB=E5=8A=A1=E5=90=8D=E5=BC=95?= =?UTF-8?q?=E8=B5=B7=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 1 + src/MaaCore/Task/Interface/FightTask.cpp | 4 ++-- src/MaaCore/Task/Reclamation/ReclamationBattlePlugin.cpp | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/resource/tasks.json b/resource/tasks.json index fb1d511a1f..4c7e71ab1c 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -2817,6 +2817,7 @@ }, "PRTS": { "algorithm": "JustReturn", + "postDelay": 5000, "next": [ "PRTS1", "PRTS2", diff --git a/src/MaaCore/Task/Interface/FightTask.cpp b/src/MaaCore/Task/Interface/FightTask.cpp index aefcfa4f8f..d5bbc8b7b9 100644 --- a/src/MaaCore/Task/Interface/FightTask.cpp +++ b/src/MaaCore/Task/Interface/FightTask.cpp @@ -26,9 +26,9 @@ asst::FightTask::FightTask(const AsstCallback& callback, Assistant* inst) .set_times_limit("MedicineConfirm", 0) .set_times_limit("StoneConfirm", 0) .set_times_limit("StageSNReturnFlag", 0) - .set_times_limit("PRTS3", 0) - .set_times_limit("PRTS", 0) + .set_times_limit("PRTS1", 0) .set_times_limit("PRTS2", 0) + .set_times_limit("PRTS3", 0) .set_times_limit("EndOfAction", 0) .set_retry_times(5); diff --git a/src/MaaCore/Task/Reclamation/ReclamationBattlePlugin.cpp b/src/MaaCore/Task/Reclamation/ReclamationBattlePlugin.cpp index 9a1b73ed7d..e1c0aaf1aa 100644 --- a/src/MaaCore/Task/Reclamation/ReclamationBattlePlugin.cpp +++ b/src/MaaCore/Task/Reclamation/ReclamationBattlePlugin.cpp @@ -84,7 +84,7 @@ bool asst::ReclamationBattlePlugin::quit_action() // 出现Loading转一会儿就结算了,没结算还有error_next OcrImageAnalyzer loadingAnalyzer(img); - loadingAnalyzer.set_task_info("Loading"); + loadingAnalyzer.set_task_info("LoadingText"); bool check3 = loadingAnalyzer.analyze(); Log.info(__FUNCTION__, "| click exit level check ", check1, check2, check3); From 56d860182b18ed9f4404e3a335e2e675fc81f126 Mon Sep 17 00:00:00 2001 From: uye <2396806385@qq.com> Date: Thu, 23 Feb 2023 21:01:58 +0800 Subject: [PATCH 051/100] =?UTF-8?q?refactor:=20=E7=AE=80=E5=8C=96=E5=85=B3?= =?UTF-8?q?=E5=8D=A1=E5=AF=BC=E8=88=AA=E5=86=99=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 409 ++++++++++++-------------------------------- 1 file changed, 109 insertions(+), 300 deletions(-) diff --git a/resource/tasks.json b/resource/tasks.json index 17cb93c156..acc362b06c 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -778,6 +778,13 @@ 120 ] }, + "SideStoryStage": { + "Doc": "base_task", + "algorithm": "OcrDetect", + "baseTask": "Stage", + "isAscii": true, + "text": [] + }, "GA-6": { "algorithm": "JustReturn", "action": "DoNothing", @@ -785,7 +792,7 @@ "GA-Open" ], "next": [ - "StageGA-6", + "GA-6@SideStoryStage", "GA-6@SwipeToStage" ] }, @@ -796,7 +803,7 @@ "GA-Open" ], "next": [ - "StageGA-7", + "GA-7@SideStoryStage", "GA-7@SwipeToStage" ] }, @@ -807,7 +814,7 @@ "GA-Open" ], "next": [ - "StageGA-8", + "GA-8@SideStoryStage", "GA-8@SwipeToStage" ] }, @@ -847,29 +854,23 @@ "ChapterSwipeToTheRight" ] }, - "StageGA-6": { - "action": "ClickSelf", - "algorithm": "OcrDetect", + "GA-6@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "GA-6" - ], - "cache": false + ] }, - "StageGA-7": { - "action": "ClickSelf", - "algorithm": "OcrDetect", + "GA-7@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "GA-7" - ], - "cache": false + ] }, - "StageGA-8": { - "action": "ClickSelf", - "algorithm": "OcrDetect", + "GA-8@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "GA-8" - ], - "cache": false + ] }, "WB-7": { "algorithm": "JustReturn", @@ -878,7 +879,7 @@ "WB-Open" ], "next": [ - "StageWB-7", + "WB-7@SideStoryStage", "WB-7@SwipeToStage" ] }, @@ -889,7 +890,7 @@ "WB-Open" ], "next": [ - "StageWB-8", + "WB-8@SideStoryStage", "WB-8@SwipeToStage" ] }, @@ -900,7 +901,7 @@ "WB-Open" ], "next": [ - "StageWB-9", + "WB-9@SideStoryStage", "WB-9@SwipeToStage" ] }, @@ -936,29 +937,23 @@ "ChapterSwipeToTheRight" ] }, - "StageWB-7": { - "action": "ClickSelf", - "algorithm": "OcrDetect", + "WB-7@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "WB-7" - ], - "cache": false + ] }, - "StageWB-8": { - "action": "ClickSelf", - "algorithm": "OcrDetect", + "WB-8@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "WB-8" - ], - "cache": false + ] }, - "StageWB-9": { - "action": "ClickSelf", - "algorithm": "OcrDetect", + "WB-9@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "WB-9" - ], - "cache": false + ] }, "IW-6": { "algorithm": "JustReturn", @@ -968,7 +963,7 @@ "IWChapterToIW" ], "next": [ - "StageIW-6", + "IW-6@SideStoryStage", "IW-6@SwipeToStage" ] }, @@ -980,7 +975,7 @@ "IWChapterToIW" ], "next": [ - "StageIW-7", + "IW-7@SideStoryStage", "IW-7@SwipeToStage" ] }, @@ -992,7 +987,7 @@ "IWChapterToIW" ], "next": [ - "StageIW-8", + "IW-8@SideStoryStage", "IW-8@SwipeToStage" ] }, @@ -1028,46 +1023,22 @@ "ChapterSwipeToTheRight" ] }, - "StageIW-6": { - "action": "ClickSelf", - "algorithm": "OcrDetect", + "IW-6@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "IW-6" - ], - "cache": false, - "roi": [ - 0, - 283, - 1280, - 324 ] }, - "StageIW-7": { - "action": "ClickSelf", - "algorithm": "OcrDetect", + "IW-7@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "IW-7" - ], - "cache": false, - "roi": [ - 0, - 283, - 1280, - 324 ] }, - "StageIW-8": { - "action": "ClickSelf", - "algorithm": "OcrDetect", + "IW-8@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "IW-8" - ], - "cache": false, - "roi": [ - 0, - 283, - 1280, - 324 ] }, "FC-5": { @@ -1078,7 +1049,7 @@ "FCChapterToFC" ], "next": [ - "StageFC-5", + "FC-5@SideStoryStage", "FC-5@SwipeToStage" ] }, @@ -1090,7 +1061,7 @@ "FCChapterToFC" ], "next": [ - "StageFC-6", + "FC-6@SideStoryStage", "FC-6@SwipeToStage" ] }, @@ -1102,7 +1073,7 @@ "FCChapterToFC" ], "next": [ - "StageFC-7", + "FC-7@SideStoryStage", "FC-7@SwipeToStage" ] }, @@ -1138,46 +1109,22 @@ "ChapterSwipeToTheRight" ] }, - "StageFC-5": { - "action": "ClickSelf", - "algorithm": "OcrDetect", + "FC-5@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "FC-5" - ], - "cache": false, - "roi": [ - 0, - 145, - 1280, - 332 ] }, - "StageFC-6": { - "action": "ClickSelf", - "algorithm": "OcrDetect", + "FC-6@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "FC-6" - ], - "cache": false, - "roi": [ - 0, - 145, - 1280, - 332 ] }, - "StageFC-7": { - "action": "ClickSelf", - "algorithm": "OcrDetect", + "FC-7@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "FC-7" - ], - "cache": false, - "roi": [ - 0, - 145, - 1280, - 332 ] }, "IS-10": { @@ -1187,7 +1134,7 @@ "IS-Open" ], "next": [ - "StageIS-10", + "IS-10@SideStoryStage", "IS-10@SwipeToStageIS" ] }, @@ -1198,7 +1145,7 @@ "IS-Open" ], "next": [ - "StageIS-9", + "IS-9@SideStoryStage", "IS-9@SwipeToStageIS" ] }, @@ -1209,7 +1156,7 @@ "IS-Open" ], "next": [ - "StageIS-8", + "IS-8@SideStoryStage", "IS-8@SwipeToStageIS" ] }, @@ -1287,49 +1234,22 @@ "#next" ] }, - "StageIS-10": { - "algorithm": "OcrDetect", - "action": "ClickSelf", - "cache": false, + "IS-10@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "IS-10" - ], - "isAscii": true, - "roi": [ - 47, - 42, - 222, - 640 ] }, - "StageIS-9": { - "algorithm": "OcrDetect", - "action": "ClickSelf", - "cache": false, + "IS-9@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "IS-9" - ], - "isAscii": true, - "roi": [ - 47, - 42, - 222, - 640 ] }, - "StageIS-8": { - "algorithm": "OcrDetect", - "action": "ClickSelf", - "cache": false, + "IS-8@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "IS-8" - ], - "isAscii": true, - "roi": [ - 47, - 42, - 222, - 640 ] }, "NL-10": { @@ -1339,7 +1259,7 @@ "NL-Open" ], "next": [ - "StageNL-10", + "NL-10@SideStoryStage", "NL-10@SwipeToStage" ] }, @@ -1350,7 +1270,7 @@ "NL-Open" ], "next": [ - "StageNL-9", + "NL-9@SideStoryStage", "NL-9@SwipeToStage" ] }, @@ -1361,7 +1281,7 @@ "NL-Open" ], "next": [ - "StageNL-8", + "NL-8@SideStoryStage", "NL-8@SwipeToStage" ] }, @@ -1396,49 +1316,22 @@ "ChapterSwipeToTheRight" ] }, - "StageNL-10": { - "algorithm": "OcrDetect", - "action": "ClickSelf", - "cache": false, - "isAscii": true, + "NL-10@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "NL-10" - ], - "roi": [ - 0, - 63, - 1280, - 577 ] }, - "StageNL-9": { - "algorithm": "OcrDetect", - "action": "ClickSelf", - "cache": false, - "isAscii": true, + "NL-9@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "NL-9" - ], - "roi": [ - 0, - 63, - 1280, - 577 ] }, - "StageNL-8": { - "algorithm": "OcrDetect", - "action": "ClickSelf", - "cache": false, - "isAscii": true, + "NL-8@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "NL-8" - ], - "roi": [ - 0, - 63, - 1280, - 577 ] }, "GT-5": { @@ -1448,7 +1341,7 @@ "StageEpisode", "StageEpisodeToGT", "GTToGT-5", - "StageGT-5" + "GT-5@SideStoryStage" ] }, "StageEpisodeToGT": { @@ -1480,11 +1373,8 @@ 168 ] }, - "StageGT-5": { - "algorithm": "OcrDetect", - "action": "ClickSelf", - "cache": false, - "isAscii": true, + "GT-5@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "GT-5" ] @@ -1497,7 +1387,7 @@ "StageEpisodeToOF", "OFToOF-Chapter", "ChapterSwipeToTheLeft", - "StageOF-1" + "OF-1@SideStoryStage" ] }, "OF-F3": { @@ -1560,11 +1450,8 @@ "0F-F3" ] }, - "StageOF-1": { - "algorithm": "OcrDetect", - "action": "ClickSelf", - "cache": false, - "isAscii": true, + "OF-1@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "OF-1", "0F-1" @@ -1577,7 +1464,7 @@ "IC-Open" ], "next": [ - "StageIC-9", + "IC-9@SideStoryStage", "IC-9@SwipeToStage" ] }, @@ -1588,7 +1475,7 @@ "IC-Open" ], "next": [ - "StageIC-8", + "IC-8@SideStoryStage", "IC-8@SwipeToStage" ] }, @@ -1599,7 +1486,7 @@ "IC-Open" ], "next": [ - "StageIC-7", + "IC-7@SideStoryStage", "IC-7@SwipeToStage" ] }, @@ -1630,52 +1517,25 @@ "ChapterSwipeToTheRight" ] }, - "StageIC-9": { - "algorithm": "OcrDetect", - "action": "ClickSelf", - "cache": false, - "isAscii": true, + "IC-9@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "IC-9", "1C-9" - ], - "roi": [ - 0, - 145, - 1280, - 332 ] }, - "StageIC-8": { - "algorithm": "OcrDetect", - "action": "ClickSelf", - "cache": false, - "isAscii": true, + "IC-8@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "IC-8", "1C-8" - ], - "roi": [ - 0, - 145, - 1280, - 332 ] }, - "StageIC-7": { - "algorithm": "OcrDetect", - "action": "ClickSelf", - "cache": false, - "isAscii": true, + "IC-7@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "IC-7", "1C-7" - ], - "roi": [ - 0, - 145, - 1280, - 332 ] }, "DV-8": { @@ -1685,7 +1545,7 @@ "DV-Open" ], "next": [ - "StageDV-8", + "DV-8@SideStoryStage", "DV-8@SwipeToStage" ] }, @@ -1696,7 +1556,7 @@ "DV-Open" ], "next": [ - "StageDV-7", + "DV-7@SideStoryStage", "DV-7@SwipeToStage" ] }, @@ -1707,7 +1567,7 @@ "DV-Open" ], "next": [ - "StageDV-6", + "DV-6@SideStoryStage", "DV-6@SwipeToStage" ] }, @@ -1748,49 +1608,22 @@ "ChapterSwipeToTheRight" ] }, - "StageDV-8": { - "algorithm": "OcrDetect", - "action": "ClickSelf", - "cache": false, - "isAscii": true, + "DV-8@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "DV-8" - ], - "roi": [ - 0, - 145, - 1280, - 332 ] }, - "StageDV-7": { - "algorithm": "OcrDetect", - "action": "ClickSelf", - "cache": false, - "isAscii": true, + "DV-7@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "DV-7" - ], - "roi": [ - 0, - 145, - 1280, - 332 ] }, - "StageDV-6": { - "algorithm": "OcrDetect", - "action": "ClickSelf", - "cache": false, - "isAscii": true, + "DV-6@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "DV-6" - ], - "roi": [ - 0, - 145, - 1280, - 332 ] }, "LE-5": { @@ -1801,7 +1634,7 @@ "LEChapterToLE" ], "next": [ - "StageLE-5", + "LE-5@SideStoryStage", "LE-5@SwipeToStage" ] }, @@ -1813,7 +1646,7 @@ "LEChapterToLE" ], "next": [ - "StageLE-6", + "LE-6@SideStoryStage", "LE-6@SwipeToStage" ] }, @@ -1825,7 +1658,7 @@ "LEChapterToLE" ], "next": [ - "StageLE-7", + "LE-7@SideStoryStage", "LE-7@SwipeToStage" ] }, @@ -1855,49 +1688,22 @@ "ChapterSwipeToTheRight" ] }, - "StageLE-5": { - "algorithm": "OcrDetect", - "action": "ClickSelf", - "cache": false, - "isAscii": true, + "LE-5@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "LE-5" - ], - "roi": [ - 0, - 145, - 1280, - 332 ] }, - "StageLE-6": { - "algorithm": "OcrDetect", - "action": "ClickSelf", - "cache": false, - "isAscii": true, + "LE-6@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "LE-6" - ], - "roi": [ - 0, - 145, - 1280, - 332 ] }, - "StageLE-7": { - "algorithm": "OcrDetect", - "action": "ClickSelf", - "cache": false, - "isAscii": true, + "LE-7@SideStoryStage": { + "baseTask": "SideStoryStage", "text": [ "LE-7" - ], - "roi": [ - 0, - 145, - 1280, - 332 ] }, "SN-8": { @@ -1906,7 +1712,7 @@ "sub": [ "SN-Open", "SN-Chapter2", - "StageSN-8" + "SN-8@SideStoryStage" ] }, "SN-9": { @@ -1915,7 +1721,7 @@ "sub": [ "SN-Open", "SN-Chapter3", - "StageSN-9" + "SN-9@SideStoryStage" ] }, "SN-10": { @@ -1924,7 +1730,7 @@ "sub": [ "SN-Open", "SN-Chapter3", - "StageSN-10" + "SN-10@SideStoryStage" ] }, "SN-Open": { @@ -1956,7 +1762,8 @@ "SwipeToTheLeft" ] }, - "StageSN-8": { + "SN-8@SideStoryStage": { + "algorithm": "MatchTemplate", "action": "ClickSelf", "template": "SN-8.png", "cache": false, @@ -1967,7 +1774,8 @@ 195 ] }, - "StageSN-9": { + "SN-9@SideStoryStage": { + "algorithm": "MatchTemplate", "action": "ClickSelf", "template": "SN-9.png", "cache": false, @@ -1978,7 +1786,8 @@ 198 ] }, - "StageSN-10": { + "SN-10@SideStoryStage": { + "algorithm": "MatchTemplate", "action": "ClickSelf", "template": "SN-10.png", "cache": false, From 3d15a5fddfe11b11f958250e2f8dbc2fe2f0aba4 Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Thu, 23 Feb 2023 21:24:44 +0800 Subject: [PATCH 052/100] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=82=89?= =?UTF-8?q?=E9=B8=BD=E6=8B=9B=E5=8B=9F=E6=9C=89=E6=97=B6=E6=BC=8F=E5=B9=B2?= =?UTF-8?q?=E5=91=98=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 可能引入一个新的问题:靠后的干员在之前能招募到,改完招募不到了。这个问题可以通过修改滑动上限解决,不过感觉影响不大,先不做改动 fix https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/3811 --- resource/tasks.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/resource/tasks.json b/resource/tasks.json index acc362b06c..b520cfb109 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -9114,14 +9114,15 @@ }, "RoguelikeRecruitOperListSlowlySwipeToTheLeft": { "baseTask": "SlowlySwipeToTheLeft", + "Doc": "为了保证每次滑动至少多出一列 且 不能跳过一列,应保证滑动距离在400-500之间。", "specificRect": [ - 500, + 620, 340, 20, 20 ], "rectMove": [ - 1150, + 1100, 340, 20, 20 @@ -9130,13 +9131,13 @@ "RoguelikeRecruitOperListSlowlySwipeToTheRight": { "baseTask": "SlowlySwipeToTheRight", "specificRect": [ - 1150, + 1100, 340, 20, 20 ], "rectMove": [ - 500, + 620, 340, 20, 20 From 8576b524a366ee3a0e7e05eabea1e119dcb85de1 Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Thu, 23 Feb 2023 22:42:07 +0800 Subject: [PATCH 053/100] =?UTF-8?q?feat:=20=E5=8A=A0=E9=80=9F=E8=82=89?= =?UTF-8?q?=E9=B8=BD=E6=8B=9B=E5=8B=9F=E6=97=B6=E6=BB=91=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 9 +++--- .../Roguelike/RoguelikeRecruitTaskPlugin.cpp | 32 +++++++++++++++---- .../Roguelike/RoguelikeRecruitTaskPlugin.h | 2 +- 3 files changed, 32 insertions(+), 11 deletions(-) diff --git a/resource/tasks.json b/resource/tasks.json index b520cfb109..ccce1558fb 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -9104,6 +9104,7 @@ ] }, "RoguelikeRecruitOcrFlag": { + "maxTimes": 5, "roi": [ 525, 110, @@ -9116,13 +9117,13 @@ "baseTask": "SlowlySwipeToTheLeft", "Doc": "为了保证每次滑动至少多出一列 且 不能跳过一列,应保证滑动距离在400-500之间。", "specificRect": [ - 620, + 500, 340, 20, 20 ], "rectMove": [ - 1100, + 980, 340, 20, 20 @@ -9131,13 +9132,13 @@ "RoguelikeRecruitOperListSlowlySwipeToTheRight": { "baseTask": "SlowlySwipeToTheRight", "specificRect": [ - 1100, + 1150, 340, 20, 20 ], "rectMove": [ - 620, + 670, 340, 20, 20 diff --git a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp index e3ceb817fc..4c01828666 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp @@ -124,9 +124,11 @@ bool asst::RoguelikeRecruitTaskPlugin::_run() const auto& oper_list = analyzer.get_result(); bool stop_swipe = false; + int max_oper_x = 0; for (const auto& oper_info : oper_list) { oper_names.emplace(oper_info.name); + max_oper_x = std::max(max_oper_x, oper_info.rect.x); // 查询上次识别位置 const auto& rect_it = last_oper_rects.find(oper_info.name); if (rect_it == last_oper_rects.cend()) { @@ -251,7 +253,7 @@ bool asst::RoguelikeRecruitTaskPlugin::_run() // 向右滑动 Log.trace(__FUNCTION__, "| Page", i, "oper count:", oper_count, "- continue swiping"); - slowly_swipe(false); + slowly_swipe(false, max_oper_x - 200); sleep(Task.get("RoguelikeCustom-HijackCoChar")->post_delay); } @@ -329,7 +331,7 @@ bool asst::RoguelikeRecruitTaskPlugin::check_char(const std::string& char_name, { LogTraceFunction; - constexpr int SwipeTimes = 5; + int SwipeTimes = Task.get("RoguelikeRecruitSwipeMaxTime")->max_times; std::unordered_set pre_oper_names; bool has_been_same = false; int i = 0; @@ -341,8 +343,10 @@ bool asst::RoguelikeRecruitTaskPlugin::check_char(const std::string& char_name, RoguelikeRecruitImageAnalyzer analyzer(image); // 只处理识别成功的情况,失败(无任何结果)时继续滑动 + int max_oper_x = 700; if (analyzer.analyze()) { const auto& chars = analyzer.get_result(); + max_oper_x = ranges::max(chars | views::transform([&](const auto& x) { return x.rect.x; })); auto it = ranges::find_if( chars, [&](const battle::roguelike::Recruitment& oper) -> bool { return oper.name == char_name; }); @@ -375,7 +379,7 @@ bool asst::RoguelikeRecruitTaskPlugin::check_char(const std::string& char_name, slowly_swipe(true); } else { - slowly_swipe(false); + slowly_swipe(false, max_oper_x - 200); } sleep(Task.get("RoguelikeCustom-HijackCoChar")->post_delay); } @@ -513,12 +517,28 @@ void asst::RoguelikeRecruitTaskPlugin::swipe_to_the_left_of_operlist(int loop_ti ProcessTask(*this, { "SleepAfterOperListQuickSwipe" }).run(); } -void asst::RoguelikeRecruitTaskPlugin::slowly_swipe(bool to_left) +void asst::RoguelikeRecruitTaskPlugin::slowly_swipe(bool to_left, int swipe_dist) { if (to_left) { - ProcessTask(*this, { "RoguelikeRecruitOperListSlowlySwipeToTheLeft" }).run(); + auto swipe_task = Task.get("RoguelikeRecruitOperListSlowlySwipeToTheLeft"); + const Rect& StartPoint = swipe_task->specific_rect; + ctrler()->swipe( + StartPoint, + { StartPoint.x + swipe_dist - StartPoint.width, StartPoint.y, StartPoint.width, StartPoint.height }, + swipe_task->special_params.empty() ? 0 : swipe_task->special_params.at(0), + (swipe_task->special_params.size() < 2) ? false : swipe_task->special_params.at(1), + (swipe_task->special_params.size() < 3) ? 1 : swipe_task->special_params.at(2), + (swipe_task->special_params.size() < 4) ? 1 : swipe_task->special_params.at(3)); } else { - ProcessTask(*this, { "RoguelikeRecruitOperListSlowlySwipeToTheRight" }).run(); + auto swipe_task = Task.get("RoguelikeRecruitOperListSlowlySwipeToTheRight"); + const Rect& StartPoint = swipe_task->specific_rect; + ctrler()->swipe( + StartPoint, + { StartPoint.x - swipe_dist - StartPoint.width, StartPoint.y, StartPoint.width, StartPoint.height }, + swipe_task->special_params.empty() ? 0 : swipe_task->special_params.at(0), + (swipe_task->special_params.size() < 2) ? false : swipe_task->special_params.at(1), + (swipe_task->special_params.size() < 3) ? 1 : swipe_task->special_params.at(2), + (swipe_task->special_params.size() < 4) ? 1 : swipe_task->special_params.at(3)); } } diff --git a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.h index 83cd50b408..a60ff0ab5b 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.h @@ -26,7 +26,7 @@ namespace asst // 滑动到干员列表的最左侧 void swipe_to_the_left_of_operlist(int loop_times = 2); // 缓慢向干员列表的左侧/右侧滑动 - void slowly_swipe(bool to_left); + void slowly_swipe(bool to_left, int swipe_dist = 500); private: bool check_support_char(); From 3b2abc65b60fe6b7875f843458d126dd1e6507ca Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Thu, 23 Feb 2023 23:04:58 +0800 Subject: [PATCH 054/100] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E5=B0=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 3 +-- src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp | 2 ++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/resource/tasks.json b/resource/tasks.json index ccce1558fb..6d071c03de 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -9104,7 +9104,6 @@ ] }, "RoguelikeRecruitOcrFlag": { - "maxTimes": 5, "roi": [ 525, 110, @@ -9170,7 +9169,7 @@ "RoguelikeRecruitSwipeMaxTime": { "algorithm": "JustReturn", "maxTimes_Doc": "这个参数是肉鸽招募时,向右划动的最大次数", - "maxTimes": 4 + "maxTimes": 5 }, "RoguelikeSkillSelectionFlag": { "templThreshold": 0.9, diff --git a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp index 4c01828666..81e9fab8bc 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp @@ -529,6 +529,7 @@ void asst::RoguelikeRecruitTaskPlugin::slowly_swipe(bool to_left, int swipe_dist (swipe_task->special_params.size() < 2) ? false : swipe_task->special_params.at(1), (swipe_task->special_params.size() < 3) ? 1 : swipe_task->special_params.at(2), (swipe_task->special_params.size() < 4) ? 1 : swipe_task->special_params.at(3)); + sleep(swipe_task->post_delay); } else { auto swipe_task = Task.get("RoguelikeRecruitOperListSlowlySwipeToTheRight"); @@ -540,5 +541,6 @@ void asst::RoguelikeRecruitTaskPlugin::slowly_swipe(bool to_left, int swipe_dist (swipe_task->special_params.size() < 2) ? false : swipe_task->special_params.at(1), (swipe_task->special_params.size() < 3) ? 1 : swipe_task->special_params.at(2), (swipe_task->special_params.size() < 4) ? 1 : swipe_task->special_params.at(3)); + sleep(swipe_task->post_delay); } } From ee4740e6edaec62dbbf6a266e6c2ed72028fe37f Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Fri, 24 Feb 2023 08:33:55 +0800 Subject: [PATCH 055/100] =?UTF-8?q?fix:=20=E5=AF=B9=E4=BD=BF=E7=94=A8=20ad?= =?UTF-8?q?b=20=E7=9A=84=E6=83=85=E5=86=B5=E7=89=B9=E6=AE=8A=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Controller.cpp | 5 +++ src/MaaCore/Controller.h | 1 + .../Roguelike/RoguelikeRecruitTaskPlugin.cpp | 40 ++++++++----------- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/MaaCore/Controller.cpp b/src/MaaCore/Controller.cpp index 34079b0998..b6891e689b 100644 --- a/src/MaaCore/Controller.cpp +++ b/src/MaaCore/Controller.cpp @@ -896,6 +896,11 @@ bool asst::Controller::support_swipe_with_pause() const noexcept return m_minitouch_enabled && m_minitouch_available && m_swipe_with_pause_enabled && !m_adb.press_esc.empty(); } +bool asst::Controller::support_swipe_without_adb() const noexcept +{ + return m_minitouch_enabled && m_minitouch_available; +} + bool asst::Controller::connect(const std::string& adb_path, const std::string& address, const std::string& config) { LogTraceFunction; diff --git a/src/MaaCore/Controller.h b/src/MaaCore/Controller.h index af56cf6fa8..120ba81724 100644 --- a/src/MaaCore/Controller.h +++ b/src/MaaCore/Controller.h @@ -65,6 +65,7 @@ namespace asst bool press_esc(); bool support_swipe_with_pause() const noexcept; + bool support_swipe_without_adb() const noexcept; std::pair get_scale_size() const noexcept; diff --git a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp index 81e9fab8bc..be1acf7f68 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp @@ -519,28 +519,22 @@ void asst::RoguelikeRecruitTaskPlugin::swipe_to_the_left_of_operlist(int loop_ti void asst::RoguelikeRecruitTaskPlugin::slowly_swipe(bool to_left, int swipe_dist) { - if (to_left) { - auto swipe_task = Task.get("RoguelikeRecruitOperListSlowlySwipeToTheLeft"); - const Rect& StartPoint = swipe_task->specific_rect; - ctrler()->swipe( - StartPoint, - { StartPoint.x + swipe_dist - StartPoint.width, StartPoint.y, StartPoint.width, StartPoint.height }, - swipe_task->special_params.empty() ? 0 : swipe_task->special_params.at(0), - (swipe_task->special_params.size() < 2) ? false : swipe_task->special_params.at(1), - (swipe_task->special_params.size() < 3) ? 1 : swipe_task->special_params.at(2), - (swipe_task->special_params.size() < 4) ? 1 : swipe_task->special_params.at(3)); - sleep(swipe_task->post_delay); - } - else { - auto swipe_task = Task.get("RoguelikeRecruitOperListSlowlySwipeToTheRight"); - const Rect& StartPoint = swipe_task->specific_rect; - ctrler()->swipe( - StartPoint, - { StartPoint.x - swipe_dist - StartPoint.width, StartPoint.y, StartPoint.width, StartPoint.height }, - swipe_task->special_params.empty() ? 0 : swipe_task->special_params.at(0), - (swipe_task->special_params.size() < 2) ? false : swipe_task->special_params.at(1), - (swipe_task->special_params.size() < 3) ? 1 : swipe_task->special_params.at(2), - (swipe_task->special_params.size() < 4) ? 1 : swipe_task->special_params.at(3)); - sleep(swipe_task->post_delay); + std::string swipe_task_name = + to_left ? "RoguelikeRecruitOperListSlowlySwipeToTheLeft" : "RoguelikeRecruitOperListSlowlySwipeToTheRight"; + if (!ctrler()->support_swipe_without_adb()) { // adb 容易滑飞,不方便精细控制,不使用 swipe_dist 参数 + ProcessTask(*this, { swipe_task_name }).run(); + return; } + + if (!to_left) swipe_dist = -swipe_dist; + auto swipe_task = Task.get(swipe_task_name); + const Rect& StartPoint = swipe_task->specific_rect; + ctrler()->swipe( + StartPoint, + { StartPoint.x + swipe_dist - StartPoint.width, StartPoint.y, StartPoint.width, StartPoint.height }, + swipe_task->special_params.empty() ? 0 : swipe_task->special_params.at(0), + (swipe_task->special_params.size() < 2) ? false : swipe_task->special_params.at(1), + (swipe_task->special_params.size() < 3) ? 1 : swipe_task->special_params.at(2), + (swipe_task->special_params.size() < 4) ? 1 : swipe_task->special_params.at(3)); + sleep(swipe_task->post_delay); } From 85cf9d052f819e90ccc21035a3ebede29b0f087b Mon Sep 17 00:00:00 2001 From: uye <2396806385@qq.com> Date: Fri, 24 Feb 2023 20:04:45 +0800 Subject: [PATCH 056/100] =?UTF-8?q?chore:=20=E4=BC=98=E5=8C=96=E9=80=80?= =?UTF-8?q?=E5=87=BA=E6=A8=A1=E6=8B=9F=E5=99=A8=E6=93=8D=E4=BD=9C=EF=BC=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B6=85=E6=97=B6=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaWpfGui/Main/TaskQueueViewModel.cs | 39 +++++++++++------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/src/MaaWpfGui/Main/TaskQueueViewModel.cs b/src/MaaWpfGui/Main/TaskQueueViewModel.cs index a70dac98c1..a3c9d284c9 100644 --- a/src/MaaWpfGui/Main/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/Main/TaskQueueViewModel.cs @@ -994,32 +994,25 @@ namespace MaaWpfGui { emulator = Process.GetProcessById(pid); emulator.CloseMainWindow(); + if (!emulator.WaitForExit(5000)) + { + emulator.Kill(); + emulator.WaitForExit(5000); + } + else + { + // 尽管已经成功 CloseMainWindow(),再次尝试 killEmulator() + // Refer to https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/1878 + KillEmulator(); + + // 已经成功 CloseMainWindow(),所以不管 killEmulator() 的结果如何,都返回 true + return true; + } } catch { break; } - - if (emulator.HasExited) - { - break; - } - - try - { - emulator.Kill(); - } - catch - { - break; - } - - // 尽管已经成功 CloseMainWindow(),再次尝试 killEmulator() - // Refer to https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/1878 - KillEmulator(); - - // 已经成功 CloseMainWindow(),所以不管 killEmulator() 的结果如何,都返回 true - return true; } while (false); @@ -1104,6 +1097,10 @@ namespace MaaWpfGui { return false; } + finally + { + checkCmd.Close(); + } return true; } From 5340114a73e8bb0430ee39fd2bda6247ec8282ec Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Fri, 24 Feb 2023 20:13:33 +0800 Subject: [PATCH 057/100] =?UTF-8?q?style:=20=E6=8D=A2=E4=B8=AA=E5=A5=BD?= =?UTF-8?q?=E5=87=BD=E6=95=B0=E5=90=8D=EF=BC=9B=E4=BB=A3=E7=A0=81=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Controller.cpp | 2 +- src/MaaCore/Controller.h | 2 +- .../Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp | 15 +++++++-------- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/MaaCore/Controller.cpp b/src/MaaCore/Controller.cpp index b6891e689b..cd9cbedb17 100644 --- a/src/MaaCore/Controller.cpp +++ b/src/MaaCore/Controller.cpp @@ -896,7 +896,7 @@ bool asst::Controller::support_swipe_with_pause() const noexcept return m_minitouch_enabled && m_minitouch_available && m_swipe_with_pause_enabled && !m_adb.press_esc.empty(); } -bool asst::Controller::support_swipe_without_adb() const noexcept +bool asst::Controller::support_precise_swipe() const noexcept { return m_minitouch_enabled && m_minitouch_available; } diff --git a/src/MaaCore/Controller.h b/src/MaaCore/Controller.h index 120ba81724..2bd6872851 100644 --- a/src/MaaCore/Controller.h +++ b/src/MaaCore/Controller.h @@ -65,7 +65,7 @@ namespace asst bool press_esc(); bool support_swipe_with_pause() const noexcept; - bool support_swipe_without_adb() const noexcept; + bool support_precise_swipe() const noexcept; std::pair get_scale_size() const noexcept; diff --git a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp index be1acf7f68..28e453e506 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp @@ -521,7 +521,7 @@ void asst::RoguelikeRecruitTaskPlugin::slowly_swipe(bool to_left, int swipe_dist { std::string swipe_task_name = to_left ? "RoguelikeRecruitOperListSlowlySwipeToTheLeft" : "RoguelikeRecruitOperListSlowlySwipeToTheRight"; - if (!ctrler()->support_swipe_without_adb()) { // adb 容易滑飞,不方便精细控制,不使用 swipe_dist 参数 + if (!ctrler()->support_precise_swipe()) { // 不能精准滑动时不使用 swipe_dist 参数 ProcessTask(*this, { swipe_task_name }).run(); return; } @@ -529,12 +529,11 @@ void asst::RoguelikeRecruitTaskPlugin::slowly_swipe(bool to_left, int swipe_dist if (!to_left) swipe_dist = -swipe_dist; auto swipe_task = Task.get(swipe_task_name); const Rect& StartPoint = swipe_task->specific_rect; - ctrler()->swipe( - StartPoint, - { StartPoint.x + swipe_dist - StartPoint.width, StartPoint.y, StartPoint.width, StartPoint.height }, - swipe_task->special_params.empty() ? 0 : swipe_task->special_params.at(0), - (swipe_task->special_params.size() < 2) ? false : swipe_task->special_params.at(1), - (swipe_task->special_params.size() < 3) ? 1 : swipe_task->special_params.at(2), - (swipe_task->special_params.size() < 4) ? 1 : swipe_task->special_params.at(3)); + ctrler()->swipe(StartPoint, + { StartPoint.x + swipe_dist - StartPoint.width, StartPoint.y, StartPoint.width, StartPoint.height }, + swipe_task->special_params.empty() ? 0 : swipe_task->special_params.at(0), + (swipe_task->special_params.size() < 2) ? false : swipe_task->special_params.at(1), + (swipe_task->special_params.size() < 3) ? 1 : swipe_task->special_params.at(2), + (swipe_task->special_params.size() < 4) ? 1 : swipe_task->special_params.at(3)); sleep(swipe_task->post_delay); } From e6fb13a8bbfec19193af85848f9b54f942989380 Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Fri, 24 Feb 2023 13:42:07 -0600 Subject: [PATCH 058/100] feat: add task replace_full --- src/MaaCore/Common/AsstTypes.h | 1 + src/MaaCore/Config/TaskData.cpp | 2 ++ src/MaaCore/Vision/OcrImageAnalyzer.cpp | 1 + 3 files changed, 4 insertions(+) diff --git a/src/MaaCore/Common/AsstTypes.h b/src/MaaCore/Common/AsstTypes.h index b88b8a756e..3076ab3145 100644 --- a/src/MaaCore/Common/AsstTypes.h +++ b/src/MaaCore/Common/AsstTypes.h @@ -379,6 +379,7 @@ namespace asst bool full_match = false; // 是否需要全匹配,否则搜索到子串就算匹配上了 bool is_ascii = false; // 是否启用字符数字模型 bool without_det = false; // 是否不使用检测模型 + bool replace_full = false; // 匹配之后,是否将整个字符串replace(false是只替换match的部分) std::unordered_map replace_map; // 部分文字容易识别错,字符串强制replace之后,再进行匹配 }; diff --git a/src/MaaCore/Config/TaskData.cpp b/src/MaaCore/Config/TaskData.cpp index 27bfd6fa35..48aa5d05a8 100644 --- a/src/MaaCore/Config/TaskData.cpp +++ b/src/MaaCore/Config/TaskData.cpp @@ -397,6 +397,7 @@ asst::TaskData::taskptr_t asst::TaskData::generate_ocr_task_info([[maybe_unused] ocr_task_info_ptr->full_match = task_json.get("fullMatch", default_ptr->full_match); ocr_task_info_ptr->is_ascii = task_json.get("isAscii", default_ptr->is_ascii); ocr_task_info_ptr->without_det = task_json.get("withoutDet", default_ptr->without_det); + ocr_task_info_ptr->replace_full = task_json.get("replaceFull", default_ptr->replace_full); if (auto opt = task_json.find("ocrReplace")) { for (const json::value& rep : opt.value()) { ocr_task_info_ptr->replace_map.emplace(rep[0].as_string(), rep[1].as_string()); @@ -536,6 +537,7 @@ std::shared_ptr asst::TaskData::_default_ocr_task_info() ocr_task_info_ptr->full_match = false; ocr_task_info_ptr->is_ascii = false; ocr_task_info_ptr->without_det = false; + ocr_task_info_ptr->replace_full = false; return ocr_task_info_ptr; } diff --git a/src/MaaCore/Vision/OcrImageAnalyzer.cpp b/src/MaaCore/Vision/OcrImageAnalyzer.cpp index 88ac48104a..bb85f3be1d 100644 --- a/src/MaaCore/Vision/OcrImageAnalyzer.cpp +++ b/src/MaaCore/Vision/OcrImageAnalyzer.cpp @@ -122,6 +122,7 @@ void asst::OcrImageAnalyzer::set_task_info(OcrTaskInfo task_info) noexcept m_replace = std::move(task_info.replace_map); m_use_cache = task_info.cache; m_use_char_model = task_info.is_ascii; + m_replace_full = task_info.replace_full; if (m_use_cache && !m_region_of_appeared.empty()) { m_roi = m_region_of_appeared; From c11f78bf814dd37508b2ae8468385a979adfe01f Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Fri, 24 Feb 2023 15:32:16 -0600 Subject: [PATCH 059/100] feat: change replace_full so it's set in tasks previously in set_replace --- src/MaaCore/Task/BattleHelper.cpp | 2 +- src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp | 6 +++--- src/MaaCore/Task/Infrast/InfrastProductionTask.cpp | 4 ++-- src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp | 4 ++-- src/MaaCore/Vision/OcrImageAnalyzer.cpp | 3 +-- src/MaaCore/Vision/OcrImageAnalyzer.h | 3 +-- .../Vision/Roguelike/RoguelikeRecruitImageAnalyzer.cpp | 2 +- .../Roguelike/RoguelikeSkillSelectionImageAnalyzer.cpp | 2 +- 8 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/MaaCore/Task/BattleHelper.cpp b/src/MaaCore/Task/BattleHelper.cpp index 335cf0b8c4..206278f09a 100644 --- a/src/MaaCore/Task/BattleHelper.cpp +++ b/src/MaaCore/Task/BattleHelper.cpp @@ -191,7 +191,7 @@ bool asst::BattleHelper::update_deployment(bool init, const cv::Mat& reusable) auto analyze = [&](OcrImageAnalyzer& name_analyzer) { name_analyzer.set_image(name_image); name_analyzer.set_task_info(oper_name_ocr_task_name()); - name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map, true); + name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map); if (!name_analyzer.analyze()) { return std::string(); } diff --git a/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp b/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp index e85e9528fa..224d62cac4 100644 --- a/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp @@ -275,7 +275,7 @@ bool asst::InfrastAbstractTask::select_opers_review(infrast::CustomRoomConfig co const auto& ocr_replace = Task.get("CharsNameOcrReplace")->replace_map; for (const auto& oper : oper_analyzer_res) { OcrWithPreprocessImageAnalyzer name_analyzer; - name_analyzer.set_replace(ocr_replace, true); + name_analyzer.set_replace(ocr_replace); name_analyzer.set_image(oper.name_img); name_analyzer.set_expansion(0); if (!name_analyzer.analyze()) { @@ -330,7 +330,7 @@ bool asst::InfrastAbstractTask::select_custom_opers(std::vector& pa const auto& ocr_replace = Task.get("CharsNameOcrReplace")->replace_map; for (const auto& oper : oper_analyzer.get_result()) { OcrWithPreprocessImageAnalyzer name_analyzer; - name_analyzer.set_replace(ocr_replace, true); + name_analyzer.set_replace(ocr_replace); name_analyzer.set_image(oper.name_img); name_analyzer.set_expansion(0); if (!name_analyzer.analyze()) { @@ -387,7 +387,7 @@ void asst::InfrastAbstractTask::order_opers_selection(const std::vector page_result; for (const auto& oper : oper_analyzer.get_result()) { OcrWithPreprocessImageAnalyzer name_analyzer; - name_analyzer.set_replace(ocr_replace, true); + name_analyzer.set_replace(ocr_replace); name_analyzer.set_image(oper.name_img); name_analyzer.set_expansion(0); if (!name_analyzer.analyze()) { diff --git a/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp b/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp index 2da803f478..a5393a0a54 100644 --- a/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp @@ -447,7 +447,7 @@ bool asst::InfrastProductionTask::optimal_calc() } else { OcrWithPreprocessImageAnalyzer name_analyzer(find_iter->name_img); - name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map, true); + name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map); Log.trace("Analyze name filter"); if (!name_analyzer.analyze()) { continue; @@ -574,7 +574,7 @@ bool asst::InfrastProductionTask::opers_choose() } else { OcrWithPreprocessImageAnalyzer name_analyzer(lhs.name_img); - name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map, true); + name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map); Log.trace("Analyze name filter"); if (!name_analyzer.analyze()) { return false; diff --git a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp index de823c58c0..ef9376c90f 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp @@ -133,12 +133,12 @@ std::vector asst::BattleFormationTask::analyzer_opers() OcrWithFlagTemplImageAnalyzer name_analyzer(image); name_analyzer.set_task_info("BattleQuickFormation-OperNameFlag", "BattleQuickFormationOCR"); - name_analyzer.set_replace(ocr_replace, true); + name_analyzer.set_replace(ocr_replace); name_analyzer.analyze(); OcrWithFlagTemplImageAnalyzer special_focus_analyzer(image); special_focus_analyzer.set_task_info("BattleQuickFormation-OperNameFlag-SpecialFocus", "BattleQuickFormationOCR"); - special_focus_analyzer.set_replace(ocr_replace, true); + special_focus_analyzer.set_replace(ocr_replace); special_focus_analyzer.analyze(); auto opers_result = name_analyzer.get_result(); diff --git a/src/MaaCore/Vision/OcrImageAnalyzer.cpp b/src/MaaCore/Vision/OcrImageAnalyzer.cpp index bb85f3be1d..231e1d216f 100644 --- a/src/MaaCore/Vision/OcrImageAnalyzer.cpp +++ b/src/MaaCore/Vision/OcrImageAnalyzer.cpp @@ -109,10 +109,9 @@ void asst::OcrImageAnalyzer::set_required(std::vector required) noe m_required = std::move(required); } -void asst::OcrImageAnalyzer::set_replace(std::unordered_map replace, bool replace_full) noexcept +void asst::OcrImageAnalyzer::set_replace(std::unordered_map replace) noexcept { m_replace = std::move(replace); - m_replace_full = replace_full; } void asst::OcrImageAnalyzer::set_task_info(OcrTaskInfo task_info) noexcept diff --git a/src/MaaCore/Vision/OcrImageAnalyzer.h b/src/MaaCore/Vision/OcrImageAnalyzer.h index c37e13354f..678b64cc18 100644 --- a/src/MaaCore/Vision/OcrImageAnalyzer.h +++ b/src/MaaCore/Vision/OcrImageAnalyzer.h @@ -25,8 +25,7 @@ namespace asst virtual void sort_result_by_required(); // 按传入的需求数组排序,传入的在前面结果接在前面 void set_required(std::vector required) noexcept; - void set_replace(std::unordered_map replace, bool replace_full = false) noexcept; // The whole string is replaced when replace_full is set to true, - // while only the matched part is replaced when it is set to false + void set_replace(std::unordered_map replace) noexcept; virtual void set_task_info(std::shared_ptr task_ptr); virtual void set_task_info(const std::string& task_name); diff --git a/src/MaaCore/Vision/Roguelike/RoguelikeRecruitImageAnalyzer.cpp b/src/MaaCore/Vision/Roguelike/RoguelikeRecruitImageAnalyzer.cpp index 52ca1209fa..d299ca5d2c 100644 --- a/src/MaaCore/Vision/Roguelike/RoguelikeRecruitImageAnalyzer.cpp +++ b/src/MaaCore/Vision/Roguelike/RoguelikeRecruitImageAnalyzer.cpp @@ -12,7 +12,7 @@ bool asst::RoguelikeRecruitImageAnalyzer::analyze() OcrWithFlagTemplImageAnalyzer analyzer(m_image); analyzer.set_task_info("RoguelikeRecruitOcrFlag", "RoguelikeRecruitOcr"); - analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map, true); + analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map); analyzer.set_threshold(Task.get("RoguelikeRecruitOcr")->specific_rect.x); if (!analyzer.analyze()) { diff --git a/src/MaaCore/Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.cpp b/src/MaaCore/Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.cpp index 2c1ecca7e4..5c8a7730af 100644 --- a/src/MaaCore/Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.cpp +++ b/src/MaaCore/Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.cpp @@ -54,7 +54,7 @@ std::string asst::RoguelikeSkillSelectionImageAnalyzer::name_analyze(const Rect& analyzer.set_task_info(name_task_ptr); analyzer.set_image(m_image); analyzer.set_roi(roi.move(name_task_ptr->roi)); - analyzer.set_replace(std::dynamic_pointer_cast(Task.get("CharsNameOcrReplace"))->replace_map, true); + analyzer.set_replace(std::dynamic_pointer_cast(Task.get("CharsNameOcrReplace"))->replace_map); if (!analyzer.analyze()) { return {}; From 9f3c611e4a5776cc45f60de879acee392916c785 Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Fri, 24 Feb 2023 16:33:37 -0600 Subject: [PATCH 060/100] refactor: directly call get_instance instead of using static OcrData --- src/MaaCore/Config/Miscellaneous/OcrConfig.h | 1 - src/MaaCore/Vision/OcrImageAnalyzer.cpp | 8 ++++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/MaaCore/Config/Miscellaneous/OcrConfig.h b/src/MaaCore/Config/Miscellaneous/OcrConfig.h index e4aed6f819..93016716be 100644 --- a/src/MaaCore/Config/Miscellaneous/OcrConfig.h +++ b/src/MaaCore/Config/Miscellaneous/OcrConfig.h @@ -27,6 +27,5 @@ namespace asst std::vector m_eq_classes; }; - inline static auto& OcrData = OcrConfig::get_instance(); } // namespace asst diff --git a/src/MaaCore/Vision/OcrImageAnalyzer.cpp b/src/MaaCore/Vision/OcrImageAnalyzer.cpp index d0c311d138..466347c8e6 100644 --- a/src/MaaCore/Vision/OcrImageAnalyzer.cpp +++ b/src/MaaCore/Vision/OcrImageAnalyzer.cpp @@ -17,7 +17,7 @@ bool asst::OcrImageAnalyzer::analyze() std::vector preds_vec; preds_vec.emplace_back([](TextRect& tr) -> bool { - tr.text = OcrData.process_equivalence_class(tr.text); + tr.text = OcrConfig::get_instance().process_equivalence_class(tr.text); return true; }); @@ -99,7 +99,7 @@ void asst::OcrImageAnalyzer::set_use_cache(bool is_use) noexcept void asst::OcrImageAnalyzer::set_required(std::vector required) noexcept { - ranges::for_each(required, [](std::string& str) { str = OcrData.process_equivalence_class(str); }); + ranges::for_each(required, [](std::string& str) { str = OcrConfig::get_instance().process_equivalence_class(str); }); m_required = std::move(required); } @@ -107,8 +107,8 @@ void asst::OcrImageAnalyzer::set_replace(const std::unordered_map Date: Fri, 24 Feb 2023 20:40:54 -0800 Subject: [PATCH 061/100] fix indents --- .../custom_infrast/243_layout_4_times_a_day.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/resource/custom_infrast/243_layout_4_times_a_day.json b/resource/custom_infrast/243_layout_4_times_a_day.json index 7061dbd63f..e393c5a3c1 100644 --- a/resource/custom_infrast/243_layout_4_times_a_day.json +++ b/resource/custom_infrast/243_layout_4_times_a_day.json @@ -271,11 +271,11 @@ "control": [ { "operators": [ - "阿米娅", - "凯尔希", - "琴柳", - "焰尾", - "令" + "阿米娅", + "凯尔希", + "琴柳", + "焰尾", + "令" ] } ], @@ -291,9 +291,9 @@ }, { "operators": [ - "但书", - "空弦", - "黑键" + "但书", + "空弦", + "黑键" ], "product": "LMD" } From 5e7b9047d908c07d37831a6d852f34a1278a52d9 Mon Sep 17 00:00:00 2001 From: "Y. Ding" Date: Fri, 24 Feb 2023 21:05:06 -0800 Subject: [PATCH 062/100] =?UTF-8?q?=E5=B0=86=E5=86=85=E7=BD=AE243=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E6=9B=B4=E6=96=B0=E4=B8=BA=E4=B8=80=E5=9B=BE=E6=B5=81?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=99=A8=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../243_layout_3_times_a_day.json | 714 ++++++++++-------- 1 file changed, 397 insertions(+), 317 deletions(-) diff --git a/resource/custom_infrast/243_layout_3_times_a_day.json b/resource/custom_infrast/243_layout_3_times_a_day.json index c2a00db880..421aa05746 100644 --- a/resource/custom_infrast/243_layout_3_times_a_day.json +++ b/resource/custom_infrast/243_layout_3_times_a_day.json @@ -1,22 +1,108 @@ { - "title": "243 极限效率,一天三换", - "description": "干员配置要求极高,请留意\n若缺少干员请自行拷贝文件并修改(请勿直接修改,以免更新后被覆盖)\n\n作业作者:MistEO\n感谢公孙长乐大佬提供数据及方案支持!\n[20220119 修订] 视频地址: https://www.bilibili.com/video/BV1qD4y1H77E?t=365\n请把年放在加工站", - "plans": [ + "plans":[ { - "name": "A+B 组 16H", - "description": "最高效率长班", - "description_post": "下次换班请在约16小时后进行", - "Fiammetta": { - "target": "巫恋" - }, - "drones": { - "room": "manufacture", - "index": 1 - }, - "rooms": { - "control": [ + "rooms":{ + "trading":[ { - "operators": [ + "product":"LMD", + "operators":[ + "巫恋", + "龙舌兰", + "卡夫卡" + ], + "sort":true, + "autofill":false + }, + { + "product":"LMD", + "operators":[ + "但书", + "乌有", + "黑键" + ], + "sort":true, + "autofill":false + } + ], + "manufacture":[ + { + "product":"Battle Record", + "operators":[ + "红云", + "稀音", + "帕拉斯" + ], + "sort":true, + "autofill":false + }, + { + "product":"Battle Record", + "operators":[ + "食铁兽", + "断罪者", + "槐琥" + ], + "sort":true, + "autofill":false + }, + { + "product":"Pure Gold", + "operators":[ + "清流", + "温蒂", + "森蚺" + ], + "sort":true, + "autofill":false + }, + { + "product":"Pure Gold", + "operators":[ + "砾", + "至简", + "迷迭香" + ], + "sort":true, + "autofill":false + } + ], + "hire":[ + { + "operators":[ + "絮雨" + ], + "autofill":false + } + ], + "dormitory":[ + { + "operators":[ + "车尔尼" + ], + "sort":true, + "autofill":true + }, + { + "operators":[ + "爱丽丝" + ], + "sort":true, + "autofill":true + }, + { + "operators":[], + "sort":false, + "autofill":true + }, + { + "operators":[], + "sort":false, + "autofill":true + } + ], + "control":[ + { + "operators":[ "阿米娅", "重岳", "琴柳", @@ -25,361 +111,355 @@ ] } ], - "trading": [ + "power":[ { - "operators": [ - "巫恋", - "龙舌兰", - "柏喙" - ], - "sort": true, - "product": "LMD" - }, - { - "operators": [ - "但书", - "乌有", - "黑键" - ], - "product": "LMD" - } - ], - "manufacture": [ - { - "operators": [ - "红云", - "稀音", - "帕拉斯" - ], - "sort": true, - "product": "Battle Record" - }, - { - "operators": [ - "食铁兽", - "断罪者", - "槐琥" - ], - "product": "Battle Record" - }, - { - "operators": [ - "清流", - "温蒂", - "森蚺" - ], - "product": "Pure Gold" - }, - { - "operators": [ - "砾", - "至简", - "迷迭香" - ], - "product": "Pure Gold" - } - ], - "power": [ - { - "operators": [ + "operators":[ "承曦格雷伊" - ] + ], + "autofill":false }, { - "operators": [ + "operators":[ "澄闪" - ] - }, - { - "operators": [ - "格雷伊" - ] - } - ], - "hire": [ - { - "operators": [ - "絮雨" - ] - } - ], - "meeting": [ - { - "autofill": true - } - ], - "dormitory": [ - { - "operators": [ - "爱丽丝", - "车尔尼", - "菲亚梅塔" ], - "autofill": true + "autofill":false }, { - "autofill": true - }, + "operators":[ + "格雷伊" + ], + "autofill":false + } + ], + "meeting":[ { - "autofill": true - }, - { - "autofill": true + "operators":[], + "autofill":true } ] - } - }, - { - "name": "A+Y 组 4H", - "description": "次高效替补 2 班", - "description_post": "下次换班请在约4小时后进行", - "Fiammetta": { - "target": "龙舌兰" }, - "drones": { - "room": "manufacture", - "index": 1 - }, - "rooms": { - "control": [ - { - "operators": [ - "诗怀雅", - "凯尔希", - "灵知", - "焰尾", - "老鲤" - ] - } - ], - "trading": [ - { - "operators": [ - "巫恋", - "龙舌兰", - "柏喙" - ], - "sort": true, - "product": "LMD" - }, - { - "operators": [ - "孑", - "银灰", - "崖心" - ], - "product": "LMD" - } - ], - "manufacture": [ - { - "operators": [ - "红云", - "稀音", - "帕拉斯" - ], - "sort": true, - "product": "Battle Record" - }, - { - "operators": [ - "远牙", - "野鬃", - "灰毫" - ], - "product": "Battle Record" - }, - { - "operators": [ - "清流", - "温蒂", - "森蚺" - ], - "product": "Pure Gold" - }, - { - "operators": [ - "水月", - "海沫", - "多萝西" - ], - "sort": true, - "product": "Pure Gold" - } - ], - "power": [ - { - "operators": [ - "承曦格雷伊" - ] - }, - { - "operators": [ - "雷蛇" - ] - }, - { - "operators": [ - "格雷伊" - ] - } - ], - "hire": [ - { - "operators": [ - "斥罪" - ] - } - ], - "meeting": [ - { - "autofill": true - } - ], - "dormitory": [ - { - "operators": [ - "爱丽丝", - "车尔尼", - "菲亚梅塔" - ], - "autofill": true - }, - { - "autofill": true - }, - { - "autofill": true - }, - { - "autofill": true - } + "period":[ + [ + "0:00", + "15:59" ] - } + ], + "drones":{ + "enable":true, + "index":1, + "room":"manufacture", + "order":"pre" + }, + "name":"16H最高效率长班", + "description":"请手动把年放加工站,每天0点换班,下次换班为16点" }, { - "name": "B+Y 组 4H", - "description": "次高效替补 1 班", - "description_post": "下次换班请在约4小时后进行", - "drones": { - "room": "trading", - "index": 1 - }, - "rooms": { - "control": [ + "rooms":{ + "trading":[ { - "operators": [ - "阿米娅", - "重岳", - "琴柳", - "令", - "焰尾" - ] - } - ], - "trading": [ - { - "operators": [ + "product":"LMD", + "operators":[ "巫恋", "龙舌兰", "卡夫卡" ], - "sort": true, - "product": "LMD" + "sort":true, + "autofill":false }, { - "operators": [ + "product":"LMD", + "operators":[ "但书", - "乌有", + "空弦", "黑键" ], - "product": "LMD" + "sort":true, + "autofill":false } ], - "manufacture": [ + "manufacture":[ { - "operators": [ + "product":"Battle Record", + "operators":[ "食铁兽", "断罪者", "槐琥" ], - "product": "Battle Record" + "sort":true, + "autofill":false }, { - "operators": [ + "product":"Battle Record", + "operators":[ "远牙", "野鬃", "灰毫" ], - "product": "Battle Record" + "sort":true, + "autofill":false }, { - "operators": [ - "砾", - "至简", - "迷迭香" - ], - "sort": true, - "product": "Pure Gold" - }, - { - "operators": [ + "product":"Pure Gold", + "operators":[ "水月", "海沫", "多萝西" ], - "product": "Pure Gold" - } - ], - "power": [ - { - "operators": [ - "正义骑士号" - ] + "sort":true, + "autofill":false }, { - "operators": [ - "雷蛇" - ] - }, - { - "operators": [ - "澄闪" - ] - } - ], - "hire": [ - { - "operators": [ - "絮雨" - ] - } - ], - "meeting": [ - { - "autofill": true - } - ], - "dormitory": [ - { - "operators": [ - "爱丽丝", - "车尔尼", - "菲亚梅塔" + "product":"Pure Gold", + "operators":[ + "砾", + "至简", + "迷迭香" ], - "autofill": true + "sort":true, + "autofill":false + } + ], + "hire":[ + { + "operators":[ + "絮雨" + ], + "autofill":false + } + ], + "dormitory":[ + { + "operators":[ + "车尔尼" + ], + "sort":true, + "autofill":true }, { - "autofill": true + "operators":[ + "爱丽丝" + ], + "sort":true, + "autofill":true }, { - "autofill": true + "operators":[], + "sort":false, + "autofill":true }, { - "autofill": true + "operators":[], + "sort":false, + "autofill":true + } + ], + "control":[ + { + "operators":[ + "阿米娅", + "凯尔希", + "琴柳", + "焰尾", + "令" + ] + } + ], + "power":[ + { + "operators":[ + "正义骑士号" + ], + "autofill":false + }, + { + "operators":[ + "澄闪" + ], + "autofill":false + }, + { + "operators":[ + "雷蛇" + ], + "autofill":false + } + ], + "meeting":[ + { + "operators":[], + "autofill":true } ] - } + }, + "period":[ + [ + "16:00", + "19:59" + ] + ], + "drones":{ + "enable":true, + "index":1, + "room":"manufacture", + "order":"pre" + }, + "name":"4H 次高效替补 2 班", + "description":"每天16点换班,下次换班为20点" + }, + { + "rooms":{ + "trading":[ + { + "product":"LMD", + "operators":[ + "巫恋", + "龙舌兰", + "柏喙" + ], + "sort":true, + "autofill":false + }, + { + "product":"LMD", + "operators":[ + "但书", + "孑", + "银灰" + ], + "sort":true, + "autofill":false + } + ], + "manufacture":[ + { + "product":"Battle Record", + "operators":[ + "红云", + "稀音", + "帕拉斯" + ], + "sort":true, + "autofill":false + }, + { + "product":"Battle Record", + "operators":[ + "远牙", + "野鬃", + "灰毫" + ], + "sort":false, + "autofill":false + }, + { + "product":"Pure Gold", + "operators":[ + "清流", + "温蒂", + "森蚺" + ], + "sort":true, + "autofill":false + }, + { + "product":"Pure Gold", + "operators":[ + "水月", + "海沫", + "多萝西" + ], + "sort":true, + "autofill":false + } + ], + "hire":[ + { + "operators":[ + "斥罪" + ], + "autofill":false + } + ], + "dormitory":[ + { + "operators":[], + "sort":false, + "autofill":true + }, + { + "operators":[], + "sort":false, + "autofill":true + }, + { + "operators":[], + "sort":false, + "autofill":true + }, + { + "operators":[], + "sort":false, + "autofill":true + } + ], + "control":[ + { + "operators":[ + "诗怀雅", + "凯尔希", + "焰尾", + "灵知", + "老鲤" + ] + } + ], + "power":[ + { + "operators":[ + "承曦格雷伊" + ], + "autofill":false + }, + { + "operators":[ + "格雷伊" + ], + "autofill":false + }, + { + "operators":[ + "雷蛇" + ], + "autofill":false + } + ], + "meeting":[ + { + "operators":[], + "autofill":true + } + ] + }, + "period":[ + [ + "20:00", + "23:59" + ] + ], + "drones":{ + "enable":true, + "index":1, + "room":"manufacture", + "order":"pre" + }, + "name":"4H 次高效替补 1 班", + "description":"每天20点换班,下次换班为次日0点" } - ] + ], + "author":"Anchor", + "description":"干员配置要求极高,请留意\\n若缺少干员请自行通过id在一图流基建排班生成器上修改并重新生成导出(请勿直接修改,以免更新后被覆盖)\\n\\n感谢公孙长乐大佬提供数据及方案支持!\\n[20230224 修订] 视频地址: https://www.bilibili.com/video/BV1EM411c7Ng\\n请把年放在加工站\\n可根据自己挂机安排调整起止时间", + "id":1677300633720684, + "title":"243极限效率,一天三换(需手动菲亚梅塔)", + "buildingType":"243", + "planTimes":"3班" } From 88fad38460b2c868d07ad8af9b1d1ee6638d5ce9 Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Sat, 25 Feb 2023 01:50:30 -0600 Subject: [PATCH 063/100] feat: localization of VersionUpdateView --- src/MaaWpfGui/Res/Localizations/en-us.xaml | 6 ++++++ src/MaaWpfGui/Res/Localizations/zh-cn.xaml | 6 ++++++ src/MaaWpfGui/Views/VersionUpdateView.xaml | 6 +++--- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/MaaWpfGui/Res/Localizations/en-us.xaml b/src/MaaWpfGui/Res/Localizations/en-us.xaml index cc32a70553..511159cb30 100644 --- a/src/MaaWpfGui/Res/Localizations/en-us.xaml +++ b/src/MaaWpfGui/Res/Localizations/en-us.xaml @@ -513,4 +513,10 @@ I must not drink, drink so much next time... Hello World! + + + OK! + Version Updated + Version: + \ No newline at end of file diff --git a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml index 3f6e4a0fde..b5d73cfad0 100644 --- a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml +++ b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml @@ -520,4 +520,10 @@ 下次不能喝、喝这么多了...... Hello World! + + + 好的! + 版本已更新 + 已更新: + \ No newline at end of file diff --git a/src/MaaWpfGui/Views/VersionUpdateView.xaml b/src/MaaWpfGui/Views/VersionUpdateView.xaml index bbd5052e58..ac1532a6a0 100644 --- a/src/MaaWpfGui/Views/VersionUpdateView.xaml +++ b/src/MaaWpfGui/Views/VersionUpdateView.xaml @@ -8,7 +8,7 @@ xmlns:mdxam="clr-namespace:MdXaml;assembly=MdXaml" xmlns:s="https://github.com/canton7/Stylet" xmlns:vm="clr-namespace:MaaWpfGui" - Title="版本已更新" + Title="{DynamicResource VersionUpdated}" Width="600" Height="500" d:DataContext="{d:DesignInstance {x:Type vm:VersionUpdateViewModel}}" @@ -28,7 +28,7 @@ Margin="0,20" FontSize="24" Style="{StaticResource TextBlockDefaultBold}" - Text="已更新:" + Text="{DynamicResource VersionUpdatedTo}" TextWrapping="Wrap" /> + Content="{DynamicResource UpdateNotificationOK}" /> \ No newline at end of file From d9dee76080c086d8a539a41159e144a2b923ad61 Mon Sep 17 00:00:00 2001 From: MistEO Date: Sat, 25 Feb 2023 15:52:19 +0800 Subject: [PATCH 064/100] Update src/MaaCore/Vision/OcrImageAnalyzer.cpp --- src/MaaCore/Vision/OcrImageAnalyzer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MaaCore/Vision/OcrImageAnalyzer.cpp b/src/MaaCore/Vision/OcrImageAnalyzer.cpp index 466347c8e6..4a79420b6b 100644 --- a/src/MaaCore/Vision/OcrImageAnalyzer.cpp +++ b/src/MaaCore/Vision/OcrImageAnalyzer.cpp @@ -109,7 +109,7 @@ void asst::OcrImageAnalyzer::set_replace(const std::unordered_map Date: Sat, 25 Feb 2023 15:52:59 +0800 Subject: [PATCH 065/100] Update src/MaaCore/Vision/OcrImageAnalyzer.cpp --- src/MaaCore/Vision/OcrImageAnalyzer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MaaCore/Vision/OcrImageAnalyzer.cpp b/src/MaaCore/Vision/OcrImageAnalyzer.cpp index 4a79420b6b..46d4da7c82 100644 --- a/src/MaaCore/Vision/OcrImageAnalyzer.cpp +++ b/src/MaaCore/Vision/OcrImageAnalyzer.cpp @@ -109,7 +109,7 @@ void asst::OcrImageAnalyzer::set_replace(const std::unordered_map Date: Sat, 25 Feb 2023 00:13:19 -0800 Subject: [PATCH 066/100] =?UTF-8?q?Revert=20"=E5=B0=86=E5=86=85=E7=BD=AE24?= =?UTF-8?q?3=E4=BD=9C=E4=B8=9A=E6=9B=B4=E6=96=B0=E4=B8=BA=E4=B8=80?= =?UTF-8?q?=E5=9B=BE=E6=B5=81=E7=94=9F=E6=88=90=E5=99=A8=E7=89=88"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 5e7b9047d908c07d37831a6d852f34a1278a52d9. --- .../243_layout_3_times_a_day.json | 718 ++++++++---------- 1 file changed, 319 insertions(+), 399 deletions(-) diff --git a/resource/custom_infrast/243_layout_3_times_a_day.json b/resource/custom_infrast/243_layout_3_times_a_day.json index 421aa05746..c2a00db880 100644 --- a/resource/custom_infrast/243_layout_3_times_a_day.json +++ b/resource/custom_infrast/243_layout_3_times_a_day.json @@ -1,108 +1,22 @@ { - "plans":[ + "title": "243 极限效率,一天三换", + "description": "干员配置要求极高,请留意\n若缺少干员请自行拷贝文件并修改(请勿直接修改,以免更新后被覆盖)\n\n作业作者:MistEO\n感谢公孙长乐大佬提供数据及方案支持!\n[20220119 修订] 视频地址: https://www.bilibili.com/video/BV1qD4y1H77E?t=365\n请把年放在加工站", + "plans": [ { - "rooms":{ - "trading":[ + "name": "A+B 组 16H", + "description": "最高效率长班", + "description_post": "下次换班请在约16小时后进行", + "Fiammetta": { + "target": "巫恋" + }, + "drones": { + "room": "manufacture", + "index": 1 + }, + "rooms": { + "control": [ { - "product":"LMD", - "operators":[ - "巫恋", - "龙舌兰", - "卡夫卡" - ], - "sort":true, - "autofill":false - }, - { - "product":"LMD", - "operators":[ - "但书", - "乌有", - "黑键" - ], - "sort":true, - "autofill":false - } - ], - "manufacture":[ - { - "product":"Battle Record", - "operators":[ - "红云", - "稀音", - "帕拉斯" - ], - "sort":true, - "autofill":false - }, - { - "product":"Battle Record", - "operators":[ - "食铁兽", - "断罪者", - "槐琥" - ], - "sort":true, - "autofill":false - }, - { - "product":"Pure Gold", - "operators":[ - "清流", - "温蒂", - "森蚺" - ], - "sort":true, - "autofill":false - }, - { - "product":"Pure Gold", - "operators":[ - "砾", - "至简", - "迷迭香" - ], - "sort":true, - "autofill":false - } - ], - "hire":[ - { - "operators":[ - "絮雨" - ], - "autofill":false - } - ], - "dormitory":[ - { - "operators":[ - "车尔尼" - ], - "sort":true, - "autofill":true - }, - { - "operators":[ - "爱丽丝" - ], - "sort":true, - "autofill":true - }, - { - "operators":[], - "sort":false, - "autofill":true - }, - { - "operators":[], - "sort":false, - "autofill":true - } - ], - "control":[ - { - "operators":[ + "operators": [ "阿米娅", "重岳", "琴柳", @@ -111,355 +25,361 @@ ] } ], - "power":[ + "trading": [ { - "operators":[ - "承曦格雷伊" - ], - "autofill":false - }, - { - "operators":[ - "澄闪" - ], - "autofill":false - }, - { - "operators":[ - "格雷伊" - ], - "autofill":false - } - ], - "meeting":[ - { - "operators":[], - "autofill":true - } - ] - }, - "period":[ - [ - "0:00", - "15:59" - ] - ], - "drones":{ - "enable":true, - "index":1, - "room":"manufacture", - "order":"pre" - }, - "name":"16H最高效率长班", - "description":"请手动把年放加工站,每天0点换班,下次换班为16点" - }, - { - "rooms":{ - "trading":[ - { - "product":"LMD", - "operators":[ - "巫恋", - "龙舌兰", - "卡夫卡" - ], - "sort":true, - "autofill":false - }, - { - "product":"LMD", - "operators":[ - "但书", - "空弦", - "黑键" - ], - "sort":true, - "autofill":false - } - ], - "manufacture":[ - { - "product":"Battle Record", - "operators":[ - "食铁兽", - "断罪者", - "槐琥" - ], - "sort":true, - "autofill":false - }, - { - "product":"Battle Record", - "operators":[ - "远牙", - "野鬃", - "灰毫" - ], - "sort":true, - "autofill":false - }, - { - "product":"Pure Gold", - "operators":[ - "水月", - "海沫", - "多萝西" - ], - "sort":true, - "autofill":false - }, - { - "product":"Pure Gold", - "operators":[ - "砾", - "至简", - "迷迭香" - ], - "sort":true, - "autofill":false - } - ], - "hire":[ - { - "operators":[ - "絮雨" - ], - "autofill":false - } - ], - "dormitory":[ - { - "operators":[ - "车尔尼" - ], - "sort":true, - "autofill":true - }, - { - "operators":[ - "爱丽丝" - ], - "sort":true, - "autofill":true - }, - { - "operators":[], - "sort":false, - "autofill":true - }, - { - "operators":[], - "sort":false, - "autofill":true - } - ], - "control":[ - { - "operators":[ - "阿米娅", - "凯尔希", - "琴柳", - "焰尾", - "令" - ] - } - ], - "power":[ - { - "operators":[ - "正义骑士号" - ], - "autofill":false - }, - { - "operators":[ - "澄闪" - ], - "autofill":false - }, - { - "operators":[ - "雷蛇" - ], - "autofill":false - } - ], - "meeting":[ - { - "operators":[], - "autofill":true - } - ] - }, - "period":[ - [ - "16:00", - "19:59" - ] - ], - "drones":{ - "enable":true, - "index":1, - "room":"manufacture", - "order":"pre" - }, - "name":"4H 次高效替补 2 班", - "description":"每天16点换班,下次换班为20点" - }, - { - "rooms":{ - "trading":[ - { - "product":"LMD", - "operators":[ + "operators": [ "巫恋", "龙舌兰", "柏喙" ], - "sort":true, - "autofill":false + "sort": true, + "product": "LMD" }, { - "product":"LMD", - "operators":[ + "operators": [ "但书", - "孑", - "银灰" + "乌有", + "黑键" ], - "sort":true, - "autofill":false + "product": "LMD" } ], - "manufacture":[ + "manufacture": [ { - "product":"Battle Record", - "operators":[ + "operators": [ "红云", "稀音", "帕拉斯" ], - "sort":true, - "autofill":false + "sort": true, + "product": "Battle Record" }, { - "product":"Battle Record", - "operators":[ - "远牙", - "野鬃", - "灰毫" + "operators": [ + "食铁兽", + "断罪者", + "槐琥" ], - "sort":false, - "autofill":false + "product": "Battle Record" }, { - "product":"Pure Gold", - "operators":[ + "operators": [ "清流", "温蒂", "森蚺" ], - "sort":true, - "autofill":false + "product": "Pure Gold" }, { - "product":"Pure Gold", - "operators":[ - "水月", - "海沫", - "多萝西" + "operators": [ + "砾", + "至简", + "迷迭香" ], - "sort":true, - "autofill":false + "product": "Pure Gold" } ], - "hire":[ + "power": [ { - "operators":[ - "斥罪" + "operators": [ + "承曦格雷伊" + ] + }, + { + "operators": [ + "澄闪" + ] + }, + { + "operators": [ + "格雷伊" + ] + } + ], + "hire": [ + { + "operators": [ + "絮雨" + ] + } + ], + "meeting": [ + { + "autofill": true + } + ], + "dormitory": [ + { + "operators": [ + "爱丽丝", + "车尔尼", + "菲亚梅塔" ], - "autofill":false + "autofill": true + }, + { + "autofill": true + }, + { + "autofill": true + }, + { + "autofill": true } - ], - "dormitory":[ + ] + } + }, + { + "name": "A+Y 组 4H", + "description": "次高效替补 2 班", + "description_post": "下次换班请在约4小时后进行", + "Fiammetta": { + "target": "龙舌兰" + }, + "drones": { + "room": "manufacture", + "index": 1 + }, + "rooms": { + "control": [ { - "operators":[], - "sort":false, - "autofill":true - }, - { - "operators":[], - "sort":false, - "autofill":true - }, - { - "operators":[], - "sort":false, - "autofill":true - }, - { - "operators":[], - "sort":false, - "autofill":true - } - ], - "control":[ - { - "operators":[ + "operators": [ "诗怀雅", "凯尔希", - "焰尾", "灵知", + "焰尾", "老鲤" ] } ], - "power":[ + "trading": [ { - "operators":[ - "承曦格雷伊" + "operators": [ + "巫恋", + "龙舌兰", + "柏喙" ], - "autofill":false + "sort": true, + "product": "LMD" }, { - "operators":[ - "格雷伊" + "operators": [ + "孑", + "银灰", + "崖心" ], - "autofill":false - }, - { - "operators":[ - "雷蛇" - ], - "autofill":false + "product": "LMD" } ], - "meeting":[ + "manufacture": [ { - "operators":[], - "autofill":true + "operators": [ + "红云", + "稀音", + "帕拉斯" + ], + "sort": true, + "product": "Battle Record" + }, + { + "operators": [ + "远牙", + "野鬃", + "灰毫" + ], + "product": "Battle Record" + }, + { + "operators": [ + "清流", + "温蒂", + "森蚺" + ], + "product": "Pure Gold" + }, + { + "operators": [ + "水月", + "海沫", + "多萝西" + ], + "sort": true, + "product": "Pure Gold" + } + ], + "power": [ + { + "operators": [ + "承曦格雷伊" + ] + }, + { + "operators": [ + "雷蛇" + ] + }, + { + "operators": [ + "格雷伊" + ] + } + ], + "hire": [ + { + "operators": [ + "斥罪" + ] + } + ], + "meeting": [ + { + "autofill": true + } + ], + "dormitory": [ + { + "operators": [ + "爱丽丝", + "车尔尼", + "菲亚梅塔" + ], + "autofill": true + }, + { + "autofill": true + }, + { + "autofill": true + }, + { + "autofill": true } ] + } + }, + { + "name": "B+Y 组 4H", + "description": "次高效替补 1 班", + "description_post": "下次换班请在约4小时后进行", + "drones": { + "room": "trading", + "index": 1 }, - "period":[ - [ - "20:00", - "23:59" + "rooms": { + "control": [ + { + "operators": [ + "阿米娅", + "重岳", + "琴柳", + "令", + "焰尾" + ] + } + ], + "trading": [ + { + "operators": [ + "巫恋", + "龙舌兰", + "卡夫卡" + ], + "sort": true, + "product": "LMD" + }, + { + "operators": [ + "但书", + "乌有", + "黑键" + ], + "product": "LMD" + } + ], + "manufacture": [ + { + "operators": [ + "食铁兽", + "断罪者", + "槐琥" + ], + "product": "Battle Record" + }, + { + "operators": [ + "远牙", + "野鬃", + "灰毫" + ], + "product": "Battle Record" + }, + { + "operators": [ + "砾", + "至简", + "迷迭香" + ], + "sort": true, + "product": "Pure Gold" + }, + { + "operators": [ + "水月", + "海沫", + "多萝西" + ], + "product": "Pure Gold" + } + ], + "power": [ + { + "operators": [ + "正义骑士号" + ] + }, + { + "operators": [ + "雷蛇" + ] + }, + { + "operators": [ + "澄闪" + ] + } + ], + "hire": [ + { + "operators": [ + "絮雨" + ] + } + ], + "meeting": [ + { + "autofill": true + } + ], + "dormitory": [ + { + "operators": [ + "爱丽丝", + "车尔尼", + "菲亚梅塔" + ], + "autofill": true + }, + { + "autofill": true + }, + { + "autofill": true + }, + { + "autofill": true + } ] - ], - "drones":{ - "enable":true, - "index":1, - "room":"manufacture", - "order":"pre" - }, - "name":"4H 次高效替补 1 班", - "description":"每天20点换班,下次换班为次日0点" + } } - ], - "author":"Anchor", - "description":"干员配置要求极高,请留意\\n若缺少干员请自行通过id在一图流基建排班生成器上修改并重新生成导出(请勿直接修改,以免更新后被覆盖)\\n\\n感谢公孙长乐大佬提供数据及方案支持!\\n[20230224 修订] 视频地址: https://www.bilibili.com/video/BV1EM411c7Ng\\n请把年放在加工站\\n可根据自己挂机安排调整起止时间", - "id":1677300633720684, - "title":"243极限效率,一天三换(需手动菲亚梅塔)", - "buildingType":"243", - "planTimes":"3班" + ] } From 618a79c15b2954c52cb615345ef89d7166639a2f Mon Sep 17 00:00:00 2001 From: "Y. Ding" Date: Sat, 25 Feb 2023 00:17:27 -0800 Subject: [PATCH 067/100] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=80=E5=9B=BE?= =?UTF-8?q?=E6=B5=81=E7=94=9F=E6=88=90243=E6=9E=81=E9=99=90=E6=95=88?= =?UTF-8?q?=E7=8E=87=E5=9F=BA=E5=BB=BA=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ..._times_a_day_yituliu_1677312017553916.json | 448 ++++++++++++++++++ 1 file changed, 448 insertions(+) create mode 100644 resource/custom_infrast/243_layout_3_times_a_day_yituliu_1677312017553916.json diff --git a/resource/custom_infrast/243_layout_3_times_a_day_yituliu_1677312017553916.json b/resource/custom_infrast/243_layout_3_times_a_day_yituliu_1677312017553916.json new file mode 100644 index 0000000000..67e8fdba2d --- /dev/null +++ b/resource/custom_infrast/243_layout_3_times_a_day_yituliu_1677312017553916.json @@ -0,0 +1,448 @@ + +{ + "plans":[ + { + "rooms":{ + "trading":[ + { + "product":"LMD", + "operators":[ + "巫恋", + "龙舌兰", + "卡夫卡" + ], + "sort":true, + "autofill":false + }, + { + "product":"LMD", + "operators":[ + "但书", + "乌有", + "黑键" + ], + "sort":true, + "autofill":false + } + ], + "manufacture":[ + { + "product":"Battle Record", + "operators":[ + "红云", + "稀音", + "帕拉斯" + ], + "sort":true, + "autofill":false + }, + { + "product":"Battle Record", + "operators":[ + "食铁兽", + "断罪者", + "槐琥" + ], + "sort":true, + "autofill":false + }, + { + "product":"Pure Gold", + "operators":[ + "清流", + "温蒂", + "森蚺" + ], + "sort":true, + "autofill":false + }, + { + "product":"Pure Gold", + "operators":[ + "砾", + "至简", + "迷迭香" + ], + "sort":true, + "autofill":false + } + ], + "hire":[ + { + "operators":[ + "絮雨" + ], + "autofill":false + } + ], + "dormitory":[ + { + "operators":[ + "车尔尼" + ], + "sort":true, + "autofill":true + }, + { + "operators":[ + "爱丽丝" + ], + "sort":true, + "autofill":true + }, + { + "operators":[], + "sort":false, + "autofill":true + }, + { + "operators":[], + "sort":false, + "autofill":true + } + ], + "control":[ + { + "operators":[ + "阿米娅", + "重岳", + "琴柳", + "令", + "夕" + ] + } + ], + "power":[ + { + "operators":[ + "承曦格雷伊" + ], + "autofill":false + }, + { + "operators":[ + "澄闪" + ], + "autofill":false + }, + { + "operators":[ + "格雷伊" + ], + "autofill":false + } + ], + "meeting":[ + { + "operators":[], + "autofill":true + } + ] + }, + "drones":{ + "enable":true, + "index":1, + "room":"manufacture", + "order":"pre" + }, + "name":"16H最高效率长班", + "description":"请手动把年放加工站,下次在16小时后换班" + }, + { + "rooms":{ + "trading":[ + { + "product":"LMD", + "operators":[ + "巫恋", + "龙舌兰", + "卡夫卡" + ], + "sort":true, + "autofill":false + }, + { + "product":"LMD", + "operators":[ + "但书", + "空弦", + "黑键" + ], + "sort":true, + "autofill":false + } + ], + "manufacture":[ + { + "product":"Battle Record", + "operators":[ + "食铁兽", + "断罪者", + "槐琥" + ], + "sort":true, + "autofill":false + }, + { + "product":"Battle Record", + "operators":[ + "远牙", + "野鬃", + "灰毫" + ], + "sort":true, + "autofill":false + }, + { + "product":"Pure Gold", + "operators":[ + "水月", + "海沫", + "多萝西" + ], + "sort":true, + "autofill":false + }, + { + "product":"Pure Gold", + "operators":[ + "砾", + "至简", + "迷迭香" + ], + "sort":true, + "autofill":false + } + ], + "hire":[ + { + "operators":[ + "絮雨" + ], + "autofill":false + } + ], + "dormitory":[ + { + "operators":[ + "车尔尼" + ], + "sort":true, + "autofill":true + }, + { + "operators":[ + "爱丽丝" + ], + "sort":true, + "autofill":true + }, + { + "operators":[], + "sort":false, + "autofill":true + }, + { + "operators":[], + "sort":false, + "autofill":true + } + ], + "control":[ + { + "operators":[ + "阿米娅", + "凯尔希", + "琴柳", + "焰尾", + "令" + ] + } + ], + "power":[ + { + "operators":[ + "正义骑士号" + ], + "autofill":false + }, + { + "operators":[ + "澄闪" + ], + "autofill":false + }, + { + "operators":[ + "雷蛇" + ], + "autofill":false + } + ], + "meeting":[ + { + "operators":[], + "autofill":true + } + ] + }, + "drones":{ + "enable":true, + "index":1, + "room":"manufacture", + "order":"pre" + }, + "name":"4H 次高效替补 2 班", + "description":"下次在4小时后换班" + }, + { + "rooms":{ + "trading":[ + { + "product":"LMD", + "operators":[ + "巫恋", + "龙舌兰", + "柏喙" + ], + "sort":true, + "autofill":false + }, + { + "product":"LMD", + "operators":[ + "但书", + "孑", + "银灰" + ], + "sort":true, + "autofill":false + } + ], + "manufacture":[ + { + "product":"Battle Record", + "operators":[ + "红云", + "稀音", + "帕拉斯" + ], + "sort":true, + "autofill":false + }, + { + "product":"Battle Record", + "operators":[ + "远牙", + "野鬃", + "灰毫" + ], + "sort":false, + "autofill":false + }, + { + "product":"Pure Gold", + "operators":[ + "清流", + "温蒂", + "森蚺" + ], + "sort":true, + "autofill":false + }, + { + "product":"Pure Gold", + "operators":[ + "水月", + "海沫", + "多萝西" + ], + "sort":true, + "autofill":false + } + ], + "hire":[ + { + "operators":[ + "斥罪" + ], + "autofill":false + } + ], + "dormitory":[ + { + "operators":[], + "sort":false, + "autofill":true + }, + { + "operators":[], + "sort":false, + "autofill":true + }, + { + "operators":[], + "sort":false, + "autofill":true + }, + { + "operators":[], + "sort":false, + "autofill":true + } + ], + "control":[ + { + "operators":[ + "诗怀雅", + "凯尔希", + "焰尾", + "灵知", + "老鲤" + ] + } + ], + "power":[ + { + "operators":[ + "承曦格雷伊" + ], + "autofill":false + }, + { + "operators":[ + "格雷伊" + ], + "autofill":false + }, + { + "operators":[ + "雷蛇" + ], + "autofill":false + } + ], + "meeting":[ + { + "operators":[], + "autofill":true + } + ] + }, + "drones":{ + "enable":true, + "index":1, + "room":"manufacture", + "order":"pre" + }, + "name":"4H 次高效替补 1 班", + "description":"下次在4小时后换班" + } + ], + "author":"Anchor", + "description":"干员配置要求极高,请留意\\n若缺少干员请自行通过id在一图流基建排班生成器上修改并重新生成导出(请勿直接修改,以免更新后被覆盖)\\n\\n感谢公孙长乐大佬提供数据及方案支持!\\n[20230224 修订] 视频地址: https://www.bilibili.com/video/BV1EM411c7Ng\\n请把年放在加工站\\n可自行在一图流排班生成器上自定义班次起止时间", + "id":1677312017553916, + "title":"243极限效率,一天三换(需手动菲亚梅塔)", + "buildingType":"243", + "planTimes":"3班" +} \ No newline at end of file From 2dd35636972520da033803893e74e95fd4e3d297 Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Sat, 25 Feb 2023 17:31:32 +0800 Subject: [PATCH 068/100] =?UTF-8?q?docs:=20=E4=BF=AE=E5=A4=8D=20README=20?= =?UTF-8?q?=E7=91=95=E7=96=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e8ceaeee8e..36f12df265 100644 --- a/README.md +++ b/README.md @@ -122,7 +122,7 @@ MAA 的意思是 MAA Assistant Arknights - ~~公开招募数据:[明日方舟工具箱](https://www.bigfun.cn/tools/aktools/hr)~~ - 干员及基建数据:[PRTS明日方舟中文WIKI](http://prts.wiki/) - 关卡数据:[企鹅物流数据统计](https://penguin-stats.cn/) -- 游戏数据及資源:[明日方舟bot常用素材](https://github.com/yuanyan3060/Arknights-Bot-Resource) +- 游戏数据及资源:[明日方舟bot常用素材](https://github.com/yuanyan3060/Arknights-Bot-Resource) - 游戏数据:[《明日方舟》游戏数据](https://github.com/Kengxxiao/ArknightsGameData) ### 贡献/参与者 From 5f678d8e95a48d0878d13d6e1b5fdc60681fe1dd Mon Sep 17 00:00:00 2001 From: uye <99072975+ABA2396@users.noreply.github.com> Date: Sat, 25 Feb 2023 18:20:31 +0800 Subject: [PATCH 069/100] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=E5=B8=B8?= =?UTF-8?q?=E8=A7=81=E9=97=AE=E9=A2=98=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaWpfGui/Helper/MaaUrls.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/MaaWpfGui/Helper/MaaUrls.cs b/src/MaaWpfGui/Helper/MaaUrls.cs index 8328505632..ff0bd1d153 100644 --- a/src/MaaWpfGui/Helper/MaaUrls.cs +++ b/src/MaaWpfGui/Helper/MaaUrls.cs @@ -38,11 +38,11 @@ namespace MaaWpfGui private static readonly Dictionary _helpUrl = new Dictionary { - { "zh-cn", "1.2-常见问题.md" }, - { "en-us", "en-us/1.2-FAQ.md" }, - { "ja-jp", "ja-jp/1.2-よくある質問.md" }, - { "ko-kr", "ko-kr/1.2-FAQ.md" }, - { "zh-tw", "zh-tw/1.2-常見問題.md" }, + { "zh-cn", "1.2-常见问题.html" }, + { "en-us", "en-us/1.2-FAQ.html" }, + { "ja-jp", "ja-jp/1.2-よくある質問.html" }, + { "ko-kr", "ko-kr/1.2-FAQ.html" }, + { "zh-tw", "zh-tw/1.2-常見問題.html" }, { "pallas", "KeepDrinking" }, }; From 9f00faeb7bc775605cc29fe0ad370ee457493385 Mon Sep 17 00:00:00 2001 From: Wallsman <63186641+wallsman@users.noreply.github.com> Date: Sat, 25 Feb 2023 22:07:59 +0900 Subject: [PATCH 070/100] doc : Blue-ray items Upadate text --- docs/glossary/items.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/glossary/items.md b/docs/glossary/items.md index 30245962f0..8c8e2f7a9d 100644 --- a/docs/glossary/items.md +++ b/docs/glossary/items.md @@ -85,6 +85,8 @@ D32钢|D32 Steel|D32鋼|D32강 传承信物|Rare Token|★4○○の印|레어 증표 遗产信物|Epic Token|★5○○の印|에픽 증표 皇家信物|Royal Token|★6○○の印|로열 증표 +||★6印交換券| + 中文|English|日本語|한국어 ---|---|---|--- From eec6611d7e876639725245ef4fbdb175ecca7fe0 Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Sat, 25 Feb 2023 18:04:17 -0600 Subject: [PATCH 071/100] feat: support of auto using 48h- potion for JP server --- resource/global/YoStarJP/resource/tasks.json | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/resource/global/YoStarJP/resource/tasks.json b/resource/global/YoStarJP/resource/tasks.json index c689fe5592..33ea08c091 100644 --- a/resource/global/YoStarJP/resource/tasks.json +++ b/resource/global/YoStarJP/resource/tasks.json @@ -1876,6 +1876,23 @@ "残り配置可能数" ] }, + "ExpiringMedicineCheck": { + "text": [ + "分", + "時間", + "1日" + ], + "ocrReplace": [ + [ + ".+時間", + "時間" + ], + [ + ".+分", + "分" + ] + ] + }, "GoLastBattle": { "text": [ "前回の参加作戦" @@ -3631,4 +3648,4 @@ ] ] } -} +} \ No newline at end of file From 8160deb7902eee8536a3f71b092f4da4a90e0dff Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Sat, 25 Feb 2023 18:04:36 -0600 Subject: [PATCH 072/100] feat: support of auto using 48h- potion for EN server & reorder json --- resource/global/YoStarEN/resource/tasks.json | 151 +++++++++++-------- 1 file changed, 84 insertions(+), 67 deletions(-) diff --git a/resource/global/YoStarEN/resource/tasks.json b/resource/global/YoStarEN/resource/tasks.json index e01a56c59a..0b971154d6 100644 --- a/resource/global/YoStarEN/resource/tasks.json +++ b/resource/global/YoStarEN/resource/tasks.json @@ -1,4 +1,19 @@ { + "ClickChapter1": { + "text": [ + "Hour of An Awakening" + ] + }, + "ClickChapter2": { + "text": [ + "Shatter of A Vision" + ] + }, + "ClickChapter3": { + "text": [ + "Shadow of A Dying Sun" + ] + }, "CharsNameOcrReplace": { "Doc": "该任务的 ocrReplace 被所有涉及干员名的English Name识别任务复用", "ocrReplace": [ @@ -1384,19 +1399,10 @@ ] ] }, - "ClickChapter1": { + "TodaysSupplies": { + "algorithm": "OcrDetect", "text": [ - "Hour of An Awakening" - ] - }, - "ClickChapter2": { - "text": [ - "Shatter of A Vision" - ] - }, - "ClickChapter3": { - "text": [ - "Shadow of A Dying Sun" + "Resource Today" ] }, "StartButton1": { @@ -1409,6 +1415,52 @@ "Takeover" ] }, + "ExpiringMedicineCheck": { + "text": [ + "min", + "hr", + "1 day" + ], + "ocrReplace": [ + [ + ".+hrs?", + "hr" + ], + [ + ".+mins?", + "min" + ] + ] + }, + "GoLastBattle": { + "text": [ + "To the most recent stage" + ] + }, + "StartRecruit": { + "text": [ + "Recruit Now" + ] + }, + "RecruitFlag": { + "text": [ + "Recruit" + ] + }, + "RecruitNow": { + "text": [ + "Expedite" + ] + }, + "Award": { + "template": "Task.png", + "roi": [ + 700, + 530, + 200, + 130 + ] + }, "NoFriends": { "text": [ "No friends" @@ -1565,49 +1617,6 @@ "Trust" ] }, - "InfrastStationedInfo": { - "text": [ - "Operator" - ] - }, - "InfrastEnterOperList": { - "fullMatch": true, - "text": [ - "Morale", - "Resting", - "Working", - "Assign" - ] - }, - "Award": { - "template": "Task.png", - "roi": [ - 700, - 530, - 200, - 130 - ] - }, - "GoLastBattle": { - "text": [ - "To the most recent stage" - ] - }, - "StartRecruit": { - "text": [ - "Recruit Now" - ] - }, - "RecruitFlag": { - "text": [ - "Recruit" - ] - }, - "RecruitNow": { - "text": [ - "Expedite" - ] - }, "ShamareThumbnail1": { "maskRange": [ 1, @@ -1626,14 +1635,19 @@ 255 ] }, - "Roguelike@StageTraderInvestSystem": { - "maskRange": [ - 1, - 255 + "InfrastStationedInfo": { + "text": [ + "Operator" ] }, - "Roguelike@StageTraderInvestConfirm": { - "templThreshold": 0.55 + "InfrastEnterOperList": { + "fullMatch": true, + "text": [ + "Morale", + "Resting", + "Working", + "Assign" + ] }, "BattleStageName": { "Doc": "该任务的 ocrReplace 被所有涉及Rouge-like的English识别任务复用", @@ -2027,6 +2041,15 @@ "StageDrops-DropType-Reward": { "templThreshold": 0.7 }, + "Roguelike@StageTraderInvestConfirm": { + "templThreshold": 0.55 + }, + "Roguelike@StageTraderInvestSystem": { + "maskRange": [ + 1, + 255 + ] + }, "Roguelike@StageTraderInvestSystemFull": { "text": [ "Storage full" @@ -3375,11 +3398,5 @@ "《欢欣鼓舞》" ] ] - }, - "TodaysSupplies": { - "algorithm": "OcrDetect", - "text": [ - "Resource Today" - ] } } \ No newline at end of file From 7825c468debdf0a88e6db9c0f85d7c632049c7e4 Mon Sep 17 00:00:00 2001 From: MistEO Date: Sun, 26 Feb 2023 19:45:35 +0800 Subject: [PATCH 073/100] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=E6=8A=84?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E7=95=8C=E9=9D=A2=E5=B0=8F=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaWpfGui/Main/CopilotViewModel.cs | 18 ++---------------- src/MaaWpfGui/Res/Localizations/en-us.xaml | 21 +++++++++++++-------- src/MaaWpfGui/Res/Localizations/ja-jp.xaml | 19 ++++++++++++------- src/MaaWpfGui/Res/Localizations/ko-kr.xaml | 20 +++++++++++++------- src/MaaWpfGui/Res/Localizations/zh-cn.xaml | 17 +++++++++++------ src/MaaWpfGui/Res/Localizations/zh-tw.xaml | 17 +++++++++++------ 6 files changed, 62 insertions(+), 50 deletions(-) diff --git a/src/MaaWpfGui/Main/CopilotViewModel.cs b/src/MaaWpfGui/Main/CopilotViewModel.cs index a879c6b45b..249842a18c 100644 --- a/src/MaaWpfGui/Main/CopilotViewModel.cs +++ b/src/MaaWpfGui/Main/CopilotViewModel.cs @@ -59,14 +59,7 @@ namespace MaaWpfGui _windowManager = windowManager; DisplayName = Localization.GetString("Copilot"); LogItemViewModels = new ObservableCollection(); - AddLog( - Localization.GetString("CopilotTip") + "\n\n" + - /* Localization.GetString("CopilotTip1") + "\n\n" + */ - "1. " + Localization.GetString("CopilotTip2") + "\n\n" + - "2. " + Localization.GetString("CopilotTip3") + "\n\n" + - "3. " + Localization.GetString("CopilotTip4"), - /* Localization.GetString("CopilotTip5"),*/ - UILogColor.Message); + AddLog(Localization.GetString("CopilotTip"), UILogColor.Message); } protected override void OnInitialActivate() @@ -351,14 +344,7 @@ namespace MaaWpfGui File.WriteAllText(TempCopilotFile, json.ToString()); } - AddLog( - "\n\n" + - Localization.GetString("CopilotTip") + "\n\n" + - Localization.GetString("CopilotTip1") + "\n\n" + - Localization.GetString("CopilotTip2") + "\n\n" + - Localization.GetString("CopilotTip3") + "\n\n" + - Localization.GetString("CopilotTip4")); - /* Localization.GetString("CopilotTip5"));*/ + AddLog(Localization.GetString("CopilotTip")); } catch (Exception) { diff --git a/src/MaaWpfGui/Res/Localizations/en-us.xaml b/src/MaaWpfGui/Res/Localizations/en-us.xaml index 511159cb30..f35fa5ab79 100644 --- a/src/MaaWpfGui/Res/Localizations/en-us.xaml +++ b/src/MaaWpfGui/Res/Localizations/en-us.xaml @@ -376,12 +376,17 @@ Video Link - Tips: - Please set the emulator and game to 60 FPS at least. - Please use this function only when "Start" is visible in game. - You need turn off the "Auto squad" if using friend support unit, then start with your support unit selected. - For Paradox Simulation, you need to turn off "Auto squad" and select the skill before, then start in game "start" screen. - "Auto squad" can not identify the "special focus" crew members temporarily, please cancel the special attention or manual formation if necessary. + Tips: + +1. Please use this function only when "Start" is visible in game. + +2. You need turn off the "Auto squad" if using friend support unit, then start with your support unit selected. + +3. For Paradox Simulation, you need to turn off "Auto squad" and select the skill before, then start in game "start" screen. + +4. For SSS, There are two built-in files under the resource/copilot folder. +Please start on the "Start Deployment" screen after manual formation (can be used with "Loop times") + Failed to read file! No corresponding file found! @@ -513,10 +518,10 @@ I must not drink, drink so much next time... Hello World! - + OK! Version Updated - Version: + Version: \ No newline at end of file diff --git a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml index 94cab10cdd..98761d1fce 100644 --- a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml +++ b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml @@ -388,12 +388,17 @@ - ヒント: - エミュレータとゲーム内設定のフレームレートを60fps以上に設定してください; - 「行動開始」ボタンのあるインターフェースでこの機能を使用してください; - サポートを使うときは、「自動編成」をオフにし、手動でオペレーターを選択してから始めましょう; - 逆理演算の場合は、「自動編成」をオフにする必要があり、スキルを選択した後、「演算開始」ボタンのインターフェースから開始する必要があります; - 「自動編成」では、一時的に「戦術要員」オペレーターを認識できません。必要に応じて、戦術要員をキャンセルまたは手動に編成してください。 + ヒント: + +1. 「行動開始」ボタンのあるインターフェースでこの機能を使用してください; + +2. サポートを使うときは、「自動編成」をオフにし、手動でオペレーターを選択してから始めましょう; + +3. 逆理演算の場合は、「自動編成」をオフにする必要があり、スキルを選択した後、「演算開始」ボタンのインターフェースから開始する必要があります; + +4. For SSS, There are two built-in files under the resource/copilot folder. +Please start on the "Start Deployment" screen after manual formation (can be used with "Loop times") + ファイルの読み取りに失敗しました! 対応する攻略ファイルが見つかりません! @@ -517,4 +522,4 @@ つ、次は飲みすぎないようにしないと…… Hello World! - + \ No newline at end of file diff --git a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml index ce247492ec..90d5011643 100644 --- a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml +++ b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml @@ -367,12 +367,18 @@ 비디오 링크 - 팁: - 에뮬레이터와 게임의 프레임 레이트를 60FPS 이상으로 설정하세요. - '작전 개시' 버튼이 있는 화면에서 이 기능을 사용하세요. - 친구의 오퍼레이터를 사용하는 경우에는 '자동 편성'을 선택하지 말고 수동으로 오퍼레이터를 선택하고 시작하세요. - 패러독스 시뮬레이션의 경우에는 '자동 편성'을 선택하지 말고, 스킬을 선택하고 '시뮬레이션 시작' 버튼이 있는 화면에 시작하세요. - 자동 편성은 '선호' 오퍼레이터를 인식할 수 없습니다. 필요한 경우 선호 오퍼레이터 표시를 취소하고 수동으로 편성할 수 있습니다. + + 팁: + +1. '작전 개시' 버튼이 있는 화면에서 이 기능을 사용하세요. + +2. 친구의 오퍼레이터를 사용하는 경우에는 '자동 편성'을 선택하지 말고 수동으로 오퍼레이터를 선택하고 시작하세요. + +3. 패러독스 시뮬레이션의 경우에는 '자동 편성'을 선택하지 말고, 스킬을 선택하고 '시뮬레이션 시작' 버튼이 있는 화면에 시작하세요. + +4. For SSS, There are two built-in files under the resource/copilot folder. +Please start on the "Start Deployment" screen after manual formation (can be used with "Loop times") + 파일을 읽지 못했습니다! 해당 파일을 찾을 수 없습니다! @@ -504,4 +510,4 @@ 다, 다음엔 적당히 마셔야지…… Hello World! - + \ No newline at end of file diff --git a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml index b5d73cfad0..b8363169a7 100644 --- a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml +++ b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml @@ -378,12 +378,17 @@ 视频链接 - 小提示: - 请将模拟器及游戏帧率设置到 60 帧或更高; - 请在有“开始行动”按钮的界面再使用本功能; - 使用好友助战可以关闭“自动编队”,手动选择干员后开始; - 模拟悖论需要关闭“自动编队”,并选好技能后处于“开始模拟”按钮的界面再开始; - “自动编队”暂时无法识别“特别关注”的干员,如有需求请取消特别关注或手动编队; + 小提示: + +1. 请在有“开始行动”按钮的界面再使用本功能; + +2. 使用好友助战可以关闭“自动编队”,手动选择干员后开始; + +3. 模拟悖论需要关闭“自动编队”,并选好技能后处于“开始模拟”按钮的界面再开始; + +4. 保全派驻 在 resource/copilot 文件夹下内置了两份作业。 +请手动编队后在“开始部署”界面开始(可配合“循环次数”使用) + 读取文件失败! 未找到对应作业! diff --git a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml index d32e8dd60f..e10c35e3a2 100644 --- a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml +++ b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml @@ -321,12 +321,17 @@ 影片連結 - 小提示: - 請將模擬器及遊戲影格率設定為 60 張或更高; - 請在有“開始行動”按鈕的介面再使用本功能; - 使用好友助戰可以關閉“自動編隊”,手動選擇幹員後開始; - 模擬悖論需要關閉“自動編隊”,並選好技能後處於“開始模擬”按鈕的介面再開始; - “自動編隊”暫時無法辨識“特別關注”的幹員,如有需求請取消特別關注或手動編隊; + 小提示: + +1. 請在有“開始行動”按鈕的介面再使用本功能; + +2. 使用好友助戰可以關閉“自動編隊”,手動選擇幹員後開始; + +3. 模擬悖論需要關閉“自動編隊”,並選好技能後處於“開始模擬”按鈕的介面再開始; + +4. 保全派駐 在 resource/copilot 文件夾下內置了兩份作業。 +請手動編隊後在“開始部署”界面開始(可配合“循環次數”使用) + 讀取檔案失敗! 未找到對應作業! From bbcd454938eb6b913ff82b03fdd0c4f7a53d096d Mon Sep 17 00:00:00 2001 From: MistEO Date: Sun, 26 Feb 2023 23:48:26 +0800 Subject: [PATCH 074/100] =?UTF-8?q?docs:=20=E4=BF=AE=E6=94=B9=E5=85=B3?= =?UTF-8?q?=E4=BA=8E=E5=A4=96=E6=9C=8D=E5=8A=9F=E8=83=BD=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E7=9A=84=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 12 ++----- resource/global/YoStarEN/readme.md | 33 ------------------ resource/global/YoStarJP/readme.md | 55 ------------------------------ resource/global/YoStarKR/readme.md | 34 ------------------ 4 files changed, 2 insertions(+), 132 deletions(-) delete mode 100644 resource/global/YoStarEN/readme.md delete mode 100644 resource/global/YoStarJP/readme.md delete mode 100644 resource/global/YoStarKR/readme.md diff --git a/README.md b/README.md index 36f12df265..9ab0562911 100644 --- a/README.md +++ b/README.md @@ -76,16 +76,8 @@ MAA 的意思是 MAA Assistant Arknights ## 外服支持 -- 国际服(美服)
- 支持基本的刷理智、信用购物、访问好友、领取奖励、自动肉鸽(测试版本)、公招识别,请参考 [说明](resource/global/YoStarEN/readme.md) -- 日服
- 支持基本的刷理智、自动基建、信用购物、自动公招、访问好友、领取奖励、自动肉鸽(测试版本)、公招识别,请参考 [说明](resource/global/YoStarJP/readme.md) -- 韩服
- 支持基本的刷理智、信用购物、访问好友、领取奖励、自动肉鸽(测试版本)、公招识别,请参考 [说明](resource/global/YoStarKR/readme.md) -- 繁中服
- 支持基本的刷理智、自动公招、自动肉鸽、领取日常、公招识别功能,请参考 [说明](resource/global/txwy/readme.md) - -由于外服用户较少及项目人手不足的问题,外服目前都仅适配了基本的功能。若您有强需求,欢迎在 [讨论区](https://github.com/MaaAssistantArknights/MaaAssistantArknights/discussions) 催更,或加入我们一起建设 MAA!请参考 [外服适配教程](#外服适配) +目前国际服(美服)、日服、韩服、繁中服的绝大部分功能均已支持。但由于外服用户较少及项目人手不足,很多功能并没有进行全面的测试,所以请自行体验。 +若您遇到了 Bug,或对某个功能有强需求,欢迎在 [Issues](https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues) 和 [讨论区](https://github.com/MaaAssistantArknights/MaaAssistantArknights/discussions) 催更;或加入我们一起建设 MAA!请参考 [外服适配教程](#外服适配) ## 主要关联项目 diff --git a/resource/global/YoStarEN/readme.md b/resource/global/YoStarEN/readme.md deleted file mode 100644 index 619491826c..0000000000 --- a/resource/global/YoStarEN/readme.md +++ /dev/null @@ -1,33 +0,0 @@ -# YoStarEN client - -## 国际服(美服) - -请进入 `设置` - `启动设置` - `客户端版本` 选择 `国际服` - -目前支持: - -- 刷理智(仅支持选择`当前关卡`) -- 使用理智药恢复理智 -- 使用源石恢复理智 -- 刷理智指定次数 -- 信用购物(使用英文商品名) -- 访问好友 -- 领取日常奖励 -- 公招计算 -- 无限刷肉鸽(测试功能) - -## Global (EN) - -Please go to `Settings` - `Startup Settings` - `Client Version` and select `YoStarEN` - -Now supports: - -- Auto battle (only supports selecting `current stage`) -- Restore with potion -- Restore with Originite -- Set the max number of auto battles -- Credit Shopping (with English trade names) -- Friends visit -- Award collect -- Recruitment calculate -- Auto Roguelike (beta) diff --git a/resource/global/YoStarJP/readme.md b/resource/global/YoStarJP/readme.md deleted file mode 100644 index 81e46eb747..0000000000 --- a/resource/global/YoStarJP/readme.md +++ /dev/null @@ -1,55 +0,0 @@ -# YoStarJP client - -## 日本サーバー - -「設定」-「スタートアップ設定」-「クライアントバージョン」に移動し、「YoStarJP」を選択してください - -現在サポートされている機能: - -- 自動戦闘(「現在のステージ」の選択だけ) -- 理性回復アイテムを使う -- 純正源石を使う -- 自動戦闘の最大回数を指定する -- 自動基建 -- 自動公開求人 -- 戦友訪問 -- FP交換所 (日本語名で入力対応) -- デイリーリクエストのアワードを収集する -- 公開求人の計算 -- 自動統合戦略(ベータ版) - -## 日服 - -请进入 `设置` - `启动设置` - `客户端版本` 选择 `日服` - -目前支持: - -- 刷理智(仅支持选择`当前关卡`) -- 使用理智药恢复理智 -- 使用源石恢复理智 -- 刷理智指定次数 -- 自动基建 -- 自动公招 -- 访问好友 -- 信用商店(使用日文输入商品名) -- 领取日常奖励 -- 公招计算 -- 无限刷肉鸽(测试功能) - -## JP Client - -Please go to `Settings` - `Startup Settings` - `Client Version` and select `YoStarJP` - -Supported features: - -- Auto battle (only supports selecting `current stage`) -- Auto-use sanity potion -- Auto-use Originite Prime -- Set the max number of auto battles -- Auto Base shift -- Auto recruiting -- Visiting friend's infrastructure -- Credit Shopping (with Japanese trade names) -- Collecting daily quest awards -- Recruitment calculate -- Auto Roguelike (beta) diff --git a/resource/global/YoStarKR/readme.md b/resource/global/YoStarKR/readme.md deleted file mode 100644 index c207fe41fe..0000000000 --- a/resource/global/YoStarKR/readme.md +++ /dev/null @@ -1,34 +0,0 @@ -# YoStarKR client - -## 韩服 - -请进入 `设置` - `启动设置` - `客户端版本` 选择 `韩服` - -目前支持: - -- 刷理智(仅支持选择`当前关卡`) -- 使用理智药恢复理智 -- 使用源石恢复理智 -- 指定次数 - -## Korean - -Please go to `Settings` - `Startup Settings` - `Client Version` and select `YoStarKR` - -Now supports: - -- Auto battle (only supports selecting `current stage`) -- Restore with potion -- Restore with Originite -- Set the max number of auto battles - -## 한국 서버 - -`설정` - `시작 설정` - `클라이언트 버전`으로 이동하여 `요스타 KR`을 선택하세요. - -현재 다음과 같은 기능을 지원합니다. - -- 자동 전투(`현재` 스테이지 선택만 지원) -- 이성 회복제로 이성 회복 -- 순오리지늄으로 이성 회복 -- 최대 자동 전투 횟수 설정 From 2d51be4a48f31715c2f4117b0827cdffc1ce1e62 Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Sun, 26 Feb 2023 17:25:02 -0600 Subject: [PATCH 075/100] feat: set JP ocr_replace to full_replace --- resource/global/YoStarJP/resource/tasks.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resource/global/YoStarJP/resource/tasks.json b/resource/global/YoStarJP/resource/tasks.json index 2e9e192272..67b785f8cc 100644 --- a/resource/global/YoStarJP/resource/tasks.json +++ b/resource/global/YoStarJP/resource/tasks.json @@ -11,6 +11,7 @@ }, "CharsNameOcrReplace": { "Doc": "该任务的 ocrReplace 被所有涉及干员名的日文识别任务复用 このタスクの「ocrReplace」は、オペレーター名に関連するすべての認識タスクで再利用されます", + "replaceFull": true, "ocrReplace": [ [ "シルバーアッシュ", From ca306666ae0d40bb6640aa5cd719909a2427b61b Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Sun, 26 Feb 2023 21:57:53 -0600 Subject: [PATCH 076/100] fix: ocr equivalence class will not replace dst string --- src/MaaCore/Vision/OcrImageAnalyzer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/MaaCore/Vision/OcrImageAnalyzer.cpp b/src/MaaCore/Vision/OcrImageAnalyzer.cpp index 46d4da7c82..c563951b43 100644 --- a/src/MaaCore/Vision/OcrImageAnalyzer.cpp +++ b/src/MaaCore/Vision/OcrImageAnalyzer.cpp @@ -108,8 +108,8 @@ void asst::OcrImageAnalyzer::set_replace(const std::unordered_map Date: Mon, 27 Feb 2023 15:49:16 -0600 Subject: [PATCH 077/100] feat: update JP ocr equivalence class and operator ocrreplace json --- .../global/YoStarJP/resource/ocr_config.json | 74 +++-- resource/global/YoStarJP/resource/tasks.json | 254 +++++------------- 2 files changed, 116 insertions(+), 212 deletions(-) diff --git a/resource/global/YoStarJP/resource/ocr_config.json b/resource/global/YoStarJP/resource/ocr_config.json index 04bfe0c4fb..2c25eae704 100644 --- a/resource/global/YoStarJP/resource/ocr_config.json +++ b/resource/global/YoStarJP/resource/ocr_config.json @@ -1,40 +1,33 @@ { "equivalence_classes": [ [ - "あ", - "ぁ" + "夕", + "タ" ], [ - "い", - "ぃ" + "ニ", + "二" ], [ - "う", - "ぅ" + "-", + "ー", + "一" ], [ - "え", - "ぇ" + "ト", + "卜" ], [ - "お", - "ぉ" + "ロ", + "口" ], [ - "つ", - "っ" + "カ", + "力" ], [ - "や", - "ゃ" - ], - [ - "ゆ", - "ゅ" - ], - [ - "よ", - "ょ" + "ン", + "ソ" ], [ "ア", @@ -50,7 +43,8 @@ ], [ "エ", - "ェ" + "ェ", + "工" ], [ "オ", @@ -71,6 +65,40 @@ [ "ヨ", "ョ" + ], + [ + "へ", + "ヘ" + ], + [ + "バ", + "パ" + ], + [ + "ビ", + "ピ" + ], + [ + "ブ", + "プ" + ], + [ + "ベ", + "ペ", + "べ", + "ぺ" + ], + [ + "ボ", + "ポ" + ], + [ + "o", + "O" + ], + [ + "s", + "S" ] ] } \ No newline at end of file diff --git a/resource/global/YoStarJP/resource/tasks.json b/resource/global/YoStarJP/resource/tasks.json index 67b785f8cc..ca50536c52 100644 --- a/resource/global/YoStarJP/resource/tasks.json +++ b/resource/global/YoStarJP/resource/tasks.json @@ -18,23 +18,19 @@ "银灰" ], [ - ".*ル.*ーアッシ(ユ|ュ)", + ".*ル.*ーアッシュ", "银灰" ], [ "ブレイズ", "煌" ], - [ - "プレイズ", - "煌" - ], [ "スルト", "史尔特尔" ], [ - "^チェン$", + "^チェン", "陈" ], [ @@ -46,7 +42,7 @@ "棘刺" ], [ - "^スペクタ.*", + "^スペクター", "幽灵鲨" ], [ @@ -54,21 +50,17 @@ "耀骑士临光" ], [ - ".*騎士ニアール", + "騎士ニアール", "耀骑士临光" ], [ - "ラッ.*ランド", + "ラップランド", "拉普兰德" ], [ "ップランド", "拉普兰德" ], - [ - "ブップランド", - "拉普兰德" - ], [ "インドラ", "因陀罗" @@ -98,7 +90,7 @@ "铸铁" ], [ - "スワイヤ.*", + "スワイヤー", "诗怀雅" ], [ @@ -106,7 +98,7 @@ "鞭刃" ], [ - ".*(イ|ィ)スラッシ(ュ|ユ)", + "ィスラッシュ", "鞭刃" ], [ @@ -126,7 +118,7 @@ "杜宾" ], [ - "ミーベルマン", + "ーベルマン", "杜宾" ], [ @@ -138,7 +130,7 @@ "霜叶" ], [ - ".*ロストリー.*", + "ロストリー", "霜叶" ], [ @@ -154,15 +146,15 @@ "帕拉斯" ], [ - ".*(パ|バ)ラス$", - "帕拉斯" + "マウンテン", + "山" ], [ "マウ.*テ.*", "山" ], [ - "^スカジ$", + "^スカジ", "斯卡蒂" ], [ @@ -174,11 +166,11 @@ "龙舌兰" ], [ - "フリソト", + "フリント", "燧石" ], [ - "フリント", + "フリソト", "燧石" ], [ @@ -202,7 +194,7 @@ "断罪者" ], [ - ".*(ン|ソ)(ピ|ビ)クション", + ".*(ン|ソ)ビクション", "断罪者" ], [ @@ -258,7 +250,7 @@ "空" ], [ - ".*心ス(カ|力)ジ", + ".*心スカジ", "浊心斯卡蒂" ], [ @@ -269,10 +261,6 @@ "リィソ", "令" ], - [ - "リイン", - "令" - ], [ "シーン", "稀音" @@ -306,11 +294,11 @@ "巫恋" ], [ - ".*キノギ", + "ツキノギ", "月禾" ], [ - "ツキノキ", + ".*キノキ", "月禾" ], [ @@ -326,25 +314,17 @@ "地灵" ], [ - ".*ースス.*リ(ツ|ッ).*", + ".*ースス.*リッ", "地灵" ], [ "ロベルタ", "罗比菈塔" ], - [ - "ロベル夕", - "罗比菈塔" - ], [ "コベル夕", "罗比菈塔" ], - [ - "ディ.*カ", - "深海色" - ], [ "ディピ力", "深海色" @@ -358,11 +338,11 @@ "预备干员-术师" ], [ - "^ハイビスカス$", + "^ハイビスカス", "芙蓉" ], [ - "^イビスカス$", + "^イビスカス", "芙蓉" ], [ @@ -377,10 +357,6 @@ "^ガヴィル$", "嘉维尔" ], - [ - "^ガヴイル$", - "嘉维尔" - ], [ ".*フューマー", "调香师" @@ -390,7 +366,7 @@ "白面鸮" ], [ - "フ(ィ|イ)リオ(プ|ブ)シ.*", + "フィリオプシ", "白面鸮" ], [ @@ -410,7 +386,7 @@ "闪灵" ], [ - ".*(ャ|ヤ)イニ.*グ", + "ャイニ.*グ", "闪灵" ], [ @@ -433,24 +409,16 @@ "フォリニック", "亚叶" ], - [ - "フオリニック", - "亚叶" - ], [ "セイリュウ", "清流" ], - [ - "セイリユウ", - "清流" - ], [ "ウィスパーレイン", "絮雨" ], [ - ".*(ィ|イ)ス.*ーレイ.*", + ".*ィス.*ーレイ.*", "絮雨" ], [ @@ -458,7 +426,7 @@ "图耶" ], [ - ".*(ウ|ゥ)(イ|ィ)(エ|ェ)", + "ゥイエ", "图耶" ], [ @@ -502,7 +470,7 @@ "琴柳" ], [ - "^サガ$", + "^サガ", "嵯峨" ], [ @@ -510,7 +478,7 @@ "豆苗" ], [ - ".*ーンストーク", + "ーンストーク", "豆苗" ], [ @@ -522,11 +490,11 @@ "极境" ], [ - "バグパイ.*", + "バグパイ", "风笛" ], [ - "^リード$", + "^リード", "苇草" ], [ @@ -542,7 +510,7 @@ "推进之王" ], [ - "^テキサス$", + "^テキサス", "德克萨斯" ], [ @@ -553,16 +521,12 @@ "ヴィグナ", "红豆" ], - [ - "ヴイグナ", - "红豆" - ], [ "スカベンジャー", "清道夫" ], [ - ".*カベンジャー", + "カベンジャー", "清道夫" ], [ @@ -574,17 +538,13 @@ "翎羽" ], [ - ".*リ(ュ|ユ)ム", + "リュム", "翎羽" ], [ "バニラ", "香草" ], - [ - "パニラ", - "香草" - ], [ "フェン", "芬" @@ -598,17 +558,13 @@ "正义骑士号" ], [ - ".*(ャ|ヤ|セ)ステ(イ|ィ)スナイト", + ".*(ャ|セ)スティスナイト", "正义骑士号" ], [ "ファートゥース", "远牙" ], - [ - "ファートウース", - "远牙" - ], [ "遊龍チェン", "假日威龙陈" @@ -618,7 +574,7 @@ "熔泉" ], [ - ".*ギフォンス", + "ギフォンス", "熔泉" ], [ @@ -649,10 +605,6 @@ "アオスタ", "奥斯塔" ], - [ - "アオス夕", - "奥斯塔" - ], [ "エイ.*リル", "四月" @@ -670,7 +622,7 @@ "安哲拉" ], [ - "^ロサ$", + "ロサ", "早露" ], [ @@ -681,10 +633,6 @@ "シェーシャ", "慑砂" ], - [ - "シエーシャ", - "慑砂" - ], [ "グレースロート", "灰喉" @@ -697,14 +645,6 @@ "アンブリエル", "安比尔" ], - [ - "アンプリエル", - "安比尔" - ], - [ - "アァンブリエル", - "安比尔" - ], [ "^メイ$", "梅" @@ -726,7 +666,7 @@ "黑" ], [ - "(カ|力)タ.*ルト", + "カタパルト", "空爆" ], [ @@ -738,7 +678,7 @@ "守林人" ], [ - ".*(ァ|ア)イヤーウ(オ|ォ)ッ.*", + ".*ァイヤーウォッ.*", "守林人" ], [ @@ -778,7 +718,7 @@ "安德切尔" ], [ - "^クルース$", + "^クルース", "克洛丝" ], [ @@ -805,10 +745,6 @@ "アッシュロック", "灰毫" ], - [ - "アッシ.*ロック", - "灰毫" - ], [ "ヘビーレイ.*", "暴雨" @@ -834,7 +770,7 @@ "瑕光" ], [ - ".*レミシ(ャ|ヤ)イン", + ".*レミシャイン", "瑕光" ], [ @@ -846,7 +782,7 @@ "森蚺" ], [ - "1ーネクテス", + "ーネクテス", "森蚺" ], [ @@ -862,7 +798,7 @@ "年" ], [ - "ウン", + "^ウン$", "吽" ], [ @@ -870,7 +806,7 @@ "拜松" ], [ - "バイソ.*", + "バイソ", "拜松" ], [ @@ -890,15 +826,15 @@ "星熊" ], [ - "ヴァルカ.*", + "ヴァルカ", "火神" ], [ - "クロワッサ.*", + "クロワッサン", "可颂" ], [ - ".*ロワッサン", + "ロワッサン", "可颂" ], [ @@ -906,7 +842,7 @@ "雷蛇" ], [ - "^ニアール$", + "^ニアール", "临光" ], [ @@ -922,7 +858,7 @@ "角峰" ], [ - ".*ッターホルン", + "ッターホルン", "角峰" ], [ @@ -934,25 +870,17 @@ "卡缇" ], [ - "カーデイ", - "卡缇" - ], - [ - "ノイルホー.*", + "ノイルホーン", "黑角" ], [ - "イルホーン", + "イルホー", "黑角" ], [ "イェラ", "耶拉" ], - [ - "イエラ", - "耶拉" - ], [ "コロセラム", "蚀清" @@ -962,11 +890,7 @@ "布丁" ], [ - "ブリン", - "布丁" - ], - [ - "カーネリア.*", + "カーネリアン", "卡涅利安" ], [ @@ -974,7 +898,7 @@ "深靛" ], [ - "イ(ン|ソ)デ(ィ|イ)ゴ", + "イ(ン|ソ)ディゴ", "深靛" ], [ @@ -1070,17 +994,13 @@ "艾雅法拉" ], [ - ".*イヤフ(イ|ィ)ヤトラ", + "イヤフィヤトラ", "艾雅法拉" ], [ "イフリータ", "伊芙利特" ], - [ - "イフリー(夕|タ)", - "伊芙利特" - ], [ "スカイフレア", "天火" @@ -1089,10 +1009,6 @@ "ギターノ", "远山" ], - [ - "ギ夕ーノ", - "远山" - ], [ "ヘイズ", "夜烟" @@ -1102,21 +1018,17 @@ "史都华德" ], [ - "スチュワー.*", + "スチュワー", "史都华德" ], [ - "^ラヴァ$", + "^ラヴァ", "炎熔" ], [ "ドゥリン", "杜林" ], - [ - "ドウリン", - "杜林" - ], [ "ミヅキ", "水月" @@ -1134,7 +1046,7 @@ "歌蕾蒂娅" ], [ - ".*レイデ(イ|ィ)ーア", + ".*レイディーア", "歌蕾蒂娅" ], [ @@ -1142,7 +1054,7 @@ "霜华" ], [ - ".*[F=]r[Oo][Ss]t", + ".*[F=]rost", "霜华" ], [ @@ -1153,10 +1065,6 @@ "カフカ", "卡夫卡" ], - [ - "(カ|力)フカ", - "卡夫卡" - ], [ "ロビン", "罗宾" @@ -1173,10 +1081,6 @@ "ウィーディ", "温蒂" ], - [ - "ウィーデイ", - "温蒂" - ], [ "ファソトム", "傀影" @@ -1190,11 +1094,11 @@ "阿" ], [ - "スノーズソト", + "スノーズント", "雪雉" ], [ - "スノーズント", + "スノーズソト", "雪雉" ], [ @@ -1202,15 +1106,15 @@ "槐琥" ], [ - "(ワ|フ)イフー", + "フイフー", "槐琥" ], [ - "イーサソ", + "イーサン", "伊桑" ], [ - "イーサン", + "イーサソ", "伊桑" ], [ @@ -1253,10 +1157,6 @@ "ロープ", "暗索" ], - [ - "ローブ", - "暗索" - ], [ "コープ", "暗索" @@ -1289,14 +1189,6 @@ "フィアメッタ", "菲亚梅塔" ], - [ - "フイアメッタ", - "菲亚梅塔" - ], - [ - "フイアメッ夕", - "菲亚梅塔" - ], [ "耐水蝕コーティング装置", "防水蚀镀膜装置" @@ -1349,10 +1241,6 @@ "ブラックナイト", "夜半" ], - [ - "プラックナイト", - "夜半" - ], [ "クエルクス", "夏栎" @@ -1413,10 +1301,6 @@ "アイリーニ", "艾丽妮" ], - [ - "アイリーニ", - "艾丽妮" - ], [ "「クリップ」", "\"夹子\"" @@ -1470,7 +1354,7 @@ "海蒂" ], [ - "ハイデ.*", + "ハイデ", "海蒂" ], [ @@ -1513,10 +1397,6 @@ "帰溟スペクター", "归溟幽灵鲨" ], - [ - ".*溟ス(ベ|ペ)クター", - "归溟幽灵鲨" - ], [ "ルーメン", "流明" @@ -1710,7 +1590,7 @@ "濯尘芙蓉" ], [ - ".+ハイ(ビ|ピ)スカス", + ".+ハイビスカス", "濯尘芙蓉" ], [ @@ -1785,16 +1665,12 @@ "パゼオンカ", "鸿雪" ], - [ - "パゼオン力", - "鸿雪" - ], [ "百錬ガヴィル", "百炼嘉维尔" ], [ - ".*錬ガヴ(イ|ィ)ル", + ".*錬ガヴィル", "百炼嘉维尔" ], [ @@ -1826,7 +1702,7 @@ "荧光孢子" ], [ - "実体プログラム", + "実体プログラム$", "实体程式" ], [ From f400656af7730b76678688b7e64f4b32e97b2b48 Mon Sep 17 00:00:00 2001 From: xjdx Date: Mon, 27 Feb 2023 16:14:41 +0800 Subject: [PATCH 078/100] fix: #3816 --- src/MaaCore/Task/Infrast/InfrastDormTask.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/MaaCore/Task/Infrast/InfrastDormTask.cpp b/src/MaaCore/Task/Infrast/InfrastDormTask.cpp index dc7afbb16a..78d1f0e606 100644 --- a/src/MaaCore/Task/Infrast/InfrastDormTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastDormTask.cpp @@ -250,17 +250,17 @@ bool asst::InfrastDormTask::opers_choose(asst::infrast::CustomRoomConfig const& } } - if (m_next_step == NextStep::RestDone || m_next_step == NextStep::Trust) { - ProcessTask(*this, { "InfrastSortByTrustButtonClickAgain" }).run(); - ProcessTask(*this, { "InfrastSortByTrustButtonClickAgain" }).run(); - } - else { - ProcessTask(*this, { "InfrastOperListTabMoodDoubleClick" }).run(); - sleep(200); - } + ProcessTask(*this, { "InfrastOperListTabMoodClick", "InfrastOperListTabWorkStatusUnClicked" }).run(); if (swipe_times) swipe_to_the_left_of_operlist(swipe_times + 1); swipe_times = 0; - if (!select_opers_review(origin_room_config, num_of_selected)) { + bool review = select_opers_review(origin_room_config, num_of_selected); + if (m_next_step == NextStep::RestDone || m_next_step == NextStep::Trust) { + click_sort_by_trust_button(); + } + else { + ProcessTask(*this, { "InfrastOperListTabMoodClick" }).run(); + } + if (!review) { current_room_config() = origin_room_config; return false; } From 807a5c992249af506218971fc367a51548760dc3 Mon Sep 17 00:00:00 2001 From: cenfusheng <52312717+cenfusheng@users.noreply.github.com> Date: Tue, 28 Feb 2023 14:29:59 +0800 Subject: [PATCH 079/100] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=87=8D=E5=B2=B3?= =?UTF-8?q?=E7=9A=84=E8=AF=86=E5=88=AB=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复重岳识别为重岳-的错误,按照令的经验,应还有可能识别为重岳——,一并修复。 皮肤怎么那么多疑似白色横线的地方啊【指指点点】 --- resource/tasks.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/resource/tasks.json b/resource/tasks.json index 3a063e9653..e2210dd551 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -2132,6 +2132,10 @@ [ ".*默德克萨斯", "缄默德克萨斯" + ], + [ + "^重岳.+", + "重岳" ] ] }, From cb47a1bf3155d6179872c15fab22074f26b0d3ff Mon Sep 17 00:00:00 2001 From: uye <2396806385@qq.com> Date: Tue, 28 Feb 2023 21:34:50 +0800 Subject: [PATCH 080/100] =?UTF-8?q?chore:=20=E4=BF=AE=E6=94=B9=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E6=96=87=E4=BB=B6=E4=B8=AD=E6=8D=A2=E8=A1=8C=E7=9A=84?= =?UTF-8?q?=E5=86=99=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaWpfGui/Res/Localizations/en-us.xaml | 19 ++++++-------- src/MaaWpfGui/Res/Localizations/ja-jp.xaml | 19 ++++++-------- src/MaaWpfGui/Res/Localizations/ko-kr.xaml | 18 ++++++-------- src/MaaWpfGui/Res/Localizations/zh-cn.xaml | 29 ++++++++++------------ src/MaaWpfGui/Res/Localizations/zh-tw.xaml | 19 ++++++-------- 5 files changed, 44 insertions(+), 60 deletions(-) diff --git a/src/MaaWpfGui/Res/Localizations/en-us.xaml b/src/MaaWpfGui/Res/Localizations/en-us.xaml index f35fa5ab79..61351969e4 100644 --- a/src/MaaWpfGui/Res/Localizations/en-us.xaml +++ b/src/MaaWpfGui/Res/Localizations/en-us.xaml @@ -376,17 +376,14 @@ Video Link - Tips: - -1. Please use this function only when "Start" is visible in game. - -2. You need turn off the "Auto squad" if using friend support unit, then start with your support unit selected. - -3. For Paradox Simulation, you need to turn off "Auto squad" and select the skill before, then start in game "start" screen. - -4. For SSS, There are two built-in files under the resource/copilot folder. -Please start on the "Start Deployment" screen after manual formation (can be used with "Loop times") - + + Tips:\n\n + 1. Please use this function only when "Start" is visible in game.\n\n + 2. You need turn off the "Auto squad" if using friend support unit, then start with your support unit selected.\n\n + 3. For Paradox Simulation, you need to turn off "Auto squad" and select the skill before, then start in game "start" screen.\n\n + 4. For SSS, There are two built-in files under the resource/copilot folder.\n + Please start on the "Start Deployment" screen after manual formation (can be used with "Loop times") + Failed to read file! No corresponding file found! diff --git a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml index 98761d1fce..e4a8dd42b9 100644 --- a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml +++ b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml @@ -388,17 +388,14 @@ - ヒント: - -1. 「行動開始」ボタンのあるインターフェースでこの機能を使用してください; - -2. サポートを使うときは、「自動編成」をオフにし、手動でオペレーターを選択してから始めましょう; - -3. 逆理演算の場合は、「自動編成」をオフにする必要があり、スキルを選択した後、「演算開始」ボタンのインターフェースから開始する必要があります; - -4. For SSS, There are two built-in files under the resource/copilot folder. -Please start on the "Start Deployment" screen after manual formation (can be used with "Loop times") - + + ヒント:\n\n + 1. 「行動開始」ボタンのあるインターフェースでこの機能を使用してください;\n\n + 2. サポートを使うときは、「自動編成」をオフにし、手動でオペレーターを選択してから始めましょう;\n\n + 3. 逆理演算の場合は、「自動編成」をオフにする必要があり、スキルを選択した後、「演算開始」ボタンのインターフェースから開始する必要があります;\n\n + 4. For SSS, There are two built-in files under the resource/copilot folder.\n + Please start on the "Start Deployment" screen after manual formation (can be used with "Loop times") + ファイルの読み取りに失敗しました! 対応する攻略ファイルが見つかりません! diff --git a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml index 90d5011643..2cd129797c 100644 --- a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml +++ b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml @@ -368,17 +368,13 @@ - 팁: - -1. '작전 개시' 버튼이 있는 화면에서 이 기능을 사용하세요. - -2. 친구의 오퍼레이터를 사용하는 경우에는 '자동 편성'을 선택하지 말고 수동으로 오퍼레이터를 선택하고 시작하세요. - -3. 패러독스 시뮬레이션의 경우에는 '자동 편성'을 선택하지 말고, 스킬을 선택하고 '시뮬레이션 시작' 버튼이 있는 화면에 시작하세요. - -4. For SSS, There are two built-in files under the resource/copilot folder. -Please start on the "Start Deployment" screen after manual formation (can be used with "Loop times") - + + 팁:\n\n1. '작전 개시' 버튼이 있는 화면에서 이 기능을 사용하세요.\n\n + 2. 친구의 오퍼레이터를 사용하는 경우에는 '자동 편성'을 선택하지 말고 수동으로 오퍼레이터를 선택하고 시작하세요.\n\n + 3. 패러독스 시뮬레이션의 경우에는 '자동 편성'을 선택하지 말고, 스킬을 선택하고 '시뮬레이션 시작' 버튼이 있는 화면에 시작하세요.\n\n + 4. For SSS, There are two built-in files under the resource/copilot folder.\n + Please start on the "Start Deployment" screen after manual formation (can be used with "Loop times") + 파일을 읽지 못했습니다! 해당 파일을 찾을 수 없습니다! diff --git a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml index b8363169a7..158dd4010a 100644 --- a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml +++ b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml @@ -378,17 +378,14 @@ 视频链接 - 小提示: - -1. 请在有“开始行动”按钮的界面再使用本功能; - -2. 使用好友助战可以关闭“自动编队”,手动选择干员后开始; - -3. 模拟悖论需要关闭“自动编队”,并选好技能后处于“开始模拟”按钮的界面再开始; - -4. 保全派驻 在 resource/copilot 文件夹下内置了两份作业。 -请手动编队后在“开始部署”界面开始(可配合“循环次数”使用) - + + 小提示:\n\n + 1. 请在有“开始行动”按钮的界面再使用本功能;\n\n + 2. 使用好友助战可以关闭“自动编队”,手动选择干员后开始;\n\n + 3. 模拟悖论需要关闭“自动编队”,并选好技能后处于“开始模拟”按钮的界面再开始;\n\n + 4. 保全派驻 在 resource/copilot 文件夹下内置了两份作业。\n + 请手动编队后在“开始部署”界面开始(可配合“循环次数”使用) + 读取文件失败! 未找到对应作业! @@ -476,11 +473,11 @@ 开始编队 选择干员: 当前步骤:{0} {1} - 不支持的关卡,请更新 MAA 软件版本! -不支持的关卡,请更新 MAA 软件版本! -不支持的关卡,请更新 MAA 软件版本! - -若提示已是最新版本,请尝试检查开发版或内测版。 + + 不支持的关卡,请更新 MAA 软件版本!\n + 不支持的关卡,请更新 MAA 软件版本!\n + 不支持的关卡,请更新 MAA 软件版本!\n\n + 若提示已是最新版本,请尝试检查开发版或内测版。 识别结果: 连接失败 diff --git a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml index e10c35e3a2..6d95ffc4e9 100644 --- a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml +++ b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml @@ -321,17 +321,14 @@ 影片連結 - 小提示: - -1. 請在有“開始行動”按鈕的介面再使用本功能; - -2. 使用好友助戰可以關閉“自動編隊”,手動選擇幹員後開始; - -3. 模擬悖論需要關閉“自動編隊”,並選好技能後處於“開始模擬”按鈕的介面再開始; - -4. 保全派駐 在 resource/copilot 文件夾下內置了兩份作業。 -請手動編隊後在“開始部署”界面開始(可配合“循環次數”使用) - + + 小提示:\n\n + 1. 請在有“開始行動”按鈕的介面再使用本功能;\n\n + 2. 使用好友助戰可以關閉“自動編隊”,手動選擇幹員後開始;\n\n + 3. 模擬悖論需要關閉“自動編隊”,並選好技能後處於“開始模擬”按鈕的介面再開始;\n\n + 4. 保全派駐 在 resource/copilot 文件夾下內置了兩份作業。\n + 請手動編隊後在“開始部署”界面開始(可配合“循環次數”使用) + 讀取檔案失敗! 未找到對應作業! From 11d1060cadc2abc5afcd7438e89cf5c917c93e58 Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Tue, 28 Feb 2023 12:05:44 -0600 Subject: [PATCH 081/100] fix: fix replace_full not acting correctly on chars_name --- src/MaaCore/Config/TaskData.cpp | 4 ++-- src/MaaCore/Task/BattleHelper.cpp | 3 ++- src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp | 12 ++++++------ src/MaaCore/Task/Infrast/InfrastProductionTask.cpp | 6 ++++-- .../Task/Miscellaneous/BattleFormationTask.cpp | 6 +++--- src/MaaCore/Vision/OcrImageAnalyzer.cpp | 6 +++--- src/MaaCore/Vision/OcrImageAnalyzer.h | 2 +- .../Roguelike/RoguelikeRecruitImageAnalyzer.cpp | 3 ++- .../RoguelikeSkillSelectionImageAnalyzer.cpp | 3 ++- 9 files changed, 25 insertions(+), 20 deletions(-) diff --git a/src/MaaCore/Config/TaskData.cpp b/src/MaaCore/Config/TaskData.cpp index c2a10a8b48..863bab9394 100644 --- a/src/MaaCore/Config/TaskData.cpp +++ b/src/MaaCore/Config/TaskData.cpp @@ -899,7 +899,7 @@ bool asst::TaskData::syntax_check(const std::string& task_name, const json::valu { "action", "algorithm", "baseTask", "cache", "exceededNext", "fullMatch", "hash", "isAscii", "maskRange", "maxTimes", "next", "ocrReplace", - "onErrorNext", "postDelay", "preDelay", "rectMove", "reduceOtherTimes", "roi", + "onErrorNext", "postDelay", "preDelay", "rectMove", "reduceOtherTimes", "replaceFull", "roi", "specialParams", "sub", "subErrorIgnored", "templThreshold", "template", "text", "threshold", "withoutDet", } }, @@ -914,7 +914,7 @@ bool asst::TaskData::syntax_check(const std::string& task_name, const json::valu { "action", "algorithm", "baseTask", "cache", "exceededNext", "fullMatch", "isAscii", "maxTimes", "next", "ocrReplace", - "onErrorNext", "postDelay", "preDelay", "rectMove", "reduceOtherTimes", + "onErrorNext", "postDelay", "preDelay", "rectMove", "reduceOtherTimes", "replaceFull", "roi", "sub", "subErrorIgnored", "text", "withoutDet", "specialParams" } }, diff --git a/src/MaaCore/Task/BattleHelper.cpp b/src/MaaCore/Task/BattleHelper.cpp index 206278f09a..154b2b73e8 100644 --- a/src/MaaCore/Task/BattleHelper.cpp +++ b/src/MaaCore/Task/BattleHelper.cpp @@ -191,7 +191,8 @@ bool asst::BattleHelper::update_deployment(bool init, const cv::Mat& reusable) auto analyze = [&](OcrImageAnalyzer& name_analyzer) { name_analyzer.set_image(name_image); name_analyzer.set_task_info(oper_name_ocr_task_name()); - name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map); + name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map, + Task.get("CharsNameOcrReplace")->replace_full); if (!name_analyzer.analyze()) { return std::string(); } diff --git a/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp b/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp index 2be908161e..3552290b79 100644 --- a/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp @@ -276,10 +276,10 @@ bool asst::InfrastAbstractTask::select_opers_review(infrast::CustomRoomConfig co return false; } - const auto& ocr_replace = Task.get("CharsNameOcrReplace")->replace_map; + const auto& ocr_replace = Task.get("CharsNameOcrReplace"); for (const auto& oper : oper_analyzer_res) { OcrWithPreprocessImageAnalyzer name_analyzer; - name_analyzer.set_replace(ocr_replace); + name_analyzer.set_replace(ocr_replace->replace_map, ocr_replace->replace_full); name_analyzer.set_image(oper.name_img); name_analyzer.set_expansion(0); if (!name_analyzer.analyze()) { @@ -332,10 +332,10 @@ bool asst::InfrastAbstractTask::select_custom_opers(std::vector& pa oper_analyzer.sort_by_loc(); partial_result.clear(); - const auto& ocr_replace = Task.get("CharsNameOcrReplace")->replace_map; + const auto& ocr_replace = Task.get("CharsNameOcrReplace"); for (const auto& oper : oper_analyzer.get_result()) { OcrWithPreprocessImageAnalyzer name_analyzer; - name_analyzer.set_replace(ocr_replace); + name_analyzer.set_replace(ocr_replace->replace_map, ocr_replace->replace_full); name_analyzer.set_image(oper.name_img); name_analyzer.set_expansion(0); if (!name_analyzer.analyze()) { @@ -387,12 +387,12 @@ void asst::InfrastAbstractTask::order_opers_selection(const std::vector("CharsNameOcrReplace")->replace_map; + const auto& ocr_replace = Task.get("CharsNameOcrReplace"); std::vector page_result; for (const auto& oper : oper_analyzer.get_result()) { OcrWithPreprocessImageAnalyzer name_analyzer; - name_analyzer.set_replace(ocr_replace); + name_analyzer.set_replace(ocr_replace->replace_map, ocr_replace->replace_full); name_analyzer.set_image(oper.name_img); name_analyzer.set_expansion(0); if (!name_analyzer.analyze()) { diff --git a/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp b/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp index a5393a0a54..97e9b23525 100644 --- a/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp @@ -447,7 +447,8 @@ bool asst::InfrastProductionTask::optimal_calc() } else { OcrWithPreprocessImageAnalyzer name_analyzer(find_iter->name_img); - name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map); + name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map, + Task.get("CharsNameOcrReplace")->replace_full); Log.trace("Analyze name filter"); if (!name_analyzer.analyze()) { continue; @@ -574,7 +575,8 @@ bool asst::InfrastProductionTask::opers_choose() } else { OcrWithPreprocessImageAnalyzer name_analyzer(lhs.name_img); - name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map); + name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map, + Task.get("CharsNameOcrReplace")->replace_full); Log.trace("Analyze name filter"); if (!name_analyzer.analyze()) { return false; diff --git a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp index ef9376c90f..c68ab6b29f 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp @@ -129,16 +129,16 @@ std::vector asst::BattleFormationTask::analyzer_opers() { auto formation_task_ptr = Task.get("BattleQuickFormationOCR"); auto image = ctrler()->get_image(); - auto& ocr_replace = Task.get("CharsNameOcrReplace")->replace_map; + auto& ocr_replace = Task.get("CharsNameOcrReplace"); OcrWithFlagTemplImageAnalyzer name_analyzer(image); name_analyzer.set_task_info("BattleQuickFormation-OperNameFlag", "BattleQuickFormationOCR"); - name_analyzer.set_replace(ocr_replace); + name_analyzer.set_replace(ocr_replace->replace_map, ocr_replace->replace_full); name_analyzer.analyze(); OcrWithFlagTemplImageAnalyzer special_focus_analyzer(image); special_focus_analyzer.set_task_info("BattleQuickFormation-OperNameFlag-SpecialFocus", "BattleQuickFormationOCR"); - special_focus_analyzer.set_replace(ocr_replace); + special_focus_analyzer.set_replace(ocr_replace->replace_map, ocr_replace->replace_full); special_focus_analyzer.analyze(); auto opers_result = name_analyzer.get_result(); diff --git a/src/MaaCore/Vision/OcrImageAnalyzer.cpp b/src/MaaCore/Vision/OcrImageAnalyzer.cpp index 00cebbec4f..5a4f67adb8 100644 --- a/src/MaaCore/Vision/OcrImageAnalyzer.cpp +++ b/src/MaaCore/Vision/OcrImageAnalyzer.cpp @@ -116,7 +116,7 @@ void asst::OcrImageAnalyzer::set_required(std::vector required) noe m_required = std::move(required); } -void asst::OcrImageAnalyzer::set_replace(const std::unordered_map& replace) noexcept +void asst::OcrImageAnalyzer::set_replace(const std::unordered_map& replace, bool replace_full) noexcept { m_replace = {}; for (auto&& [key, val] : replace) { @@ -124,16 +124,16 @@ void asst::OcrImageAnalyzer::set_replace(const std::unordered_map required) noexcept; - void set_replace(const std::unordered_map& replace) noexcept; + void set_replace(const std::unordered_map& replace, bool replace_full = false) noexcept; virtual void set_task_info(std::shared_ptr task_ptr); virtual void set_task_info(const std::string& task_name); diff --git a/src/MaaCore/Vision/Roguelike/RoguelikeRecruitImageAnalyzer.cpp b/src/MaaCore/Vision/Roguelike/RoguelikeRecruitImageAnalyzer.cpp index d299ca5d2c..ccb6cf68af 100644 --- a/src/MaaCore/Vision/Roguelike/RoguelikeRecruitImageAnalyzer.cpp +++ b/src/MaaCore/Vision/Roguelike/RoguelikeRecruitImageAnalyzer.cpp @@ -12,7 +12,8 @@ bool asst::RoguelikeRecruitImageAnalyzer::analyze() OcrWithFlagTemplImageAnalyzer analyzer(m_image); analyzer.set_task_info("RoguelikeRecruitOcrFlag", "RoguelikeRecruitOcr"); - analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map); + analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map, + Task.get("CharsNameOcrReplace")->replace_full); analyzer.set_threshold(Task.get("RoguelikeRecruitOcr")->specific_rect.x); if (!analyzer.analyze()) { diff --git a/src/MaaCore/Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.cpp b/src/MaaCore/Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.cpp index d495ef75fb..906463ea1e 100644 --- a/src/MaaCore/Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.cpp +++ b/src/MaaCore/Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.cpp @@ -54,7 +54,8 @@ std::string asst::RoguelikeSkillSelectionImageAnalyzer::name_analyze(const Rect& analyzer.set_task_info(name_task_ptr); analyzer.set_image(m_image); analyzer.set_roi(roi.move(name_task_ptr->roi)); - analyzer.set_replace(std::dynamic_pointer_cast(Task.get("CharsNameOcrReplace"))->replace_map); + analyzer.set_replace(std::dynamic_pointer_cast(Task.get("CharsNameOcrReplace"))->replace_map, + std::dynamic_pointer_cast(Task.get("CharsNameOcrReplace"))->replace_full); if (!analyzer.analyze()) { return {}; From cfa5f65509badb19da858cca0bcea038e74d0194 Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Tue, 28 Feb 2023 12:25:15 -0600 Subject: [PATCH 082/100] fix: fix build error --- src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp index c68ab6b29f..a5cb23a33e 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp @@ -129,7 +129,7 @@ std::vector asst::BattleFormationTask::analyzer_opers() { auto formation_task_ptr = Task.get("BattleQuickFormationOCR"); auto image = ctrler()->get_image(); - auto& ocr_replace = Task.get("CharsNameOcrReplace"); + const auto& ocr_replace = Task.get("CharsNameOcrReplace"); OcrWithFlagTemplImageAnalyzer name_analyzer(image); name_analyzer.set_task_info("BattleQuickFormation-OperNameFlag", "BattleQuickFormationOCR"); From e0548229a034fdd7eeb8b4bf93150c27397f3dfe Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Tue, 28 Feb 2023 20:45:05 -0600 Subject: [PATCH 083/100] fix: minor update of JP json --- resource/global/YoStarJP/resource/tasks.json | 32 +++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/resource/global/YoStarJP/resource/tasks.json b/resource/global/YoStarJP/resource/tasks.json index ca50536c52..95345b2cfc 100644 --- a/resource/global/YoStarJP/resource/tasks.json +++ b/resource/global/YoStarJP/resource/tasks.json @@ -18,7 +18,11 @@ "银灰" ], [ - ".*ル.*ーアッシュ", + "ル.*ーアッ.*シュ", + "银灰" + ], + [ + "レ.*ーアッ.*シュ", "银灰" ], [ @@ -277,6 +281,10 @@ "マゼラン", "麦哲伦" ], + [ + "マセラン", + "麦哲伦" + ], [ "プラマニクス", "初雪" @@ -545,6 +553,10 @@ "バニラ", "香草" ], + [ + "バエラ", + "香草" + ], [ "フェン", "芬" @@ -589,6 +601,10 @@ "アルケット", "空弦" ], + [ + "アルケッ", + "空弦" + ], [ ".*インコーン", "松果" @@ -917,6 +933,10 @@ "^ツー$", "夕" ], + [ + "^ンー$", + "夕" + ], [ "炎獄ラヴァ", "炎狱炎熔" @@ -1046,7 +1066,7 @@ "歌蕾蒂娅" ], [ - ".*レイディーア", + ".*レイディ.*ーア", "歌蕾蒂娅" ], [ @@ -1054,7 +1074,7 @@ "霜华" ], [ - ".*[F=]rost", + ".*[F=_]rost", "霜华" ], [ @@ -1386,7 +1406,7 @@ "澄闪" ], [ - ".ールデングロー", + "ールデングロー", "澄闪" ], [ @@ -1397,6 +1417,10 @@ "帰溟スペクター", "归溟幽灵鲨" ], + [ + "溟スペクター", + "归溟幽灵鲨" + ], [ "ルーメン", "流明" From 618bebe7f79f40f893837bd42f3e06b2c518071b Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Tue, 28 Feb 2023 23:40:43 -0600 Subject: [PATCH 084/100] fix: JP IS specific stage stuck enlarge roi of dps enter should fix #3842 #3714 --- resource/tasks.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resource/tasks.json b/resource/tasks.json index e2210dd551..b7f266b06f 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -7874,7 +7874,7 @@ 1035, 370, 226, - 225 + 300 ] }, "Roguelike@StageEnterBattle": { From b39600bc067d8d7dbafaae2e3033bb43b963893b Mon Sep 17 00:00:00 2001 From: uye <2396806385@qq.com> Date: Wed, 1 Mar 2023 14:02:39 +0800 Subject: [PATCH 085/100] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=E6=9C=80=E5=B0=8F=E5=8C=96=E6=97=B6=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E9=80=9A=E8=BF=87=E6=89=98=E7=9B=98=E4=BF=AE=E6=94=B9=E8=AF=AD?= =?UTF-8?q?=E8=A8=80=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaWpfGui/Main/SettingsViewModel.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/MaaWpfGui/Main/SettingsViewModel.cs b/src/MaaWpfGui/Main/SettingsViewModel.cs index 2fd08e5de1..26c879ebcb 100644 --- a/src/MaaWpfGui/Main/SettingsViewModel.cs +++ b/src/MaaWpfGui/Main/SettingsViewModel.cs @@ -2426,6 +2426,10 @@ namespace MaaWpfGui System.Windows.Forms.MessageBoxManager.Yes = FormatText("{0}({1})", "Ok"); System.Windows.Forms.MessageBoxManager.No = FormatText("{0}({1})", "ManualRestart"); System.Windows.Forms.MessageBoxManager.Register(); + Window mainWindow = Application.Current.MainWindow; + mainWindow.Show(); + mainWindow.WindowState = mainWindow.WindowState = WindowState.Normal; + mainWindow.Activate(); var result = MessageBox.Show( FormatText("{0}\n{1}", "LanguageChangedTip"), FormatText("{0}({1})", "Tip"), From f85a09175efb7b987058c8a626baa1e7c8eeea51 Mon Sep 17 00:00:00 2001 From: uye <2396806385@qq.com> Date: Wed, 1 Mar 2023 14:38:20 +0800 Subject: [PATCH 086/100] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=87=8D?= =?UTF-8?q?=E5=90=AF=E4=B8=8D=E4=BF=9D=E5=AD=98=E7=AA=97=E5=8F=A3=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ~糊屎~ --- src/MaaWpfGui/Main/SettingsViewModel.cs | 10 ++++------ src/MaaWpfGui/Main/TaskQueueViewModel.cs | 6 ++++++ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/MaaWpfGui/Main/SettingsViewModel.cs b/src/MaaWpfGui/Main/SettingsViewModel.cs index 26c879ebcb..8ef7c70739 100644 --- a/src/MaaWpfGui/Main/SettingsViewModel.cs +++ b/src/MaaWpfGui/Main/SettingsViewModel.cs @@ -134,11 +134,6 @@ namespace MaaWpfGui _asstProxy = _container.Get(); _versionUpdateViewModel = _container.Get(); - if (LoadGUIParameters && SaveGUIParametersOnClosing) - { - Application.Current.MainWindow.Closing += SaveGUIParameters; - } - var addressListJson = ViewStatusStorage.Get("Connect.AddressHistory", string.Empty); if (!string.IsNullOrEmpty(addressListJson)) { @@ -2186,6 +2181,7 @@ namespace MaaWpfGui if (SaveGUIParametersOnClosing) { Application.Current.MainWindow.Closing += SaveGUIParameters; + Application.Current.Exit += SaveGUIParameters; } else { @@ -2210,15 +2206,17 @@ namespace MaaWpfGui if (value) { Application.Current.MainWindow.Closing += SaveGUIParameters; + Application.Current.Exit += SaveGUIParameters; } else { Application.Current.MainWindow.Closing -= SaveGUIParameters; + Application.Current.Exit -= SaveGUIParameters; } } } - private void SaveGUIParameters(object sender, EventArgs e) + public void SaveGUIParameters(object sender, EventArgs e) { SaveGUIParameters(); } diff --git a/src/MaaWpfGui/Main/TaskQueueViewModel.cs b/src/MaaWpfGui/Main/TaskQueueViewModel.cs index a3c9d284c9..32dcdeffad 100644 --- a/src/MaaWpfGui/Main/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/Main/TaskQueueViewModel.cs @@ -125,6 +125,12 @@ namespace MaaWpfGui LogItemViewModels = new ObservableCollection(); InitializeItems(); InitTimer(); + + if (_settingsViewModel.LoadGUIParameters && _settingsViewModel.SaveGUIParametersOnClosing) + { + Application.Current.MainWindow.Closing += _settingsViewModel.SaveGUIParameters; + Application.Current.Exit += _settingsViewModel.SaveGUIParameters; + } } /* From 4e0a0ebd0c722ce30a19448288f2d862ac8ac317 Mon Sep 17 00:00:00 2001 From: uye <2396806385@qq.com> Date: Wed, 1 Mar 2023 14:49:27 +0800 Subject: [PATCH 087/100] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DApplication.Cu?= =?UTF-8?q?rrent.Shutdown=E6=96=B9=E6=B3=95=E5=85=B3=E9=97=AD=E6=97=B6?= =?UTF-8?q?=E4=B8=8D=E4=BF=9D=E5=AD=98=E7=AA=97=E5=8F=A3=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaWpfGui/Main/SettingsViewModel.cs | 6 +++--- src/MaaWpfGui/Main/TaskQueueViewModel.cs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/MaaWpfGui/Main/SettingsViewModel.cs b/src/MaaWpfGui/Main/SettingsViewModel.cs index 8ef7c70739..afafbd3245 100644 --- a/src/MaaWpfGui/Main/SettingsViewModel.cs +++ b/src/MaaWpfGui/Main/SettingsViewModel.cs @@ -2181,7 +2181,7 @@ namespace MaaWpfGui if (SaveGUIParametersOnClosing) { Application.Current.MainWindow.Closing += SaveGUIParameters; - Application.Current.Exit += SaveGUIParameters; + Application.Current.MainWindow.Closed += SaveGUIParameters; } else { @@ -2206,12 +2206,12 @@ namespace MaaWpfGui if (value) { Application.Current.MainWindow.Closing += SaveGUIParameters; - Application.Current.Exit += SaveGUIParameters; + Application.Current.MainWindow.Closed += SaveGUIParameters; } else { Application.Current.MainWindow.Closing -= SaveGUIParameters; - Application.Current.Exit -= SaveGUIParameters; + Application.Current.MainWindow.Closed -= SaveGUIParameters; } } } diff --git a/src/MaaWpfGui/Main/TaskQueueViewModel.cs b/src/MaaWpfGui/Main/TaskQueueViewModel.cs index 32dcdeffad..9d25bb07db 100644 --- a/src/MaaWpfGui/Main/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/Main/TaskQueueViewModel.cs @@ -129,7 +129,7 @@ namespace MaaWpfGui if (_settingsViewModel.LoadGUIParameters && _settingsViewModel.SaveGUIParametersOnClosing) { Application.Current.MainWindow.Closing += _settingsViewModel.SaveGUIParameters; - Application.Current.Exit += _settingsViewModel.SaveGUIParameters; + Application.Current.MainWindow.Closed += _settingsViewModel.SaveGUIParameters; } } From 359a03e408bc1fc3a8972312b89f7f3be11d0522 Mon Sep 17 00:00:00 2001 From: uye <2396806385@qq.com> Date: Wed, 1 Mar 2023 14:55:09 +0800 Subject: [PATCH 088/100] =?UTF-8?q?chore:=20=E5=88=A0=E9=99=A4=E5=A4=9A?= =?UTF-8?q?=E4=BD=99=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaWpfGui/Main/SettingsViewModel.cs | 3 --- src/MaaWpfGui/Main/TaskQueueViewModel.cs | 1 - 2 files changed, 4 deletions(-) diff --git a/src/MaaWpfGui/Main/SettingsViewModel.cs b/src/MaaWpfGui/Main/SettingsViewModel.cs index afafbd3245..d918eeb798 100644 --- a/src/MaaWpfGui/Main/SettingsViewModel.cs +++ b/src/MaaWpfGui/Main/SettingsViewModel.cs @@ -2181,7 +2181,6 @@ namespace MaaWpfGui if (SaveGUIParametersOnClosing) { Application.Current.MainWindow.Closing += SaveGUIParameters; - Application.Current.MainWindow.Closed += SaveGUIParameters; } else { @@ -2206,12 +2205,10 @@ namespace MaaWpfGui if (value) { Application.Current.MainWindow.Closing += SaveGUIParameters; - Application.Current.MainWindow.Closed += SaveGUIParameters; } else { Application.Current.MainWindow.Closing -= SaveGUIParameters; - Application.Current.MainWindow.Closed -= SaveGUIParameters; } } } diff --git a/src/MaaWpfGui/Main/TaskQueueViewModel.cs b/src/MaaWpfGui/Main/TaskQueueViewModel.cs index 9d25bb07db..641a917f71 100644 --- a/src/MaaWpfGui/Main/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/Main/TaskQueueViewModel.cs @@ -129,7 +129,6 @@ namespace MaaWpfGui if (_settingsViewModel.LoadGUIParameters && _settingsViewModel.SaveGUIParametersOnClosing) { Application.Current.MainWindow.Closing += _settingsViewModel.SaveGUIParameters; - Application.Current.MainWindow.Closed += _settingsViewModel.SaveGUIParameters; } } From 981dadf6402d9b84290c049b92a28ff03c62a343 Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Wed, 1 Mar 2023 17:02:30 -0600 Subject: [PATCH 089/100] chore: add a coordinate tool --- tools/ImageCoordinate/coordinate.py | 135 ++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 tools/ImageCoordinate/coordinate.py diff --git a/tools/ImageCoordinate/coordinate.py b/tools/ImageCoordinate/coordinate.py new file mode 100644 index 0000000000..a6dcc6645f --- /dev/null +++ b/tools/ImageCoordinate/coordinate.py @@ -0,0 +1,135 @@ +from PIL import Image, ImageTk +import tkinter as tk +import argparse + +img = "" + +class ImageRectSelector: + def __init__(self, image_path): + # Load the image using PIL + self.image = Image.open(image_path) + + # Create a Tkinter window + self.root = tk.Tk() + + # Create a Tkinter-compatible photo image, which can be used with the Canvas widget + self.tk_image = ImageTk.PhotoImage(self.image) + + # Create a Canvas widget and display the photo image on it + self.canvas = tk.Canvas( + self.root, width=self.image.width, height=self.image.height) + self.canvas.pack() + self.canvas_image = self.canvas.create_image( + 0, 0, anchor=tk.NW, image=self.tk_image) + + # Bind the mouse event handlers to the Canvas widget + self.canvas.bind("", self.on_mouse_down) + self.canvas.bind("", self.on_mouse_drag) + self.canvas.bind("", self.on_mouse_up) + + # Bind the keyboard event handler to the root window + self.root.bind("", self.on_key) + + self.is_quit = False + + # Initialize the rectangle coordinates + self.rect_start_x, self.rect_start_y = None, None + self.rect_end_x, self.rect_end_y = None, None + + def draw_rectangle(self): + self.canvas.create_rectangle(self.rect_start_x, self.rect_start_y, self.rect_end_x, self.rect_end_y, + outline='red', tags="rect") + + def on_mouse_down(self, event): + self.rect_start_x, self.rect_start_y = event.x, event.y + + def on_mouse_drag(self, event): + # Erase the previous rectangle + self.canvas.delete("rect") + + # Draw the new rectangle on the canvas + self.rect_end_x, self.rect_end_y = event.x, event.y + self.draw_rectangle() + + def on_mouse_up(self, event): + # Erase the final rectangle + self.canvas.delete("rect") + + # Draw the new rectangle on the canvas + self.rect_end_x, self.rect_end_y = event.x, event.y + self.draw_rectangle() + + # Update the PhotoImage with the drawn rectangle + # self.image.paste(self.canvas_image, mask=self.canvas_image) + + # Print the rectangle coordinates + print(f"({self.rect_start_x}, {self.rect_start_y}), ({self.rect_end_x - self.rect_start_x}, {self.rect_end_y - self.rect_start_y})") + + def on_key(self, event): + # Handle the 'q' key to quit the program + if event.char == "q": + self.is_quit = True + self.root.quit() + elif event.char == "c": + self.canvas.delete("rect") + elif event.char == "i": + self.prompt_rect_coords() + self.draw_rectangle() + + def prompt_rect_coords(self): + # Prompt the user to enter the rectangle coordinates + x, y, w, h = input( + "Enter the rectangle coordinates (x y w h): ").split() + x, y, w, h = int(x), int(y), int(w), int(h) + + # Set the rectangle coordinates + self.rect_start_x, self.rect_start_y = x, y + self.rect_end_x, self.rect_end_y = x + w, y + h + + def run(self): + # Start the Tkinter event loop and periodically check for user input + while not self.is_quit: + self.root.update_idletasks() + self.root.update() + self.root.after(10) # wait 10 ms between event loop iterations + + # def run(self): + # # Start the Tkinter event loop + # self.root.mainloop() + + +if __name__ == "__main__": + import os + + # get the path of the current file + current_file_path = os.path.abspath(__file__) + + # get the directory containing the current file + current_dir_path = os.path.dirname(current_file_path) + + # set the current working directory to the directory containing the current file + os.chdir(current_dir_path) + + # Define command-line arguments + parser = argparse.ArgumentParser( + description='Select a rectangle on an image.') + + parser.add_argument('image_path', type=str, + nargs='?', + help='Path to the input image file.') + + # Parse command-line arguments + args = parser.parse_args() + + if args.image_path: + image_path = args.image_path + elif img: + image_path = img + else: + image_path = input("Enter path to image file: ") + + # Create an ImageRectSelector instance with the image path + selector = ImageRectSelector(image_path) + + # Run the selector + selector.run() From 6a2b0a7e703abc7ab1bde40b4e30667d68b8ef38 Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Wed, 1 Mar 2023 17:52:22 -0600 Subject: [PATCH 090/100] chore: add gitignore of coordinate tool --- tools/ImageCoordinate/.gitignore | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 tools/ImageCoordinate/.gitignore diff --git a/tools/ImageCoordinate/.gitignore b/tools/ImageCoordinate/.gitignore new file mode 100644 index 0000000000..84b2f1895a --- /dev/null +++ b/tools/ImageCoordinate/.gitignore @@ -0,0 +1,4 @@ +* + +!coordinate.py +!.gitignore \ No newline at end of file From cda4836be4a3e5235e733b8a49434874c4c88157 Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Wed, 1 Mar 2023 19:06:37 -0600 Subject: [PATCH 091/100] chore: update coordinate tool --- tools/ImageCoordinate/coordinate.py | 50 ++++++++++++++++++----------- 1 file changed, 32 insertions(+), 18 deletions(-) diff --git a/tools/ImageCoordinate/coordinate.py b/tools/ImageCoordinate/coordinate.py index a6dcc6645f..d52bc6fe63 100644 --- a/tools/ImageCoordinate/coordinate.py +++ b/tools/ImageCoordinate/coordinate.py @@ -1,9 +1,13 @@ from PIL import Image, ImageTk import tkinter as tk +from tkinter import simpledialog import argparse img = "" +# Whether the previous rectangles will be cleared when creating a new one +KEEP_RECT = True + class ImageRectSelector: def __init__(self, image_path): # Load the image using PIL @@ -30,31 +34,34 @@ class ImageRectSelector: # Bind the keyboard event handler to the root window self.root.bind("", self.on_key) + # Set the flag so the program loops in run() self.is_quit = False # Initialize the rectangle coordinates self.rect_start_x, self.rect_start_y = None, None self.rect_end_x, self.rect_end_y = None, None - def draw_rectangle(self): + def draw_rectangle(self, tags="rect"): + # Erase previous temporary rectangles + self.canvas.delete("tmp") + + # Erase the previous rectangles if KEEP_RECT is set to False + if not KEEP_RECT: + self.canvas.delete("rect") + + # Draw the rectangle with the given tags self.canvas.create_rectangle(self.rect_start_x, self.rect_start_y, self.rect_end_x, self.rect_end_y, - outline='red', tags="rect") + outline='red', tags=tags) def on_mouse_down(self, event): self.rect_start_x, self.rect_start_y = event.x, event.y def on_mouse_drag(self, event): - # Erase the previous rectangle - self.canvas.delete("rect") - - # Draw the new rectangle on the canvas + # Draw the new temporary rectangle on the canvas self.rect_end_x, self.rect_end_y = event.x, event.y - self.draw_rectangle() + self.draw_rectangle("tmp") def on_mouse_up(self, event): - # Erase the final rectangle - self.canvas.delete("rect") - # Draw the new rectangle on the canvas self.rect_end_x, self.rect_end_y = event.x, event.y self.draw_rectangle() @@ -70,17 +77,25 @@ class ImageRectSelector: if event.char == "q": self.is_quit = True self.root.quit() + + # Handle the 'c' key to clear all rectangles elif event.char == "c": self.canvas.delete("rect") + self.canvas.delete("tmp") + + # Handle the 'i' key to take an input and draw the corresponding rectangle elif event.char == "i": self.prompt_rect_coords() self.draw_rectangle() def prompt_rect_coords(self): # Prompt the user to enter the rectangle coordinates - x, y, w, h = input( - "Enter the rectangle coordinates (x y w h): ").split() - x, y, w, h = int(x), int(y), int(w), int(h) + # x, y, w, h = input( + # "Enter the rectangle coordinates (x y w h): ").replace(',', ' ').split() + # x, y, w, h = map(int, (x, y, w, h)) + coords_str = simpledialog.askstring( + "Input", "Enter rectangle coordinates (x1 y1 x2 y2):") + x, y, w, h = map(int, coords_str.replace(',', ' ').split()) # Set the rectangle coordinates self.rect_start_x, self.rect_start_y = x, y @@ -93,11 +108,6 @@ class ImageRectSelector: self.root.update() self.root.after(10) # wait 10 ms between event loop iterations - # def run(self): - # # Start the Tkinter event loop - # self.root.mainloop() - - if __name__ == "__main__": import os @@ -121,6 +131,7 @@ if __name__ == "__main__": # Parse command-line arguments args = parser.parse_args() + # Handle image path in different situations if args.image_path: image_path = args.image_path elif img: @@ -128,6 +139,9 @@ if __name__ == "__main__": else: image_path = input("Enter path to image file: ") + # Print the prompt + print("drag to select and see coordinates, q to quit, c to clean, i to input coordinates") + # Create an ImageRectSelector instance with the image path selector = ImageRectSelector(image_path) From a673fd9cfb574c6b103195de79f2084627f900cd Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Wed, 1 Mar 2023 19:33:26 -0600 Subject: [PATCH 092/100] fix: infrast oper name ocr issue on JP enlarge the roi so it exactly covers the area of the name --- resource/tasks.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resource/tasks.json b/resource/tasks.json index b7f266b06f..314b9a025d 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -4356,9 +4356,9 @@ "text": [], "rectMove_Doc": "基于笑脸的位置移动", "rectMove": [ - 0, + -8, 20, - 113, + 125, 22 ] }, From dbe2f88c1a5f3ebc0bb49dc4b5908a20326a7b3e Mon Sep 17 00:00:00 2001 From: DaysGone233 <67311143+DaysGone233@users.noreply.github.com> Date: Thu, 2 Mar 2023 10:16:03 +0800 Subject: [PATCH 093/100] Add offline confirm in recruting --- resource/tasks.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/resource/tasks.json b/resource/tasks.json index 6609118ea9..61ce29b0b0 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -3321,7 +3321,8 @@ "Recruit@ReturnTo", "Recruit@CloseAnnos#next", "Recruit@FromStageSN", - "Recruit@TodaysSupplies" + "Recruit@TodaysSupplies", + "Recruit@OfflineConfirm" ] }, "Recruit": { @@ -4161,6 +4162,7 @@ "postDelay": 500, "next": [ "RecruitRefreshConfirm@Loading", + "Recruit@OfflineConfirm", "SleepThenStop" ] }, @@ -4222,6 +4224,7 @@ ], "next": [ "RecruitConfirm@Loading", + "Recruit@OfflineConfirm", "RecruitFlag" ] }, From 6246287c0d272e2b06c42a28b61c7f344ce76868 Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Wed, 1 Mar 2023 21:23:20 -0600 Subject: [PATCH 094/100] =?UTF-8?q?feat:=20JP=20DH-9=20Navigation=E5=A4=9A?= =?UTF-8?q?=E7=B4=A2=E9=9B=B7=E6=96=AF=E5=AF=BC=E8=88=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/global/YoStarJP/resource/tasks.json | 15 ++++++ resource/tasks.json | 57 ++++++++++++++++++++ 2 files changed, 72 insertions(+) diff --git a/resource/global/YoStarJP/resource/tasks.json b/resource/global/YoStarJP/resource/tasks.json index 95345b2cfc..317b99d4de 100644 --- a/resource/global/YoStarJP/resource/tasks.json +++ b/resource/global/YoStarJP/resource/tasks.json @@ -3552,5 +3552,20 @@ "破坏协议-压制" ] ] + }, + "DH-Open": { + "text": [ + "ドッソレス", + "ホリデー", + "復刻", + "イベント", + "催中" + ] + }, + "DHChapterToDH": { + "text": [ + "大会", + "エントリー" + ] } } \ No newline at end of file diff --git a/resource/tasks.json b/resource/tasks.json index 314b9a025d..29610a5bb7 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -785,6 +785,63 @@ "isAscii": true, "text": [] }, + "DH-9": { + "algorithm": "JustReturn", + "action": "DoNothing", + "sub": [ + "DH-Open" + ], + "next": [ + "DH-9@SideStoryStage", + "DH-9@SwipeToStage" + ] + }, + "DH-Open": { + "action": "ClickSelf", + "algorithm": "OcrDetect", + "text": [ + "假日", + "复刻", + "活动", + "开放" + ], + "roi": [ + 0, + 500, + 500, + 150 + ], + "postDelay": 2000, + "next": [ + "DHChapterToDH" + ] + }, + "DHChapterToDH": { + "algorithm": "OcrDetect", + "action": "ClickSelf", + "text": [ + "极限", + "铁人", + "大奖" + ], + "roi": [ + 934, + 280, + 234, + 124 + ], + "postDelay": 2000, + "next": [ + "DHChapterToDH", + "ChapterSwipeToTheRight" + ] + }, + "DH-9@SideStoryStage": { + "baseTask": "SideStoryStage", + "text": [ + "DH-9" + ] + }, "GA-6": { "algorithm": "JustReturn", "action": "DoNothing", From 0850043642d2f2af9cbd17fac60c11ddc748e771 Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Wed, 1 Mar 2023 21:50:52 -0600 Subject: [PATCH 095/100] feat: JP Rogue friend support update (template & code) and various ignorelist update --- resource/global/YoStarJP/resource/tasks.json | 33 +++++++++++----- .../template/Roguelike@RefreshSupportBtn.png | Bin 0 -> 4997 bytes .../RoguelikeRecruitSupportAnalyzer.cpp | 2 + tools/OverseasClients/FindMissingTemplates.py | 3 +- .../ignore_list_of_templates.txt | 37 ++++++++++++++++++ 5 files changed, 64 insertions(+), 11 deletions(-) create mode 100644 resource/global/YoStarJP/resource/template/Roguelike@RefreshSupportBtn.png diff --git a/resource/global/YoStarJP/resource/tasks.json b/resource/global/YoStarJP/resource/tasks.json index 317b99d4de..0ed9ca122f 100644 --- a/resource/global/YoStarJP/resource/tasks.json +++ b/resource/global/YoStarJP/resource/tasks.json @@ -9,6 +9,21 @@ "幻滅" ] }, + "DH-Open": { + "text": [ + "ドッソレス", + "ホリデー", + "復刻", + "イベント", + "催中" + ] + }, + "DHChapterToDH": { + "text": [ + "大会", + "エントリー" + ] + }, "CharsNameOcrReplace": { "Doc": "该任务的 ocrReplace 被所有涉及干员名的日文识别任务复用 このタスクの「ocrReplace」は、オペレーター名に関連するすべての認識タスクで再利用されます", "replaceFull": true, @@ -3553,19 +3568,19 @@ ] ] }, - "DH-Open": { + "RoguelikeRefreshSupportBtnOcr": { "text": [ - "ドッソレス", - "ホリデー", - "復刻", - "イベント", - "催中" + "サポート更新" ] }, - "DHChapterToDH": { + "RoguelikeChooseSupportBtnOcr": { "text": [ - "大会", - "エントリー" + "サポート" + ] + }, + "Roguelike@RecruitSupportConfirm": { + "text": [ + "サポート招集" ] } } \ No newline at end of file diff --git a/resource/global/YoStarJP/resource/template/Roguelike@RefreshSupportBtn.png b/resource/global/YoStarJP/resource/template/Roguelike@RefreshSupportBtn.png new file mode 100644 index 0000000000000000000000000000000000000000..c2690ee48e2f619f216218d1990b415d057126f6 GIT binary patch literal 4997 zcmZvgWmuHo*2aer5NQ$V?vMuQP7$R4ICPAJ(mjMU5`##Lbhm&(3^{~^Fi3;+&_lO` z#CbgDd^zv+ewdjrd#-0cd)@1|?t8y`p{qemNJ|I;frzywdo3cUY^AtDu!YIx+QfcgW(&b*QpXru&c>Vdqof%NZUXkZP_9X)pTp z>eyx0)y$9VZ6DWaA6XciEs=;FriYxzpXBZMPIuC>6yYTA!|*x*i<%X6zQ9PwG(OHU zA)&Cg}>@Np@!&bsgn=D!F<2%YTe_>U{9! zkBf0gq>Pz~*L1XBBG;(M{#5AwX6ia@zWT+>q1I3yEY9t~ZB zi`}_DlDB5gyEKk%jIYPK+WtjcD8lK*OT_J^T-4(%89Di;#cg^fIxz{(7qyf(#&JRl z4xde&8(Z!WJE)R$-BVWT=NDW4Fe7ZHLSy--5OmxR9*m6_befS5-0+9LMw`~x6 zLBVKL_RXHsDLOVvB|AmrcF3y zTsJfD@(reY|7ee2#7)+?g5naK!glL!SlI7%6h_--pg;d>bnAG^``6v))zk5m58pJt zAJfmswd=wgKTY};e|1=`7~sr$*aispw)SZubK>b*q!LhjkTsEyNnbc}eciYoJ-{B8 zCCnYP)3)k0m{nRks7A_K9E}+k%nE3lOuyKk#w4*Byld5ih}aRmr!kDbb{i{N%8{`J z+YI4=kKe_zIX>!IyBN`ItDLo63T+zQK1Bx-81Y$VCpY;2dg})>4-C;`snJ1mYuCa? zDz4eF+EQ5+q~zB+M{yb-O@)M%61Lgn#gALqeUbE*ek3c&^5kM@PGsd;9Q?rfwd;Yv zI~)DL$(8^(pw%Pb#2!Se|2;!XhpL6u`lqsq60for1Vp1PfhGzj3llb%VU2W76CBbB zwKk#$!A%#F1_8FT9t)tGoC-hn1MX~dgZj6%Z{jgb4y`SZdjl_4u zZS>^B3L%aB-+{aBw=v)wYecmZPPsR&^|7!a(l0Q5{mU?SCXT8)fDZ zy4VwOY2z{TGP1w-4xZFpHxQVXP+dwzurX1KlePK7x~@~-DTNsCSv-1UfpPE&kVgp) z^Hks~Mv^5SA7xQ6(a<4f%g}XA!FxGu;)FI+S1LJAhM$R!ZxX>;L!aF)2~MpN0`&{L zsG>X=rc1UO|2whN?V0T8;MQ z-u^@JHyB_$T1PCtNe3?i9{S+WO6Md6d5mqH5fhEVKqy`{lZAm!u4uw{+5)x`D3nxF=nLus84W8pk_8 zPWTr#5Wnpo9U!pkw`E+tskkJjO53Am?Nz@<$!bSP2DL{e}?pLoY+aa|`F7 zOQs%NR%J9XHefyt%no z`6x6a<93exOOwO%Tj!n;cNGWdbd&TTjP=B{2h!3PBk!&4@dFVFG>%b&-y}E( zGcbSK(9mtU;EKzm9e#GX4gwbItLr2vRqGRorgX7+R|;%a(!J4b>4RG> zGzhUlY}8S=&l2}Y{7gI%256+L6?k&-Y~|KANlzV+4`rpXr4Zz@iW0M&HZxk8&cj3x z>Hy`T+=&ZMx8wDO4eqxttlrcVO1a#yn1`{ui{eGOwfS9#eJ#yk+9-_a_saO91ZB+r z2wn^tY>v2K`Oxv4miidAmg=Uxy(H)9tt+lb*OmNy|uedL3yyOFT~*K)n{orzVk=b^5%pc ze4^$V?C#_EQBlrm(j^zWsS}{IuDz7G-I~qcl-Q1S-XXyi_inVXCHbUmPZm}I2)F^Z zL@pIu;g$OumtP`)V@t#qcZg>G%P+hxnAW=T&2!3-ph8;{&x<9h#D$kHyzbJkCtfUU z#`jgIhN$UwPKDE+j_^jdh}beR<#B&=Jrw5r=K7w-4unNdu7NJ6ds;|RwmGEo7}@?J z<~CexjL&S#uT%}`iSF8I;<)AY(EKRRCnXD2%{HMp<^`wk$wS)OF?BuqK9Y#sX93TT`nEd^2e-DO7(f@)kHS8IF~2J$A?{ z$K2-M%z@NKD~6I>3dvHK2s?P9RbKZw0e#}T`}0BP7aLEecauo#y_+B$8n0i9{fJG_gkGGmqcgwnw@IwGTyY~jz$E)G=%h>hm--P+5o`~!>qqg#K{0)P4L=P= zA%BFB*HJW1I7HhSJ6Q!P}Q#0MdaN^MVjx*XtuV zMC|GreghV^CXN8F#C9uEX;_agL7tv*DcUgYnO}}?pu;Jbdn#?ERVumRA_VN$N-qbr zxZpRpIN@@5P(UEqhPa)}s48fuApva2x+vwjH4J_52p}ru?aYdYOgt)HUPe0-3vXzy zku)ov`bt0Ka;)~}K*F;0{V7d1)K7$*_;I2Nhv1%|x?o8M0LlOu;kE##1l^RZkL5@7 zE?e~J*WwD%+R7fQl8XgQnCxiGr9-u^WFTM{A{?G?ZVLdMWA&~~An4wf>b4_t#;%{W zn0w%|B<1;oZxFmsQ=1m4UxhS&cMaP`F(;-rL6A+|Ve*>(5K;1|OP;~pCgU}!M!iMw ztdQF(IVeH67IkPBOIBiffci;KwUxwZnZZ!&I`lGcZtHjj8k#6<}lafq;88E|o6pXYFk+z-#B~){5rFIV05?W|LL_rPyyETQ)EfVWk?{Qsw z^WDc6R#7H>-E+G1+%8={6rYk8+k=1Yrp8K=S_FAmkptCu86^bxwl*1c@27G*Ft}e+ z+X0Hfa?C!bW%+aWs)}H*^|`-=B@NJbN26cv1Av?aGaQA@0zITyf4Wv9nkccE+*fK+ z=aUF^v-+6lso@KGuRdV@ZE1d4kqNMNil5b`uP*8?6b0-M^RrTzdbdMEchz@Fv%#c# zabs0jVzb#5ZfkWj3kW>c;lwyX|C5G<&VsA@zQNqvt85hY)d+VaKvY03pU_QQzPUj1 zN~bY=cRk;k%p^d4^IYpDhb{@ktek4u=6YM6Wg8)p{mDP5&&iw%K<8QZve}Piw@^Qi z^+vS|VS4>olgvD-8&yal%GwWVha*^x8oh*S9gqMZ@9)0OF3QXDkrA*iX0JJ>iwWh4q z@N+rYA1jCR$n^^tt7r%jIriiju<;qT)o6_?rdrqFwfK~hp&X1}EhSu6GteK^p{Hxy z-irLSe5Qsmq9KpIw+dqpZ2s~^Jt(mWk0WfFTOzQ!X*WC6oOy;ipvfsJsJG}-jp{P8EQWd^-BPuj|WPbh3lsVjlC343I&@?dUbAZU}vQO>t%oelF z2G3nGjO7D@O!3A0VrvWYx12n`1gEUnMAN;#$WK|N&^+G#JwTlEGg?=pXlQcT8=SKU zfWFsu$>g6R!?^Rrga@OVOdD{du#BCKPRBfPOxBy4NM_{l-f@7uKn=EO|KZ{Ygw9p=R95qb)o! zp^E)+6{j-aJXooS8uOA!_ zBubPub+d>@=cSmipcp8mgcPBlntj}yaB6hcni2?9Obq<>?KE;G_3b?VdXbUmXzqWi zh$gkeoPXp~bYB}uYcUrBN`yY68yVE2*k_brmQXy|Padpi@C_^CZp&ojb^C@TRQ|oM zm&2K3xjy1CKMCm-Gxc+fQY3Z6M%5p#;;1c$DdI&2Y7iDoedzcHxyE$0oYE_Ex z#L!dK$0SA%f{CyeD|oDtN>M0-d|is72KA22ug@CJey+}koJUE|A3jhQ${dMdcL&S` zfCI5WA-qPt2575=tDBbLCS4N;RGZGdTadKVQ8_f^gFDoD4M_Fl-Ncxp$^F}fsp}jy z$o%1;icsdEoOW0e@d$s5)D{q=M+a99uW#cYf`3k;qpcW$J13?tawiTJO#uOFS~)3s zdmSBSJAVKZS;NMw|5@-q*I3KbN&mjzLf&D!rabrIf6V0zT(5z&)O1yAl&!=61>^C< A_5c6? literal 0 HcmV?d00001 diff --git a/src/MaaCore/Vision/Roguelike/RoguelikeRecruitSupportAnalyzer.cpp b/src/MaaCore/Vision/Roguelike/RoguelikeRecruitSupportAnalyzer.cpp index eaf2efc5da..4c4dcdce58 100644 --- a/src/MaaCore/Vision/Roguelike/RoguelikeRecruitSupportAnalyzer.cpp +++ b/src/MaaCore/Vision/Roguelike/RoguelikeRecruitSupportAnalyzer.cpp @@ -32,6 +32,8 @@ bool asst::RoguelikeRecruitSupportAnalyzer::analyze() OcrImageAnalyzer analyzer(m_image); analyzer.set_roi(Task.get("RoguelikeRecruitSupportOcr")->roi); analyzer.set_required(m_required); + analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map, + Task.get("CharsNameOcrReplace")->replace_full); if (!analyzer.analyze()) return false; const auto& char_name_rects = analyzer.get_result(); diff --git a/tools/OverseasClients/FindMissingTemplates.py b/tools/OverseasClients/FindMissingTemplates.py index 35042eb30a..904ae435fb 100644 --- a/tools/OverseasClients/FindMissingTemplates.py +++ b/tools/OverseasClients/FindMissingTemplates.py @@ -36,8 +36,7 @@ ignore_list_file_name = "ignore_list_of_templates.txt" regex_ignore_list = [ "Mizuki", "SSS", - "Reclamation", - "Rogue" + "Reclamation" ] server_list = [ diff --git a/tools/OverseasClients/ignore_list_of_templates.txt b/tools/OverseasClients/ignore_list_of_templates.txt index a0559ec1ee..f888df8161 100644 --- a/tools/OverseasClients/ignore_list_of_templates.txt +++ b/tools/OverseasClients/ignore_list_of_templates.txt @@ -72,6 +72,21 @@ OfflineConfirm.png OperLockedMfg.png OperLockedTrade.png OperSelected.png +Phantom@Roguelike@CloseCollection.png +Phantom@Roguelike@GamePassSkip1Confirm.png +Phantom@Roguelike@InitalDrop.png +Phantom@Roguelike@LastRewardRand.png +Phantom@Roguelike@MissionFailedFlag.png +Phantom@Roguelike@StageBoons.png +Phantom@Roguelike@StageCambatDps.png +Phantom@Roguelike@StageDreadfulFoe.png +Phantom@Roguelike@StageEmergencyDps.png +Phantom@Roguelike@StageEncounter.png +Phantom@Roguelike@StageEncounterOptionFree.png +Phantom@Roguelike@StageEncounterOptionLeave.png +Phantom@Roguelike@StageEncounterSpecialClose.png +Phantom@Roguelike@StageSafeHouse.png +Phantom@Roguelike@StageTrader.png PopupCancel.png PopupConfirm.png RecruitConfirm.png @@ -81,6 +96,28 @@ RecruitSkip.png RecruitTimerDecrement.png ReplenishToMaxConfirm.png Return.png +Roguelike@AbandonConfirm.png +Roguelike@DialogSkipConfirm.png +Roguelike@ExitThenAbandon.png +Roguelike@GamePassTheEndConfirm.png +Roguelike@GetDropLeaveConfirm.png +Roguelike@IntegratedStrategies.png +Roguelike@MissionCompletedFlag.png +Roguelike@StageEncounterGiveUpRecruitConfirm.png +Roguelike@StageTraderInvestSystemError.png +Roguelike@TraderRandomShopping.png +RoguelikeBattleExitBegin.png +RoguelikeFormationOper.png +RoguelikeQuickFormationClearAndReselect.png +RoguelikeRecruitElite0.png +RoguelikeRecruitElite1.png +RoguelikeRecruitElite2.png +RoguelikeRecruitOcrFlag.png +RoguelikeRecruitSupportElite0.png +RoguelikeRecruitSupportElite1.png +RoguelikeRecruitSupportElite2.png +RoguelikeSkillSelectionFlag.png +RoguelikeSkillSelectionTeamFull.png SendClueConfirm.png SendClues.png SkipThePreBattlePlotConfirm.png From 22b45812875d1d91c8a3f6839aa020df155179e2 Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Wed, 1 Mar 2023 22:43:34 -0600 Subject: [PATCH 096/100] fix: JP IS(rogue) friend support oper refresh support list is yet to be fixed --- resource/global/YoStarJP/resource/tasks.json | 9 ++++++--- resource/tasks.json | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/resource/global/YoStarJP/resource/tasks.json b/resource/global/YoStarJP/resource/tasks.json index 0ed9ca122f..14fc5bd6df 100644 --- a/resource/global/YoStarJP/resource/tasks.json +++ b/resource/global/YoStarJP/resource/tasks.json @@ -3570,17 +3570,20 @@ }, "RoguelikeRefreshSupportBtnOcr": { "text": [ - "サポート更新" + "サポート", + "更新" ] }, "RoguelikeChooseSupportBtnOcr": { "text": [ - "サポート" + "サポー" ] }, "Roguelike@RecruitSupportConfirm": { "text": [ - "サポート招集" + "サ.*ート", + "招集", + "召集" ] } } \ No newline at end of file diff --git a/resource/tasks.json b/resource/tasks.json index 29610a5bb7..582318289b 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -9420,9 +9420,9 @@ "招募助战" ], "roi": [ - 770, + 810, 500, - 160, + 200, 40 ], "preDelay": 200 From 2947e47f3ea76781d737233c14bd6cd4aebeed81 Mon Sep 17 00:00:00 2001 From: uye <2396806385@qq.com> Date: Thu, 2 Mar 2023 16:28:08 +0800 Subject: [PATCH 097/100] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=B8=AE?= =?UTF-8?q?=E5=B8=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaWpfGui/Views/UserControl/GameClientUserControl.xaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/MaaWpfGui/Views/UserControl/GameClientUserControl.xaml b/src/MaaWpfGui/Views/UserControl/GameClientUserControl.xaml index e417ce3f2a..a1587e566d 100644 --- a/src/MaaWpfGui/Views/UserControl/GameClientUserControl.xaml +++ b/src/MaaWpfGui/Views/UserControl/GameClientUserControl.xaml @@ -2,6 +2,7 @@ x:Class="MaaWpfGui.GameClientUserControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:c="clr-namespace:CalcBinding;assembly=CalcBinding" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:dd="urn:gong-wpf-dragdrop" xmlns:local="clr-namespace:MaaWpfGui" @@ -31,5 +32,9 @@ ItemsSource="{Binding ClientTypeList}" SelectedValue="{Binding ClientType}" SelectedValuePath="Value" /> + \ No newline at end of file From 6f4fc8fa912d3887bb76ee0552c657c10ea79a9d Mon Sep 17 00:00:00 2001 From: LambdaLe Date: Fri, 3 Mar 2023 13:39:10 +0800 Subject: [PATCH 098/100] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20=E8=82=89?= =?UTF-8?q?=E9=B8=BD=E5=8A=A9=E6=88=98=20=E5=88=B7=E6=96=B0=E6=8C=89?= =?UTF-8?q?=E9=92=AEocr=E4=B8=8D=E8=83=BD=E9=83=A8=E5=88=86=E5=8C=B9?= =?UTF-8?q?=E9=85=8D=E5=8F=8A=E5=88=B7=E6=96=B0=E6=97=B6=E9=97=B4=E8=AF=86?= =?UTF-8?q?=E5=88=AB=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../template/Roguelike@RefreshSupportBtn.png | Bin 6633 -> 0 bytes .../template/Roguelike@RefreshSupportBtn.png | Bin 4997 -> 0 bytes resource/tasks.json | 11 ++---- .../template/Roguelike@RefreshSupportBtn.png | Bin 7777 -> 0 bytes .../RoguelikeRecruitSupportAnalyzer.cpp | 33 ++++++++++++------ 5 files changed, 25 insertions(+), 19 deletions(-) delete mode 100644 resource/global/YoStarEN/resource/template/Roguelike@RefreshSupportBtn.png delete mode 100644 resource/global/YoStarJP/resource/template/Roguelike@RefreshSupportBtn.png delete mode 100644 resource/template/Roguelike@RefreshSupportBtn.png diff --git a/resource/global/YoStarEN/resource/template/Roguelike@RefreshSupportBtn.png b/resource/global/YoStarEN/resource/template/Roguelike@RefreshSupportBtn.png deleted file mode 100644 index a6e4d5f30098f6566b42510fc8ea75b8e90b6d38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6633 zcmZ{JcTkhvyKN{^l#W2?B2_@DbO;>;r1##dbcE2QNrxz*N)wQ(^e#1Yq$nUrCv-#z z5u~^C@_qN*IcM(u{gGrQliAsO?e(l@J?o9r(oiP6Pjepx0uib_SI_}ID}Wad9wzWE zB1Az80#VnfD9GyhW9%dF&Gb%lLFkp+j#lF6@YNLgD2xp)QY{?GHEr#O%oa>cE^s!4 zP)VG#`jlBE!Xl1;i6&*1Q&zuK z>iW6h#pna7O{!3okk=%5(+-4?w(_LMAvk?>CP4rKn?8zMvo@LeL3Aqwficg3Cvk=D^0`2(4gRKUU=xUR8E zg+32R{$p4nL_ora!o}I77Y|Oy*QyYDmUxMfy-Zae|9+#|7#-~;E$Y;DIOIHUSw8a} zU52Lovyt~WMFwmuG4_}Gb0iz>nAMpHp6mw&(SA*vlAND`O56_#SJL&m-vz~A5X{{0 zb6u&)UlLR0`f1!PF3CArblqIs2Lf%{ffEP!lF7%e@A)o?f5PfCd8>!MnVc1UeL8Qk zG*fp0iKOVP3@BJW;EA6Lsyvc07rBx~*uoitlP6Go^SMZY)YmOLsXh@pl?AKXwM-CE zcBxL8rI6$C*r;zRuoL2pxTZW;(Z$(bD*{Vvb2D@m#T3-sows#vp+aar=UK4n2-{^y z9jA3n1#4*q{Y`!*1$U66wO*(>w7>+5NB&$nInVp-$utcO0|o6`q|fBK2*pnh+Go!O zU~l{nzGWIu2%t@jJ0?)rpr|l)5^%SQAoym)^g&UmFuRRP)o$Q74#_Y@5-{JG73dL( z4LsJN297|3gjGoJ=$<+7;e^@4uOY^1HS*JkUiuQ*Ea1dkg6Qfnk{WzW5FJ4ze@lc+ ztm0$#B( z9GbWvlm9<33DxyVs*_!}t9dabb=uROtUXn-_MQoD{&kxh?(Vq}-7s_R60?du_GuQ&65PjX#u)?yr)gJM zyjQSnEx;dH;H>q!KwiSZXO#Fj{ZMS%gP6vZh#@y+7nfRzpgaTUZmbH3}NvN`NB%tDV?1Eswo8N@3WHCgs`rsHwzvvR6?5fhzUqaAz?jdTZ5_QjPA3e@tz&_l6yp1dvs(f_ZFq~n<$rd zLV~P+ynhnTfH_XzaW3O_S`eMr&hBt%^fAjjFs|jm(zW$R`L$<&>&IqO*zy|lRu;!L z?^haNNtp75hb5i-#As|k11I?>@#s+FiA*H#Qb%C4l4FyYGk=EEu)M#%;GvC5rIJTD zZfxsbGo_OKiwAoQLOw=O)tR^2`U|MtP4s7?nJa`tE5T+iO;15D8DcVjXF)$(z3A>s;$*QdAn&YYSIQlA@l9U<-&<;y%g7iq25`?M|2! z{y+;cvF6=YeaE~7W|E#T{^-}9>$UmugeIi>(sm7vE=fWiMU5fiMN7XvP@l2=TT;@W zU8R0PIM!+eO78K*p@S+vcWPA{bDW;r*_)~8t_&KwljHeuClH>JN$VR)IW=_fOCJv6 z!)IRK^i#bj<Szpbrn+)?uALR?JES<{lsTk?9e%$6tpC41d2(AlJUYNMjQ zJl|(Uytd+a`)ErN%?>qX{R{>Ykq#?7x6?{e8boaJC_PK?++u`YTsH1_TJUotPM18uh~ z@|&YpxOCg{`Jc3fX9IHywkZ*IzaiBqFh7L@o8oy(hsCmgXNYH^UQLj%T=q;$`A6Yp z%M0zmtJ>@iM*T+HZjYyl7G$WlCZuYO-q}Qa3kKZnvbAL1B6nHoX%affW3EB^^+fHq z%V5nL@9zXHAPTytJk6J!fJ}9&rM{}%OAx%2l(n>eOx{h4h?e$I{X;p1+|<6o&3h4C+)$+zGKjEh;q6fi zzBmuCZ@y^G?GST-DqKFdlXKTUMdur`|0jAII>hj<7#hzN_k;8Dsq3DyZY3QK`0Qi7 z$x2>Ruifs-g4^$0pPx?wd}aW(SE7E^>%E}!d*-xpsHNT(+_?RSbL*QaLj9pVhl z6`xAm%Q-fQF_4T))Cy`EUqZjKtzy30z6|N4(z>L4*8t5AA9?~{HHwKPjywi|utc3o zzF7ejZrR@(Yg6JHKkPj6l(1)OsGu3g2vCD=Fzn^92P_>eqt>7sXuQ)RA2VU3GCvv|E z6R3V;_{ev}T8cn6>`pk^HpXo|^r9g7U`{)@98bbGhg$qTtIy5iUrkXryQ4{v$h1Q0 zGsk}+_Ta427Ixz6{Xg^3ZHgc;Glf=$BGCpcoXiqQT#~lNK!r#ugzCLw@FRMz?i+G_}svkiMGGafW zrmpwwLQ~jUg^vI2YkQj4C(sl??UK7-1m>>+WfX+GE9g?obC(4@h~fAp~fD?AmsiV zZPTqN={%^IPvG~uA^cA#hUJ&OAd<~>Kh&Fm0HGzf`P%)2QoH<@^Ffv5D3v7iLWj6@ zX@#$$K5YvDJvYR_;m80mU%?sAqZZHUG?@l1dv4z?I{wb4Nm76$zZ$S?t!85`xsMn$Vdj3gq zA{*Y5zH!GD3^K&K)~BAx^pymxs1 zuHO4Uy4@0Nn&=FFSN_O1=-bz7+|X;p>MrD4>HVG3oIbt%(@(+)2en><$CUjB!{>RA zZufQXr1QJwH6h%JP<~#4uY*sEK70w8-CY%u#0z;>3UR|nv9&W$ zwfpxGv!#S_wd)QdZ0a%l=UlS0<^J?7+1_eOMGuYprodT#Pu+WttvtgHGbtPGafuuY zC!q@z7yBXKA{%f#gUqCbb%=?L%6HEJN;dKtogHbLZ+_4qzB7lg7|hST299rDv?UFJ zg#7DyL6mRK87wl|8$Uz3nigaQJuSU!_NM1n^FzH%r^^+?{CHsI6y$HUJvUpkn0(~h zXEqFlmZz2d+bA43op5-Ui{=H`uN-}tL%q*TRCF05|L`(ow+9%^s66cMW%J9f%W@nR+|gd3Rf!RH?1i|!Ir~eMY~cvs>GR?ups{Q1w1e7{G9`UtV2p-_3%Hehyo; zXm+#Z=aL@2kmE~`!F~)lRcUi~pbgM+Q*<`J+HJr`DYeyiYO+&!@V1F4C#=m$;%$_Kb>Zgtp5|Z|KvjcqHiwRl z+#4SoOX(7jZB7$hfVJ(dk9LbH{OlufP^)#ZB2)@eVo#lhT!YF#R;^Ysn1w-jpGa9B z>i}}xg3a`hW7Q*zd|Ak4yn0`FmJTUE8D4VHy6woKblzeewuPuI&Ntr`GUAKI#TVly zhB*FEHRfQC?jrXwMg@jcFF!4$tnnRTQI=xPvH_Bg_qALqehf7_wMCQ5`B=%2|yVj=g&VhN6SxETD* z68=0Y`o)P`LSg;GLqL`r*s^J1l|l=bga+{rSAFe0qb!svl11&DYjt?oAvg=M{ThN` zkSNP4>&C^GKOiJ3Q~hO=gp*P?TXAqQVvA2(qeXMn9uPZjOy9)!K%~GUlh4Q{W&P(4 zxM0Dk?iKYKZPJSuJuJCt^L|?n0Q)4y!bT+T<%m!!bUfoqlqZ2E%~+IYD#U}E-BIGs0Lb_Nhrs87& zjC^`4)XREiQx!tu)C5(lDSbfuJ=bJAocp-EJ8L*~d{Rzpz)mO)ntQ@;d_TaYN_D9; z689`F01!XyaD%!`v=U1ye zl~vk;lHIxA0s;)ca_I1i=@(+FK~Y3$4ASoDcgaO35hfly?seBI7ndl;eDxkFu*}Q4 zj@PyJ-=>KYBK-uwo$tfc*>Fc9ihE?B2qnd`7u^N?uM#sMos;gq-=VM4kD75;Eot)A zy^TLkpgvF&5I-Uz^ESfkelErreL$|0&cG}5&#^3HG?Cj5(e08Vle$A`hoX2GI5iT^ zk<$~NhPN>fnyVJ6n^xkrqtsa7|Y9_uZLyf-#l z5_2h`CRpzTQnxj`@(Fq1e8?25ax}DD*HGc|!K~e2tn=^T3tcxXVO&BUavvi#=Idok zngop7i@h9;mL(a@TB%AS-+L18R!C1AZ)t~C;19IUWvps>r4Z|zJhikDRpEiqBa zIow>-@VoigtpBl=T-accS}7aOuqcbQ&*bs-7jymnyVPl4BRewsHg_*IllzUNkYPV- zT$c4EHoy&)fcxVzNgb?2J}uxXo4GB+$!09MgKXZpRnQ^?y|Z z^<+Mavh6z9$60s9(ttf`SV7t2KJhNZ@>x;MJEXoeK zYG2xC_hh5Im9w?f$^E8WiBw89 z^>-^DCI&q(EBjnH`$!wOCP})eZqq(f;kkoWY9=oX9i9XQG!%?Hsri)@AAOkK2Jn)Y z_rGszSV~c1%BDHrqti18-B<5p+Gy*M-#Jk!=z|y0`#5^cFYB%8|Gu;MublCOWOrgL z&rFhnHqyOX%#Y7)VOccfL;~d-!}2U}gq9-dAKLx@{s^M?dOMdUlmFcv`LFQG8cC$|GFKyR3Itq^#(t`XXH}@BOEgpm@KMes}2=Gw*tlKKWUQ z>!k4$jF>AY#Vc4(@C;qq?u6-mK?=GQvpmD{`hT`sv`L|S{0}HakN+QNfqW^XP9Su< zIQ?2^i6tCjLfXu+2=xt3Q*s=Ct-8v!_H?A}hht3-P!RDWT=9SZ(>jo!kQ!cQ?XTN8 zZnVg{p?=cN#*QLsDFernoCDs3u^fh1wYEF!T+RBq@*4l}Z|zW5F;L|0s*2YBaNM>s zS+wyq2gJ3!EX7F!A_i|qBhrml0XD0MOl8|eVOR0R56+Cj)`_KOs=_QU4l~fFKVRj) zWb_mO53~|c80K(Jw*Hg2`*KGB;b9Je@LVpzfG1-%%bDxs)`utW!@Y>HfS>V9#@!X! zdZ?$?pYkciBAdGnv@p`?dGEfODAOvR;gjiZVa&V*Wk7t4F?F}>fk!wX6-5n&Dmkl& F{{m_k(Yycv diff --git a/resource/global/YoStarJP/resource/template/Roguelike@RefreshSupportBtn.png b/resource/global/YoStarJP/resource/template/Roguelike@RefreshSupportBtn.png deleted file mode 100644 index c2690ee48e2f619f216218d1990b415d057126f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4997 zcmZvgWmuHo*2aer5NQ$V?vMuQP7$R4ICPAJ(mjMU5`##Lbhm&(3^{~^Fi3;+&_lO` z#CbgDd^zv+ewdjrd#-0cd)@1|?t8y`p{qemNJ|I;frzywdo3cUY^AtDu!YIx+QfcgW(&b*QpXru&c>Vdqof%NZUXkZP_9X)pTp z>eyx0)y$9VZ6DWaA6XciEs=;FriYxzpXBZMPIuC>6yYTA!|*x*i<%X6zQ9PwG(OHU zA)&Cg}>@Np@!&bsgn=D!F<2%YTe_>U{9! zkBf0gq>Pz~*L1XBBG;(M{#5AwX6ia@zWT+>q1I3yEY9t~ZB zi`}_DlDB5gyEKk%jIYPK+WtjcD8lK*OT_J^T-4(%89Di;#cg^fIxz{(7qyf(#&JRl z4xde&8(Z!WJE)R$-BVWT=NDW4Fe7ZHLSy--5OmxR9*m6_befS5-0+9LMw`~x6 zLBVKL_RXHsDLOVvB|AmrcF3y zTsJfD@(reY|7ee2#7)+?g5naK!glL!SlI7%6h_--pg;d>bnAG^``6v))zk5m58pJt zAJfmswd=wgKTY};e|1=`7~sr$*aispw)SZubK>b*q!LhjkTsEyNnbc}eciYoJ-{B8 zCCnYP)3)k0m{nRks7A_K9E}+k%nE3lOuyKk#w4*Byld5ih}aRmr!kDbb{i{N%8{`J z+YI4=kKe_zIX>!IyBN`ItDLo63T+zQK1Bx-81Y$VCpY;2dg})>4-C;`snJ1mYuCa? zDz4eF+EQ5+q~zB+M{yb-O@)M%61Lgn#gALqeUbE*ek3c&^5kM@PGsd;9Q?rfwd;Yv zI~)DL$(8^(pw%Pb#2!Se|2;!XhpL6u`lqsq60for1Vp1PfhGzj3llb%VU2W76CBbB zwKk#$!A%#F1_8FT9t)tGoC-hn1MX~dgZj6%Z{jgb4y`SZdjl_4u zZS>^B3L%aB-+{aBw=v)wYecmZPPsR&^|7!a(l0Q5{mU?SCXT8)fDZ zy4VwOY2z{TGP1w-4xZFpHxQVXP+dwzurX1KlePK7x~@~-DTNsCSv-1UfpPE&kVgp) z^Hks~Mv^5SA7xQ6(a<4f%g}XA!FxGu;)FI+S1LJAhM$R!ZxX>;L!aF)2~MpN0`&{L zsG>X=rc1UO|2whN?V0T8;MQ z-u^@JHyB_$T1PCtNe3?i9{S+WO6Md6d5mqH5fhEVKqy`{lZAm!u4uw{+5)x`D3nxF=nLus84W8pk_8 zPWTr#5Wnpo9U!pkw`E+tskkJjO53Am?Nz@<$!bSP2DL{e}?pLoY+aa|`F7 zOQs%NR%J9XHefyt%no z`6x6a<93exOOwO%Tj!n;cNGWdbd&TTjP=B{2h!3PBk!&4@dFVFG>%b&-y}E( zGcbSK(9mtU;EKzm9e#GX4gwbItLr2vRqGRorgX7+R|;%a(!J4b>4RG> zGzhUlY}8S=&l2}Y{7gI%256+L6?k&-Y~|KANlzV+4`rpXr4Zz@iW0M&HZxk8&cj3x z>Hy`T+=&ZMx8wDO4eqxttlrcVO1a#yn1`{ui{eGOwfS9#eJ#yk+9-_a_saO91ZB+r z2wn^tY>v2K`Oxv4miidAmg=Uxy(H)9tt+lb*OmNy|uedL3yyOFT~*K)n{orzVk=b^5%pc ze4^$V?C#_EQBlrm(j^zWsS}{IuDz7G-I~qcl-Q1S-XXyi_inVXCHbUmPZm}I2)F^Z zL@pIu;g$OumtP`)V@t#qcZg>G%P+hxnAW=T&2!3-ph8;{&x<9h#D$kHyzbJkCtfUU z#`jgIhN$UwPKDE+j_^jdh}beR<#B&=Jrw5r=K7w-4unNdu7NJ6ds;|RwmGEo7}@?J z<~CexjL&S#uT%}`iSF8I;<)AY(EKRRCnXD2%{HMp<^`wk$wS)OF?BuqK9Y#sX93TT`nEd^2e-DO7(f@)kHS8IF~2J$A?{ z$K2-M%z@NKD~6I>3dvHK2s?P9RbKZw0e#}T`}0BP7aLEecauo#y_+B$8n0i9{fJG_gkGGmqcgwnw@IwGTyY~jz$E)G=%h>hm--P+5o`~!>qqg#K{0)P4L=P= zA%BFB*HJW1I7HhSJ6Q!P}Q#0MdaN^MVjx*XtuV zMC|GreghV^CXN8F#C9uEX;_agL7tv*DcUgYnO}}?pu;Jbdn#?ERVumRA_VN$N-qbr zxZpRpIN@@5P(UEqhPa)}s48fuApva2x+vwjH4J_52p}ru?aYdYOgt)HUPe0-3vXzy zku)ov`bt0Ka;)~}K*F;0{V7d1)K7$*_;I2Nhv1%|x?o8M0LlOu;kE##1l^RZkL5@7 zE?e~J*WwD%+R7fQl8XgQnCxiGr9-u^WFTM{A{?G?ZVLdMWA&~~An4wf>b4_t#;%{W zn0w%|B<1;oZxFmsQ=1m4UxhS&cMaP`F(;-rL6A+|Ve*>(5K;1|OP;~pCgU}!M!iMw ztdQF(IVeH67IkPBOIBiffci;KwUxwZnZZ!&I`lGcZtHjj8k#6<}lafq;88E|o6pXYFk+z-#B~){5rFIV05?W|LL_rPyyETQ)EfVWk?{Qsw z^WDc6R#7H>-E+G1+%8={6rYk8+k=1Yrp8K=S_FAmkptCu86^bxwl*1c@27G*Ft}e+ z+X0Hfa?C!bW%+aWs)}H*^|`-=B@NJbN26cv1Av?aGaQA@0zITyf4Wv9nkccE+*fK+ z=aUF^v-+6lso@KGuRdV@ZE1d4kqNMNil5b`uP*8?6b0-M^RrTzdbdMEchz@Fv%#c# zabs0jVzb#5ZfkWj3kW>c;lwyX|C5G<&VsA@zQNqvt85hY)d+VaKvY03pU_QQzPUj1 zN~bY=cRk;k%p^d4^IYpDhb{@ktek4u=6YM6Wg8)p{mDP5&&iw%K<8QZve}Piw@^Qi z^+vS|VS4>olgvD-8&yal%GwWVha*^x8oh*S9gqMZ@9)0OF3QXDkrA*iX0JJ>iwWh4q z@N+rYA1jCR$n^^tt7r%jIriiju<;qT)o6_?rdrqFwfK~hp&X1}EhSu6GteK^p{Hxy z-irLSe5Qsmq9KpIw+dqpZ2s~^Jt(mWk0WfFTOzQ!X*WC6oOy;ipvfsJsJG}-jp{P8EQWd^-BPuj|WPbh3lsVjlC343I&@?dUbAZU}vQO>t%oelF z2G3nGjO7D@O!3A0VrvWYx12n`1gEUnMAN;#$WK|N&^+G#JwTlEGg?=pXlQcT8=SKU zfWFsu$>g6R!?^Rrga@OVOdD{du#BCKPRBfPOxBy4NM_{l-f@7uKn=EO|KZ{Ygw9p=R95qb)o! zp^E)+6{j-aJXooS8uOA!_ zBubPub+d>@=cSmipcp8mgcPBlntj}yaB6hcni2?9Obq<>?KE;G_3b?VdXbUmXzqWi zh$gkeoPXp~bYB}uYcUrBN`yY68yVE2*k_brmQXy|Padpi@C_^CZp&ojb^C@TRQ|oM zm&2K3xjy1CKMCm-Gxc+fQY3Z6M%5p#;;1c$DdI&2Y7iDoedzcHxyE$0oYE_Ex z#L!dK$0SA%f{CyeD|oDtN>M0-d|is72KA22ug@CJey+}koJUE|A3jhQ${dMdcL&S` zfCI5WA-qPt2575=tDBbLCS4N;RGZGdTadKVQ8_f^gFDoD4M_Fl-Ncxp$^F}fsp}jy z$o%1;icsdEoOW0e@d$s5)D{q=M+a99uW#cYf`3k;qpcW$J13?tawiTJO#uOFS~)3s zdmSBSJAVKZS;NMw|5@-q*I3KbN&mjzLf&D!rabrIf6V0zT(5z&)O1yAl&!=61>^C< A_5c6? diff --git a/resource/tasks.json b/resource/tasks.json index 582318289b..a03f20f7ca 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -9442,14 +9442,9 @@ "baseTask": "RoguelikeRecruitSupportElite" }, "RoguelikeRecruitSupportEnterFlag": { - "template": "Roguelike@RefreshSupportBtn.png", - "action": "DoNothing", - "roi": [ - 1094, - 10, - 172, - 47 - ] + "baseTask": "RoguelikeRefreshSupportBtnOcr", + "postDelay": 0, + "action": "DoNothing" }, "SSSBegin": { "Doc": "保全派驻", diff --git a/resource/template/Roguelike@RefreshSupportBtn.png b/resource/template/Roguelike@RefreshSupportBtn.png deleted file mode 100644 index 27a8d9d928e6e87045e174aa23d231bbc7c3bebe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7777 zcmbVR2|UyP|6h(AQ9?zI)NeXR8w8ctM zoJe#u0HCZ&A)zr2SXZDe7KbMwK})r7K|s765@af`2hk&GVDI9!@4H})?&}+4?mJ-M zb|6(1pfUwP7vO|-MFS~Ljs!A-f&~337eR0Tx-AU?{t0n)K!VhMDFoiuy8+Z7x?q8D zDTpKn0)YS(;ZjgVC`Lxn9t@O$$jC@TVA4=A~V*Zx*U zze0lUy1J4O($XFt9#S5%QbZS=G!zbpOG9L&Wn?7j2uZRh!4*xBB#=e^k)VksV_fhg zS3Hpb{3Q`>OLTKZg6O9H<%1LHw^#!C?>NyTCQU(;q@hxfUq1Z_w8Q+yk=$Gy|5R>= zk;Xb=ov;K~G93&3jV0YBx)RBEiT{o0-`)Q~0X?>QdcSr2OIw_reybq6UUjFt@pnM} zC7NvPNy17SV#!1|7Yz2QJKao?U*3=q8ZKD0E78T6NOb&%sT=>843v?Rf&ed>;t6&{ z5Ax-IHvp@NcEut=zgUxm(!VfcCNt=*b`lx&~%6KPG}rfnnb{XfWO0t&>%VzUFeGG*2(^9g`OTlhd_2k z6EIjEO(cl!vlJe0hmeKA>|tmuOcE;##YoD_%E?N?p|%i77)%BWgWB24Vq_Kn8Lvsi zxcy@GpYe9|@rtro8F@Jcj3infq9|!AE2ltjp%o;tc2KmfJp^hC$NnB~;DV=5EwtnR zTh6Zu_bVk3+ITXZEYH7Zgb~*H@0KGT_-7U%(3oG@jRawS(TcSL{e2t%FCy@N^WZPB z9(S>Hq5lKjf5FH^dsh#%3swzBkJkU1PSXFK@np37|7`mIjl6$p`hQKo|BvZ^hZS=d zO~7I4wNe`N%NglkMddG2r2jKtfA;;m0`w1@Ue$gzf7es`#qWxYCD28?(CaNmf7%HE z;M3L7R5PZeESP&z;yxxGrmjhP^wjfkYpb)OF8Bch^)&Ox4NYH|NQ8fJ7MLy#*AGtY z4hv6hyEDY^P*~_7QHVL!n_rdT4=xk&0@|HFW=3#{sU6*Qnod=%N3li%5U5?{Rj*Zp z?z&O<(&oX)TK$seD4AdQKIimu7vPY5jCB0a7pAqL$U5DAaCA)Y^C&PyWLJP`drtK_ z6Qo2<#NXx)1Pt*bYYTF-F!BkwN0YaFn+HXcL!kOx&oSP|T$CmqsPQ9mo*$wPK0VV4 zs735l%5VBXAq=?bONZqXbJ1OVQ7~s*j5sQWT~_L)IFk+g^&e9si_4)yXAeutugZeC z_D5GGS%D>Eg-`s-t*u$P^l@35d2B4cjl#{BC#=~tFI%P(@Q474#+dK7Rs+i*?d*|L zGB}l7L-QodwC{-t=?BaC!&HL$_&fHCtm@u5-_LX2H&M$Mhl>j9&pyYLodhr((JWyC zA8CDl{hRXZOi_~Vw+{l&$Gd@=)V48`xD8TR^9_aTOh?Vesm~{_=`uBBXosE8OV0Za zV_^)j@g@H-MYrKaY*VUFnaMuF_dq@vC0gYgja&9!Fp~>pK9Mzfc;s_#fz3&`;MX=y zkVnh;W#Z1=X7xRuhXu6DA~Mpx&OS|YEs-@mlkV+V<#l0K_^ycrH1MO6Zef7pOpOQq z>!aQ{g5J%k6luFh&h$s#3>7i9R}9_OxsPbwry614FZv4>uL9meU1h(+}nW zA23Xu%39g^s}s*s6$@c=UrZH*XV`Kb&oDj+<($?$+-$cGxi^IxN;VamZ(o5Ck}PWO zTJ*lqJpp)J?uqr3mP~VR6Bq)qaqh+LJ3U_0viDgwC0pjpQM`CArO5FIn8s~C*SgTX z;r2-C!2>4`hzh7bX4>s&3Ae!;`u7us)G z!rC-qbs^-5chPK97{{~KR>|^P=N9XITWWMtG9{v8 z!*%kmdz)$?T{Fyhz-^Hjc;|YPgNR7bgaMt7V_w3gYg}t zM8yyd@sQY^#L(-zWfK8R@DHDfVWrFt#qb3E{3G9zO@m{(P+K|ngNBY!%CM?er=={7 zhYHYEEX*xRiI$TznTjYHQAG@S^>jWF(%MxNoY{W=r3T?kF~DgLa%u}wBjFOu@bqC< ziU#Tmt8?3{vZRw{931KmWg-fljg8-%0r;0ztXIY@#yLvB8RnpD{*+RiCW^CpzkzhI z+2EvgY3;{XcYkISk@~)c?b~#J3fCT2Ocr21iHU@(e&u<;23M_HYucPeoZFf>?PcFF z5b#_*eQs=fLitJTDmxQ{az5C3V^EgHBGFgaE=?ppAX@K|F3y&V?K&EsP|5`YVn1|M zT$!AC8qB}E{AdCI!_LrFt{R-m7FvAD>YS-KQGnz-Y^l-6`CM;Nd@ts@CR4mzK^0+f zmbKND>^E;?SiBVOcZ7qu=+v`WV;^siEYHhOEqZ2ue=+Ii3c<21KOlAU<1N6};>+Z- z_eGkxfd0)#_nt^L*0LZ}KY23wi=DC`2x~Wl8Cm9cCu&3kvf;5WjN(Ma$imn80-QeF z+N*5kU6x2RkIJlh?L8gU+HGT@h-I@1-s@})O3ZBp&OI2D$H?qUJ@?eS7+2xcr!)o-%7|WzTdt*Hs3DBfUyd8jMknV=kSzgjAT#L+O<_RBSU)TEDUA)L_0+KzII5R z^<6So%GB8p%U%N{}op4I;+=uv;8cx?BB<;Cu_gjW7? z)?yzI`>&8CUoYI(5&+EZV5h6xBHwO_wY6HQpC@E)-`R=ax%fysxG}@DYWI82HAHNPC(&R-q~ywUgkNN}#UGXC~yHox#Q zs`|}|^pt6wzUk{d(>z3t+s?Z46=F3s!Y~tCrF4OhF*o2~`Ivd~;X?F1z_!YC>KWs` zHr#HovIslF6(qDyDc`v@ClhdEQKecBR;xik<@l5=1|Ix%^ zULjx10_yC*m)g^gjx!(ijy2TOO35%Mswen=eUfc%dr&;M&Wr)rbqkx-EtLlmLYEs- zXw_Ix;v(K_JOHWv<7b3)JiK=KbC0I=e6^C)n>BwK6l=*u8{9mwgnBWcG+U!vm%KmM z@^MXK)wLhgP|{3PP}GzwufJH6BMC@+S8_UB`d}k)T>j~Bt&)1mdGu|RSX>xwwV9Lr zNrd&hVt>Doj@2gZno=Y?C|%?J!On~5OuMgn@PvEeyYr>1;1j$$H!pDU53ofH4N!g(6-D*=rw+$G9zvU6;ZZoAUQy|y zHIJj|)j1n!U!b8@7NY}am~o6Z7pRwWFl+sR&pol#HKOyqovsl*mn$EQH7|smFUG(@CSNBlqx~r3kF1?;*Ie-s4iqVz`4qF! zH9KL>7L!G=F1fDiwGJ1wfp^jb+j`r#iLc0za;J>hb9gq!R9C!Xh$L|A0ms9evD zpE!JuE5PU``xDY+?!C|EW~k<^mgHjrpp3t7+jX1!J0~#sna9baK0OW+U;CWpB2Ip@ zyFVsbc;s<8$1|By;Jb-Pp(oj9hSnA=kyDYx1Y?V|iMq9}!uQ$dU-r%SR`+IaTUkyI zp{C!M53ZDNZd%Du0S(jv02t~Th6OBt%4N}2gXmuB8|@NO6l)tgsSoz?nM>{OIAd^j zyOSCu=F58esU(d;IjAyy>$t$)5-johxPgM2{eV-<6Z?qnr}u&eGXOvkDzbTbpC4;} zhtd2C!^Lx%`hn=^=I!#qv>yI7nB7s5ja`t#_ET8~=z>?V6a4%w=YcbWJL6woj;5lg zb7ZEig6D5dDiRV!OJfBpwbxtSlQCim>UQ#05g@;=dpx2PI1@ZaXJ1C{JRU` z@w+1<=-Ui|a=EK*$++-N5)W&N;>NXI?j3C0Bh0F}DsiJ2zZ~#Rt{~WS;Q<jxzGS5zEL zyX|!&iejx^*=^jZ04{x9xbzfRSg9u=@Z$TC&aCS%XBh;Ny?~quURvL3Y8SH=F38;T zo{x`#uDQ3>dyO-<>RuP`KeHBer+syI2rErXxTg6HOf^%rtXrx-_EHYzO=`al5j%WT zs28JUSAh8AHQstCYczi`bgo7;$T-I-#|xohJ>b#A6`ZeS1uY^u67D!$a)01_%UXSC zh(EAdjj9zTA9_?gHB60F27K)F!}gL3p!hFI93l9pb-j2|Gw0#G?djmiKgMn}m|ZGz za`ZkUEq^NG>yvGT?@`P1kr^^qNeB78OcWw8i^+X4gqD z<-RGF*sB%l+8hWUOR+SL8a)|qy-RB?EIgv!XX-J*!O*wSyF*v{n@vlZofqz-ntd?@y%>OlngHcexuT(m&Rfzr-#Ejt3l+s7C9)2bS;aAq|Mi-ang97B+72 zqz^WNvHs;7Nf(m60ZG=;a4uK@7^M$TSfbH zHPe^a1A)VmyrFYJMn?n?V&6ER$xx6#a5(#lZqF(`LZbY_2@KqoJzsEl&&nL_PWF1& zq4G(o7~GRZ1MKj$ZjOFE9maq0RpGo3CV}2#nK!p^R%s{Qm zs~BH(z6$V9dYEu9(UGqT|N65%A9>>f*Lk$=r4FC<=*Ixz-N`H9e2p;xNN4TwYnI2X z0ksw>l}9rb!K0HA7u@A{mTD;sepP5S#j^6cH5yriZNG7|e(#-!eYZr%es2qp@SWEZ zC$C?L3!0NkoB7eg2kYl>z@V1s%aw_axIS4rMb1SpYgDimc^t}!_Anpyuo_-plUU)3|Hc|cD;rcDVU)q8iUD{L-L-x$xkNMq{wF#FY-(3FP7C;sn+pI->S8+ z_cvXcQ8LKGH>9S8ewu>d%==BmxdhAYt0)@_!k1jm2etCkr1sII+k3U5XY6V|3|Wt^ z_6^v#x7|Ju^1tAWiWig#_F=~Yrq3-ASpdNn@e4;tYmvV6*Vc2% z4}QLOh3B?@VJ0?BiXTpv4)rSh~( zG_Mvd(YKobDIxPuJRdjQAC16oR8kvH=u0A_=x;utaE-x<1*yV14 z+wCD7YY|>wij<1&Ty6$|S6X7OEzWT4yE}-GHr(XaTcZ!R#)N~xKigg#b>MXRlT>6- zvW4lzs$04HLiF|6-k5Ru$GxR?j?L`MPAGh&3`~63lQ`{mI=AEC#lXNhMqE_j@grT_ zmQj;sCpPA1=7T$HMc(5Sgb3`-2!D5_MCS23O%O@$4fh$27NuR=%TUKh3}b;S8}%FJ zhgG72I(9fpM_Jw4wdoeuwY;A{-;R7>HDl0dDj864_5FOx8?Awyzf?r?=n;-ta&~l@ z^QtVG_-HA)a(6Y+Em)lFgUXGsFR7d950YxPP%O-ANwgMZ`?|RiUgz{MHdp8dgNFKG zX#cRUkrGw0sP4^cd`nuzM6hAdL3U}aNL78_rUA8)u!xER> za`UtIP%a~IQfweVAXBKRdv;nizI_=XYzA97_#C&%TXPuN&1@*WasL`E!tF=U zkK~g_E?p<%<5|TxQL+)i@}MJVbR8 z1U{`z?^wXCwCYrCIZc_%0tX9eDa;GCCv0Y$_h%Pp3rLh9HqyUIj-B|RoRs%)n3BW$~c^HaX@&l*s{>SU9QDX zN?(bdT2X1>m#MnPb3#AxwyizmS*v{*(+Ff1Iy7ZvMGV(nN}+^0eM=kE0i}MK6>@C8 zSfI@{UbV)j+e$hMY^Z24inHkm$cUBQQVL*(F>~8ns?K+u@Ph)z5*|Rf%nXe(wFRGB z6l3l=-?~}TQSu^BgcVdGYbmJGmFr%He4b>aDzr5bP!FFxqkk5za)?h-~mkKE{;!smwpOYSsw8)Bx%Riht0<>NMdx3sR2%IH>@%0a)sYobWrU(!*e)j z8q_m3H~uoRix2RQcW7u=Mdj;);bf*{ Lea#|u8~=X;2Zc1{ diff --git a/src/MaaCore/Vision/Roguelike/RoguelikeRecruitSupportAnalyzer.cpp b/src/MaaCore/Vision/Roguelike/RoguelikeRecruitSupportAnalyzer.cpp index 4c4dcdce58..ce87bb878f 100644 --- a/src/MaaCore/Vision/Roguelike/RoguelikeRecruitSupportAnalyzer.cpp +++ b/src/MaaCore/Vision/Roguelike/RoguelikeRecruitSupportAnalyzer.cpp @@ -93,24 +93,35 @@ bool asst::RoguelikeRecruitSupportAnalyzer::analyze() else if (m_mode == battle::roguelike::SupportAnalyzeMode::RefreshSupportBtn) { // 识别“更新助战列表” OcrImageAnalyzer analyzer(m_image); - const auto& task = Task.get("RoguelikeRefreshSupportBtnOcr"); - analyzer.set_roi(task->roi); - if (!analyzer.analyze()) return false; + + // 未处在冷却时间 + analyzer.set_task_info("RoguelikeRefreshSupportBtnOcr"); + if (analyzer.analyze()) { + m_refresh_result = { analyzer.get_result().front().rect, false, 0 }; + return true; + } + + // 刷新冷却中 + analyzer.set_required({}); + analyzer.set_replace({ { ":", ":" } }); + if (!analyzer.analyze()) { + Log.info(__FUNCTION__, "| RefreshSupportBtn analyse failed"); + return false; + } const auto& results = analyzer.get_result(); for (const auto& result : results) { Log.info(__FUNCTION__, "| RefreshSupportBtn parse `", result.text, "`", result.score); - if (std::count(task->text.begin(), task->text.end(), result.text)) { - m_refresh_result = { result.rect, false, 0 }; - return true; - } - else if (std::regex_match(result.text, std::regex("[0-9]{2}:[0-9]{2}:[0-9]{2}"))) { - const auto& hour = std::atoi(result.text.substr(2).c_str()); - const auto& min = std::atoi(result.text.substr(3, 2).c_str()); - const auto& sec = std::atoi(result.text.substr(7, 2).c_str()); + std::smatch match_results; + if (std::regex_search(result.text, match_results, std::regex("[0-9]{2}:[0-9]{2}:[0-9]{2}"))) { + const auto& match_str = match_results[0].str(); + const auto& hour = std::atoi(match_str.substr(2).c_str()); + const auto& min = std::atoi(match_str.substr(3, 2).c_str()); + const auto& sec = std::atoi(match_str.substr(7, 2).c_str()); m_refresh_result = { result.rect, true, 3600 * hour + 60 * min + sec }; return true; } } + Log.info(__FUNCTION__, "| RefreshSupportBtn failed: no matched reusults"); return false; } From e3a96497d5b681b4a5ffbb6be5ea547059060484 Mon Sep 17 00:00:00 2001 From: Yifan Liu Date: Fri, 3 Mar 2023 19:40:08 -0600 Subject: [PATCH 099/100] chore: update coordinate tool windows bat file --- tools/ImageCoordinate/.gitignore | 4 +++- tools/ImageCoordinate/drag_here_win.bat | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 tools/ImageCoordinate/drag_here_win.bat diff --git a/tools/ImageCoordinate/.gitignore b/tools/ImageCoordinate/.gitignore index 84b2f1895a..8b036e0a53 100644 --- a/tools/ImageCoordinate/.gitignore +++ b/tools/ImageCoordinate/.gitignore @@ -1,4 +1,6 @@ -* +*.png +*.jpg !coordinate.py +!drag_here_win.bat !.gitignore \ No newline at end of file diff --git a/tools/ImageCoordinate/drag_here_win.bat b/tools/ImageCoordinate/drag_here_win.bat new file mode 100644 index 0000000000..0ac1d4b188 --- /dev/null +++ b/tools/ImageCoordinate/drag_here_win.bat @@ -0,0 +1,2 @@ +python coordinate.py %* +pause \ No newline at end of file From 645f89693bc4651b78e52fc74ab87c0e4084d120 Mon Sep 17 00:00:00 2001 From: Horror Proton <107091537+horror-proton@users.noreply.github.com> Date: Sat, 4 Mar 2023 13:42:39 +0800 Subject: [PATCH 100/100] fix: avoid overlapping sprintf output --- src/MaaCore/Utils/Time.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/MaaCore/Utils/Time.hpp b/src/MaaCore/Utils/Time.hpp index e97803f502..ec56684bcc 100644 --- a/src/MaaCore/Utils/Time.hpp +++ b/src/MaaCore/Utils/Time.hpp @@ -34,8 +34,8 @@ namespace asst::utils gettimeofday(&tv, nullptr); time_t nowtime = tv.tv_sec; struct tm* tm_info = localtime(&nowtime); - strftime(buff, sizeof(buff), "%Y-%m-%d %H:%M:%S", tm_info); - sprintf(buff, "%s.%03ld", buff, static_cast(tv.tv_usec / 1000)); + auto offset = strftime(buff, sizeof(buff), "%Y-%m-%d %H:%M:%S", tm_info); + sprintf(buff + offset, ".%03ld", static_cast(tv.tv_usec / 1000)); #endif // END _WIN32 return buff; }