perf: 自动在刷理智第一次执行时调整连战次数为1 (#7210)

perf: 自动在刷理智第一次执行时调整连战次数为1
This commit is contained in:
status102
2023-11-13 18:28:26 +08:00
committed by GitHub
9 changed files with 91 additions and 0 deletions

View File

@@ -3948,7 +3948,43 @@
"StartButton1"
]
},
"FightSeries-Default-1": {
"action": "DoNothing",
"roi": [
945,
580,
100,
50
]
},
"FightSeries-Icon": {
"action": "ClickSelf",
"roi": [
945,
580,
100,
50
],
"next": [
"FightSeries-List-1"
]
},
"FightSeries-List": {
"template": "empty.png",
"action": "ClickSelf",
"roi": [
950,
180,
100,
400
]
},
"FightSeries-List-1": {
"baseTask": "FightSeries-List",
"template": "FightSeries-List-1.png"
},
"StartButton1": {
"doc": "绑定插件调整连战次数",
"algorithm": "OcrDetect",
"action": "ClickSelf",
"text": [

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -69,6 +69,7 @@
<ClInclude Include="InstHelper.h" />
<ClInclude Include="Task\Experiment\CombatRecordRecognitionTask.h" />
<ClInclude Include="Task\Experiment\SingleStepBattleProcessTask.h" />
<ClInclude Include="Task\Fight\FightTimesPlugin.h" />
<ClInclude Include="Task\Fight\MedicineCounterPlugin.h" />
<ClInclude Include="Task\Fight\SanityBeforeStagePlugin.h" />
<ClInclude Include="Task\Fight\SideStoryReopenTask.h" />
@@ -242,6 +243,7 @@
<ClCompile Include="InstHelper.cpp" />
<ClCompile Include="Task\Experiment\CombatRecordRecognitionTask.cpp" />
<ClCompile Include="Task\Experiment\SingleStepBattleProcessTask.cpp" />
<ClCompile Include="Task\Fight\FightTimesPlugin.cpp" />
<ClCompile Include="Task\Fight\MedicineCounterPlugin.cpp" />
<ClCompile Include="Task\Fight\SanityBeforeStagePlugin.cpp" />
<ClCompile Include="Task\Fight\SideStoryReopenTask.cpp" />

View File

@@ -669,6 +669,9 @@
<ClInclude Include="Task\Miscellaneous\ScreenshotTaskPlugin.h">
<Filter>Source\Task\Miscellaneous</Filter>
</ClInclude>
<ClInclude Include="Task\Fight\FightTimesPlugin.h">
<Filter>Source\Task\Fight</Filter>
</ClInclude>
<ClInclude Include="Task\Roguelike\AbstractRoguelikeTaskPlugin.h">
<Filter>Source\Task\Roguelike</Filter>
</ClInclude>
@@ -1119,6 +1122,9 @@
<Filter>Source\Task\Fight</Filter>
</ClCompile>
<ClCompile Include="Controller\MaaThriftController.h" />
<ClCompile Include="Task\Fight\FightTimesPlugin.cpp">
<Filter>Source\Task\Fight</Filter>
</ClInclude>
<ClCompile Include="Task\Roguelike\AbstractRoguelikeTaskPlugin.cpp">
<Filter>Source\Task\Roguelike</Filter>
</ClCompile>

View File

@@ -0,0 +1,25 @@
#include "FightTimesPlugin.h"
#include "Task/ProcessTask.h"
bool asst::FightTimesPlugin::verify(AsstMsg msg, const json::value& details) const
{
if (msg != AsstMsg::SubTaskStart || details.get("subtask", std::string()) != "ProcessTask") {
return false;
}
return !inited && details.at("details").at("task").as_string().ends_with("StartButton1");
}
bool asst::FightTimesPlugin::_run()
{
// 目前也可以做成subtask但是给以后糊屎留个地方
bool result = ProcessTask(*this, { "FightSeries-Default-1", "FightSeries-Icon" }).run();
if (!result) {
return false;
}
inited = true;
return true;
}

View File

@@ -0,0 +1,20 @@
#pragma once
#include "Task/AbstractTaskPlugin.h"
namespace asst
{
class FightTimesPlugin : public AbstractTaskPlugin
{
public:
using AbstractTaskPlugin::AbstractTaskPlugin;
virtual ~FightTimesPlugin() override = default;
virtual bool verify(AsstMsg msg, const json::value& details) const override;
protected:
virtual bool _run() override;
private:
// 是否成功初始化为1次
bool inited = false;
};
}

View File

@@ -4,6 +4,7 @@
#include "Config/TaskData.h"
#include "Task/Fight/DrGrandetTaskPlugin.h"
#include "Task/Fight/FightTimesPlugin.h"
#include "Task/Fight/MedicineCounterPlugin.h"
#include "Task/Fight/SanityBeforeStagePlugin.h"
#include "Task/Fight/SideStoryReopenTask.h"
@@ -50,6 +51,7 @@ asst::FightTask::FightTask(const AsstCallback& callback, Assistant* inst)
m_dr_grandet_task_plugin_ptr = m_fight_task_ptr->register_plugin<DrGrandetTaskPlugin>();
m_dr_grandet_task_plugin_ptr->set_enable(false);
m_fight_task_ptr->register_plugin<SanityBeforeStagePlugin>();
m_fight_task_ptr->register_plugin<FightTimesPlugin>();
m_medicine_plugin = m_fight_task_ptr->register_plugin<MedicineCounterPlugin>();
m_subtasks.emplace_back(m_start_up_task_ptr);