feat: 基建自动领取专精

This commit is contained in:
youqii
2023-11-02 16:53:23 +08:00
committed by broken_paint
parent 77df630a6d
commit 4fc2a16628
11 changed files with 106 additions and 1 deletions

View File

@@ -6527,6 +6527,34 @@
],
"templThreshold": 0.95
},
"InfrastTraining": {
"template": "Training.png",
"maskRange": [
1,
255
],
"roi": [
880,
420,
400,
160
],
"templThreshold": 0.95
},
"InfrastTrainingMini": {
"template": "TrainingMini.png",
"maskRange": [
1,
255
],
"roi": [
980,
400,
300,
140
],
"templThreshold": 0.95
},
"InfrastControl": {
"template": "ControlCenter.png",
"maskRange": [
@@ -7574,6 +7602,19 @@
"ClueGiveTo1stConfirm"
]
},
"InfrastTrainingCompleted": {
"action": "ClickSelf",
"roi": [
350,
600,
200,
120
],
"postDelay": 5000,
"next": [
"CloseTaskAward"
]
},
"InfrastOperListTabSkillUnClicked": {
"action": "ClickSelf",
"roi": [

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -76,6 +76,7 @@
<ClInclude Include="Task\Fight\SideStoryReopenTask.h" />
<ClInclude Include="Task\Fight\StageQueueMissionCompletedPlugin.h" />
<ClInclude Include="Task\Infrast\InfrastProcessingTask.h" />
<ClInclude Include="Task\Infrast\InfrastTrainingTask.h" />
<ClInclude Include="Task\Interface\CustomTask.h" />
<ClInclude Include="Task\Interface\VideoRecognitionTask.h" />
<ClInclude Include="Task\Interface\OperBoxTask.h" />
@@ -253,6 +254,7 @@
<ClCompile Include="Task\Fight\SideStoryReopenTask.cpp" />
<ClCompile Include="Task\Fight\StageQueueMissionCompletedPlugin.cpp" />
<ClCompile Include="Task\Infrast\InfrastProcessingTask.cpp" />
<ClCompile Include="Task\Infrast\InfrastTrainingTask.cpp" />
<ClCompile Include="Task\Interface\VideoRecognitionTask.cpp" />
<ClCompile Include="Task\Interface\OperBoxTask.cpp" />
<ClCompile Include="Task\Miscellaneous\ScreenshotTaskPlugin.cpp" />

View File

@@ -408,6 +408,9 @@
<ClInclude Include="Task\Infrast\InfrastOfficeTask.h">
<Filter>Source\Task\Infrast</Filter>
</ClInclude>
<ClInclude Include="Task\Infrast\InfrastTrainingTask.h">
<Filter>Source\Task\Infrast</Filter>
</ClInclude>
<ClInclude Include="Task\Infrast\InfrastPowerTask.h">
<Filter>Source\Task\Infrast</Filter>
</ClInclude>
@@ -1148,5 +1151,8 @@
<ClCompile Include="Config\TaskData\TaskDataSymbolStream.cpp">
<Filter>Source\Resource\TaskData</Filter>
</ClCompile>
<ClCompile Include="Task\Infrast\InfrastTrainingTask.cpp">
<Filter>Source\Task\Infrast</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,30 @@
#include "InfrastTrainingTask.h"
#include "Task/ProcessTask.h"
bool asst::InfrastTrainingTask::_run()
{
m_all_available_opers.clear();
set_product("SkillLevel");
swipe_to_the_right_of_main_ui();
if (!enter_facility()) {
return false;
}
enter_facility();
// 训练未完成或没有训练,退出
if (!training_completed()) {
return true;
}
return true;
}
bool asst::InfrastTrainingTask::training_completed()
{
ProcessTask task(*this, { "InfrastTrainingCompleted" });
return task.run();
}

View File

@@ -0,0 +1,18 @@
#pragma once
#include "InfrastProductionTask.h"
namespace asst
{
class InfrastTrainingTask final : public InfrastProductionTask
{
public:
using InfrastProductionTask::InfrastProductionTask;
virtual ~InfrastTrainingTask() override = default;
protected:
virtual bool _run() override;
private:
bool training_completed();
};
}

View File

@@ -8,6 +8,7 @@
#include "Task/Infrast/InfrastInfoTask.h"
#include "Task/Infrast/InfrastMfgTask.h"
#include "Task/Infrast/InfrastOfficeTask.h"
#include "Task/Infrast/InfrastTrainingTask.h"
#include "Task/Infrast/InfrastPowerTask.h"
#include "Task/Infrast/InfrastProcessingTask.h"
#include "Task/Infrast/InfrastReceptionTask.h"
@@ -26,6 +27,7 @@ asst::InfrastTask::InfrastTask(const AsstCallback& callback, Assistant* inst)
m_reception_task_ptr(std::make_shared<InfrastReceptionTask>(callback, inst, TaskType)),
m_office_task_ptr(std::make_shared<InfrastOfficeTask>(callback, inst, TaskType)),
m_processing_task_ptr(std::make_shared<InfrastProcessingTask>(callback, inst, TaskType)),
m_training_task_ptr(std::make_shared<InfrastTrainingTask>(callback, inst, TaskType)),
m_dorm_task_ptr(std::make_shared<InfrastDormTask>(callback, inst, TaskType))
{
LogTraceFunction;
@@ -39,6 +41,7 @@ asst::InfrastTask::InfrastTask(const AsstCallback& callback, Assistant* inst)
m_control_task_ptr->set_ignore_error(true);
m_reception_task_ptr->set_ignore_error(true);
m_office_task_ptr->set_ignore_error(true);
m_training_task_ptr->set_ignore_error(true);
m_processing_task_ptr->set_ignore_error(true);
m_dorm_task_ptr->set_ignore_error(true);
@@ -96,6 +99,9 @@ bool asst::InfrastTask::set_params(const json::value& params)
else if (facility == "Processing") {
m_subtasks.emplace_back(m_processing_task_ptr);
}
else if (facility == "Training") {
m_subtasks.emplace_back(m_training_task_ptr);
}
else {
Log.error(__FUNCTION__, "| Unknown facility", facility);
m_subtasks.clear();

View File

@@ -13,6 +13,7 @@ namespace asst
class InfrastControlTask;
class InfrastReceptionTask;
class InfrastOfficeTask;
class InfrastTrainingTask;
class InfrastDormTask;
class ReplenishOriginiumShardTaskPlugin;
class InfrastProcessingTask;
@@ -44,6 +45,7 @@ namespace asst
std::shared_ptr<InfrastControlTask> m_control_task_ptr = nullptr;
std::shared_ptr<InfrastReceptionTask> m_reception_task_ptr = nullptr;
std::shared_ptr<InfrastOfficeTask> m_office_task_ptr = nullptr;
std::shared_ptr<InfrastTrainingTask> m_training_task_ptr = nullptr;
std::shared_ptr<InfrastProcessingTask> m_processing_task_ptr = nullptr;
std::shared_ptr<InfrastDormTask> m_dorm_task_ptr = nullptr;
std::shared_ptr<ReplenishOriginiumShardTaskPlugin> m_replenish_task_ptr = nullptr;

View File

@@ -11,7 +11,7 @@ bool asst::InfrastFacilityImageAnalyzer::analyze()
const static std::unordered_map<std::string, std::string> facility_task_name = {
{ "Dorm", "InfrastDorm" }, { "Control", "InfrastControl" }, { "Mfg", "InfrastMfg" },
{ "Trade", "InfrastTrade" }, { "Power", "InfrastPower" }, { "Office", "InfrastOffice" },
{ "Reception", "InfrastReception" }, { "Processing", "InfrastProcessing" },
{ "Reception", "InfrastReception" }, { "Processing", "InfrastProcessing" }, { "Training", "InfrastTraining" }
};
// 因为基建的缩放是不确定的,有可能是正常大小,也可能是最小化的
// 所以对每种情况都进行一下识别,取其中得分最高的