fix: workaround for get.* = .*

This commit is contained in:
zzyyyl
2023-11-29 21:49:11 +08:00
parent 7fa2ba4978
commit 46ae1e0505
4 changed files with 25 additions and 13 deletions

View File

@@ -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": {

View File

@@ -94,6 +94,12 @@ namespace asst
std::shared_ptr<TargetTaskInfoType> 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<TargetTaskInfoType>(get(name));
}

View File

@@ -165,8 +165,6 @@ bool asst::SideStoryReopenTask::select_stage(int stage_index)
Task.get<OcrTaskInfo>(m_stage_code + "@ClickStageName")->text = { m_stage_code };
Task.get<OcrTaskInfo>(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();
}
/// <summary>
@@ -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();
}

View File

@@ -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<OcrTaskInfo>(m_navigate_name + "@Copilot@ClickStageName")->text = { m_navigate_name };
Task.get<OcrTaskInfo>(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<OcrTaskInfo>(m_navigate_name + "@Copilot@ClickStageName")->text = { m_navigate_name };
Task.get<OcrTaskInfo>(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);