mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-16 09:50:40 +08:00
feat.新增支持贸易站源石碎片自动补货字段
This commit is contained in:
@@ -88,6 +88,7 @@ TaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const char* p
|
||||
"drones": string, // 无人机用途,可选项,默认 _NotUse
|
||||
// "_NotUse"、"Money"、"SyntheticJade"、"CombatRecord"、"PureGold"、"OriginStone"、"Chip"
|
||||
"threshold": float, // 宿舍进驻心情阈值,可选,取值范围 [0, 1.0],默认 0.3
|
||||
"replenish": bool, // 贸易站“源石碎片”是否自动补货,可选,默认 false
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -1930,6 +1930,27 @@
|
||||
"template": "DroneAssistTrade.png",
|
||||
"action": "Stop"
|
||||
},
|
||||
"ReplenishToMax": {
|
||||
"action": "ClickSelf",
|
||||
"roi": [
|
||||
882,
|
||||
128,
|
||||
165,
|
||||
149
|
||||
],
|
||||
"next": [
|
||||
"ReplenishToMaxConfirm"
|
||||
]
|
||||
},
|
||||
"ReplenishToMaxConfirm": {
|
||||
"action": "ClickSelf",
|
||||
"roi": [
|
||||
854,
|
||||
504,
|
||||
192,
|
||||
187
|
||||
]
|
||||
},
|
||||
"ShamareThumbnail": {
|
||||
"algorithm": "JustReturn",
|
||||
"action": "DoNothing",
|
||||
|
||||
BIN
resource/template/ReplenishToMax.png
Normal file
BIN
resource/template/ReplenishToMax.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
BIN
resource/template/ReplenishToMaxConfirm.png
Normal file
BIN
resource/template/ReplenishToMaxConfirm.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
@@ -12,6 +12,7 @@
|
||||
#include "InfrastOfficeTask.h"
|
||||
#include "InfrastDormTask.h"
|
||||
#include "DronesForShamareTaskPlugin.h"
|
||||
#include "ReplenishOriginiumShardTaskPlugin.h"
|
||||
|
||||
asst::InfrastTask::InfrastTask(AsstCallback callback, void* callback_arg)
|
||||
: PackageTask(callback, callback_arg, TaskType),
|
||||
@@ -27,6 +28,8 @@ asst::InfrastTask::InfrastTask(AsstCallback callback, void* callback_arg)
|
||||
{
|
||||
m_infrast_begin_task_ptr->set_tasks({ "InfrastBegin" });
|
||||
m_trade_task_ptr->regiseter_plugin<DronesForShamareTaskPlugin>();
|
||||
m_replenish_task_ptr = m_mfg_task_ptr->regiseter_plugin<ReplenishOriginiumShardTaskPlugin>();
|
||||
|
||||
m_subtasks.emplace_back(m_infrast_begin_task_ptr);
|
||||
}
|
||||
|
||||
@@ -97,5 +100,8 @@ bool asst::InfrastTask::set_params(const json::value& params)
|
||||
m_office_task_ptr->set_mood_threshold(threshold);
|
||||
m_dorm_task_ptr->set_mood_threshold(threshold);
|
||||
|
||||
bool replenish = params.get("replenish", false);
|
||||
m_replenish_task_ptr->set_enable(replenish);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ namespace asst
|
||||
class InfrastReceptionTask;
|
||||
class InfrastOfficeTask;
|
||||
class InfrastDormTask;
|
||||
class ReplenishOriginiumShardTaskPlugin;
|
||||
|
||||
class InfrastTask final : public PackageTask
|
||||
{
|
||||
@@ -34,5 +35,6 @@ namespace asst
|
||||
std::shared_ptr<InfrastReceptionTask> m_reception_task_ptr = nullptr;
|
||||
std::shared_ptr<InfrastOfficeTask> m_office_task_ptr = nullptr;
|
||||
std::shared_ptr<InfrastDormTask> m_dorm_task_ptr = nullptr;
|
||||
std::shared_ptr<ReplenishOriginiumShardTaskPlugin> m_replenish_task_ptr = nullptr;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
<ClInclude Include="MallTask.h" />
|
||||
<ClInclude Include="PackageTask.h" />
|
||||
<ClInclude Include="RecruitTask.h" />
|
||||
<ClInclude Include="ReplenishOriginiumShardTaskPlugin.h" />
|
||||
<ClInclude Include="RoguelikeBattleTaskPlugin.h" />
|
||||
<ClInclude Include="CreditShopImageAnalyzer.h" />
|
||||
<ClInclude Include="DronesForShamareTaskPlugin.h" />
|
||||
@@ -101,6 +102,7 @@
|
||||
<ClCompile Include="MallTask.cpp" />
|
||||
<ClCompile Include="PackageTask.cpp" />
|
||||
<ClCompile Include="RecruitTask.cpp" />
|
||||
<ClCompile Include="ReplenishOriginiumShardTaskPlugin.cpp" />
|
||||
<ClCompile Include="RoguelikeBattleTaskPlugin.cpp" />
|
||||
<ClCompile Include="CreditShopImageAnalyzer.cpp" />
|
||||
<ClCompile Include="CreditShoppingTask.cpp" />
|
||||
|
||||
@@ -303,6 +303,9 @@
|
||||
<ClInclude Include="RoguelikeSkillSelectionImageAnalyzer.h">
|
||||
<Filter>头文件\ImageAnalyzer\Final</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ReplenishOriginiumShardTaskPlugin.h">
|
||||
<Filter>头文件\Task\Plugin</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Controller.cpp">
|
||||
@@ -503,6 +506,9 @@
|
||||
<ClCompile Include="RoguelikeSkillSelectionImageAnalyzer.cpp">
|
||||
<Filter>源文件\ImageAnalyzer\Final</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="ReplenishOriginiumShardTaskPlugin.cpp">
|
||||
<Filter>源文件\Task\Plugin</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\resource\config.json">
|
||||
|
||||
25
src/MeoAssistant/ReplenishOriginiumShardTaskPlugin.cpp
Normal file
25
src/MeoAssistant/ReplenishOriginiumShardTaskPlugin.cpp
Normal file
@@ -0,0 +1,25 @@
|
||||
#include "ReplenishOriginiumShardTaskPlugin.h"
|
||||
|
||||
#include "ProcessTask.h"
|
||||
|
||||
bool asst::ReplenishOriginiumShardTaskPlugin::verify(AsstMsg msg, const json::value& details) const
|
||||
{
|
||||
if (msg != AsstMsg::SubTaskExtraInfo
|
||||
|| details.get("subtask", std::string()) != "InfrastMfgTask") {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (details.at("what").as_string() == "ProductOfFacility"
|
||||
&& details.at("details").at("product").as_string() == "OriginStone") {
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool asst::ReplenishOriginiumShardTaskPlugin::_run()
|
||||
{
|
||||
ProcessTask task(*this, { "ReplenishToMax" });
|
||||
return task.run();
|
||||
}
|
||||
18
src/MeoAssistant/ReplenishOriginiumShardTaskPlugin.h
Normal file
18
src/MeoAssistant/ReplenishOriginiumShardTaskPlugin.h
Normal file
@@ -0,0 +1,18 @@
|
||||
#pragma once
|
||||
#include "AbstractTaskPlugin.h"
|
||||
|
||||
namespace asst
|
||||
{
|
||||
// 制造站“源石碎片”自动补货任务插件
|
||||
class ReplenishOriginiumShardTaskPlugin : public AbstractTaskPlugin
|
||||
{
|
||||
public:
|
||||
using AbstractTaskPlugin::AbstractTaskPlugin;
|
||||
virtual ~ReplenishOriginiumShardTaskPlugin() = default;
|
||||
|
||||
virtual bool verify(AsstMsg msg, const json::value& details) const override;
|
||||
|
||||
private:
|
||||
virtual bool _run() override;
|
||||
};
|
||||
}
|
||||
@@ -73,8 +73,6 @@ bool asst::StageDropsTaskPlugin::_run()
|
||||
}
|
||||
drop_info_callback();
|
||||
|
||||
auto& opt = Resrc.cfg().get_options();
|
||||
|
||||
if (m_enable_penguid) {
|
||||
auto upload_future = std::async(
|
||||
std::launch::async,
|
||||
|
||||
Reference in New Issue
Block a user