From 9c3df883ef0e5a37fb65454d33d78aba4233bf05 Mon Sep 17 00:00:00 2001 From: MistEO Date: Sat, 11 Sep 2021 14:48:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E5=AE=8C=E6=88=90=E5=8F=91?= =?UTF-8?q?=E7=94=B5=E7=AB=99=E6=8D=A2=E7=8F=AD=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MeoAssistance/Assistance.cpp | 22 +++++--- MeoAssistance/InfrastAbstractTask.cpp | 23 +++++++++ MeoAssistance/InfrastAbstractTask.h | 1 + MeoAssistance/InfrastPowerTask.cpp | 69 +++++++++++++++++++++++++- MeoAssistance/InfrastPowerTask.h | 5 ++ resource/template/special/GoIn.png | Bin 0 -> 4667 bytes 6 files changed, 112 insertions(+), 8 deletions(-) create mode 100644 resource/template/special/GoIn.png diff --git a/MeoAssistance/Assistance.cpp b/MeoAssistance/Assistance.cpp index d61f4ab562..d3b4dc7093 100644 --- a/MeoAssistance/Assistance.cpp +++ b/MeoAssistance/Assistance.cpp @@ -315,9 +315,9 @@ bool asst::Assistance::start_infrast() 2) 如果没收获,使用基建默认大小的模板匹配 3. 进入宿舍,把心情低于阈值的、心情没满但不在工作的,都换下去,使用InfrastDormTask 4. 根据用户设置,按顺序进入制造站or贸易站,使用ProcessTask - 5. 队制造站or贸易站进行换班,使用InfrastStationTask - 6. 根据用户设置,使用无人机加速制造or贸易,使用ProcessTask,TODO - 7. 会客室线索处理、发电站换班、控制中枢换班,同样需要根据用户设置决定顺序,TODO + 5. 对制造站or贸易站进行换班,使用InfrastStationTask + 6. 根据用户设置,使用无人机加速制造or贸易,使用ProcessTask + 7. 会客室线索处理、发电站换班、控制中枢、办公室换班,同样需要根据用户设置决定顺序,TODO */ // 1. 从任意界面进入基建,使用ProcessTask @@ -333,9 +333,7 @@ bool asst::Assistance::start_infrast() // 返回基建的主界面 append_match_task(InfrastTaskCahin, { "InfrastBegin" }); - - // 5. 队制造站or贸易站进行换班,使用InfrastStationTask - // 6. 根据用户设置,使用无人机加速制造or贸易,TODO + // 5. 对制造站or贸易站进行换班,使用InfrastStationTask // TODO,这里需要根据用户设置,是先制造站还是先贸易站,或者是别的设施 // 从进入制造站,到设施列表的界面 @@ -354,9 +352,19 @@ bool asst::Assistance::start_infrast() // 贸易站换班 m_tasks_deque.emplace_back(shift_task_ptr); - // 无人机加速贸易站 + // 6. 根据用户设置,使用无人机加速制造or贸易,使用ProcessTask + // 对贸易站使用无人机加速 append_match_task(InfrastTaskCahin, { "UavAssist-Trade" }); + // 返回基建的主界面 + append_match_task(InfrastTaskCahin, { "InfrastBegin" }); + + // 7. 会客室线索处理、发电站换班、控制中枢、办公室换班,同样需要根据用户设置决定顺序,TODO + // 发电站换班 + auto power_task_ptr = std::make_shared(task_callback, (void*)this); + power_task_ptr->set_task_chain(InfrastTaskCahin); + m_tasks_deque.emplace_back(std::move(power_task_ptr)); + // 全操作完之后,再返回基建的主界面 append_match_task(InfrastTaskCahin, { "InfrastBegin" }); diff --git a/MeoAssistance/InfrastAbstractTask.cpp b/MeoAssistance/InfrastAbstractTask.cpp index 64684d01fe..303c4f7720 100644 --- a/MeoAssistance/InfrastAbstractTask.cpp +++ b/MeoAssistance/InfrastAbstractTask.cpp @@ -8,6 +8,7 @@ #include "Identify.h" #include "Configer.h" #include "InfrastConfiger.h" +#include "Logger.hpp" using namespace asst; @@ -20,6 +21,8 @@ asst::InfrastAbstractTask::InfrastAbstractTask(AsstCallback callback, void* call bool asst::InfrastAbstractTask::swipe_to_the_left() { + DebugTraceFunction; + constexpr int SwipeTimes = 5; m_swipe_duration = 100; @@ -40,24 +43,32 @@ bool asst::InfrastAbstractTask::swipe_to_the_left() bool asst::InfrastAbstractTask::click_clear_button() { + DebugTraceFunction; + const static Rect ClearButtonRect(430, 655, 150, 40); return m_controller_ptr->click(ClearButtonRect); } bool asst::InfrastAbstractTask::click_confirm_button() { + DebugTraceFunction; + const static Rect ConfirmButtonRect(1105, 655, 150, 40); return m_controller_ptr->click(ConfirmButtonRect); } bool asst::InfrastAbstractTask::click_return_button() { + DebugTraceFunction; + const static Rect ConfirmButtonRect(20, 20, 135, 35); return m_controller_ptr->click(ConfirmButtonRect); } bool asst::InfrastAbstractTask::swipe(bool reverse) { + DebugTraceFunction; + //#ifndef LOG_TRACE bool ret = true; if (!reverse) { @@ -81,6 +92,8 @@ std::vector