diff --git a/resource/tasks.json b/resource/tasks.json index aedc400498..a6b1e44794 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -620,6 +620,13 @@ "Doc": "右滑五次,然后检测关卡并左滑", "Doc2": "在一次关卡导航中,仅swipe五次,其余情况进exceededNext", "baseTask": "ChapterSwipeToTheRight", + "specificRect_Doc": "防止在关卡名展开的情况下无法滑动,调整滑动区域", + "specificRect": [ + 600, + 100, + 20, + 20 + ], "exceededNext": [ "ClickStageName", "StageNavigationSlowlySwipeLeft" @@ -1015,10 +1022,10 @@ "template": "UsePrtsSuccess.png", "action": "DoNothing", "roi": [ - 1000, - 550, - 280, - 90 + 985, + 523, + 159, + 165 ] }, "StageQueue": { diff --git a/src/MaaCore/Config/TaskData.h b/src/MaaCore/Config/TaskData.h index d64391649b..7d8d2add51 100644 --- a/src/MaaCore/Config/TaskData.h +++ b/src/MaaCore/Config/TaskData.h @@ -94,6 +94,12 @@ namespace asst std::shared_ptr get(std::string_view name) { // TODO: should be const + // any `Task.get(name)->x = y` could be transformed to + // ``` + // json::object json = {}; + // json[name][x] = y; + // Task.lazy_parse(json); + // ``` return std::dynamic_pointer_cast(get(name)); } diff --git a/src/MaaCore/Task/Fight/SideStoryReopenTask.cpp b/src/MaaCore/Task/Fight/SideStoryReopenTask.cpp index b0739049f4..3f918a7379 100644 --- a/src/MaaCore/Task/Fight/SideStoryReopenTask.cpp +++ b/src/MaaCore/Task/Fight/SideStoryReopenTask.cpp @@ -165,8 +165,6 @@ bool asst::SideStoryReopenTask::select_stage(int stage_index) Task.get(m_stage_code + "@ClickStageName")->text = { m_stage_code }; Task.get(m_stage_code + "@ClickedCorrectStage")->text = { m_stage_code }; - // 防止在关卡名展开的情况下无法滑动,调整滑动区域 - Task.get(m_stage_code + "@FullStageNavigation")->specific_rect = Rect(600, 100, 20, 20); return ProcessTask(*this, { m_stage_code + "@StageNavigationBegin" }).run(); } /// @@ -175,8 +173,6 @@ bool asst::SideStoryReopenTask::select_stage(int stage_index) bool asst::SideStoryReopenTask::activate_prts() { LogTraceFunction; - // 复制一下UnableToAgent2的roi - Task.get("StageQueue@UsePrtsSuccess")->roi = Task.get("UnableToAgent2")->roi; return ProcessTask(*this, { "StageQueue@CheckPrts" }).run(); } diff --git a/src/MaaCore/Task/Interface/CopilotTask.cpp b/src/MaaCore/Task/Interface/CopilotTask.cpp index acd7fb3099..182b570c22 100644 --- a/src/MaaCore/Task/Interface/CopilotTask.cpp +++ b/src/MaaCore/Task/Interface/CopilotTask.cpp @@ -135,12 +135,15 @@ bool asst::CopilotTask::set_params(const json::value& params) bool is_adverse = params.get("is_adverse", false); m_adverse_select_task_ptr->set_enable(need_navigate && is_adverse); - // 防止在关卡名展开的情况下无法滑动,调整滑动区域 std::string m_navigate_name = params.get("navigate_name", std::string()); - Task.get(m_navigate_name + "@Copilot@ClickStageName")->text = { m_navigate_name }; - Task.get(m_navigate_name + "@Copilot@ClickedCorrectStage")->text = { m_navigate_name }; - Task.get(m_navigate_name + "@Copilot@FullStageNavigation")->specific_rect = Rect(600, 100, 20, 20); - m_navigate_task_ptr->set_tasks({ m_navigate_name + "@Copilot@StageNavigationBegin" }); + if (!m_navigate_name.empty()) { + Task.get(m_navigate_name + "@Copilot@ClickStageName")->text = { m_navigate_name }; + Task.get(m_navigate_name + "@Copilot@ClickedCorrectStage")->text = { m_navigate_name }; + m_navigate_task_ptr->set_tasks({ m_navigate_name + "@Copilot@StageNavigationBegin" }); + } + else { + m_navigate_task_ptr->set_tasks({}); + } m_navigate_task_ptr->set_enable(need_navigate); bool with_formation = params.get("formation", false);