diff --git a/resource/tasks.json b/resource/tasks.json
index 9de9a065af..4fc9076cc0 100644
--- a/resource/tasks.json
+++ b/resource/tasks.json
@@ -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": [
@@ -15939,4 +15975,4 @@
"Stop"
]
}
-}
\ No newline at end of file
+}
diff --git a/resource/template/FightSeries-Default-1.png b/resource/template/FightSeries-Default-1.png
new file mode 100644
index 0000000000..1ec13473bf
Binary files /dev/null and b/resource/template/FightSeries-Default-1.png differ
diff --git a/resource/template/FightSeries-Icon.png b/resource/template/FightSeries-Icon.png
new file mode 100644
index 0000000000..d4f84e6581
Binary files /dev/null and b/resource/template/FightSeries-Icon.png differ
diff --git a/resource/template/FightSeries-List-1.png b/resource/template/FightSeries-List-1.png
new file mode 100644
index 0000000000..33c73cfa56
Binary files /dev/null and b/resource/template/FightSeries-List-1.png differ
diff --git a/src/MaaCore/MaaCore.vcxproj b/src/MaaCore/MaaCore.vcxproj
index c746c2a24c..7c39e24bb0 100644
--- a/src/MaaCore/MaaCore.vcxproj
+++ b/src/MaaCore/MaaCore.vcxproj
@@ -69,6 +69,7 @@
+
@@ -241,6 +242,7 @@
+
diff --git a/src/MaaCore/MaaCore.vcxproj.filters b/src/MaaCore/MaaCore.vcxproj.filters
index 74e958498e..701c886351 100644
--- a/src/MaaCore/MaaCore.vcxproj.filters
+++ b/src/MaaCore/MaaCore.vcxproj.filters
@@ -558,9 +558,6 @@
Source\Controller
-
- Source\Controller
-
Source\Controller
@@ -672,6 +669,9 @@
Source\Task\Miscellaneous
+
+ Source\Task\Fight
+
@@ -1118,5 +1118,9 @@
Source\Task\Fight
+
+
+ Source\Task\Fight
+
-
+
\ No newline at end of file
diff --git a/src/MaaCore/Task/Fight/FightTimesPlugin.cpp b/src/MaaCore/Task/Fight/FightTimesPlugin.cpp
new file mode 100644
index 0000000000..48e570a4f1
--- /dev/null
+++ b/src/MaaCore/Task/Fight/FightTimesPlugin.cpp
@@ -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;
+}
diff --git a/src/MaaCore/Task/Fight/FightTimesPlugin.h b/src/MaaCore/Task/Fight/FightTimesPlugin.h
new file mode 100644
index 0000000000..5f70a0033f
--- /dev/null
+++ b/src/MaaCore/Task/Fight/FightTimesPlugin.h
@@ -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;
+ };
+}
diff --git a/src/MaaCore/Task/Interface/FightTask.cpp b/src/MaaCore/Task/Interface/FightTask.cpp
index b834178e4e..6819854c2f 100644
--- a/src/MaaCore/Task/Interface/FightTask.cpp
+++ b/src/MaaCore/Task/Interface/FightTask.cpp
@@ -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();
m_dr_grandet_task_plugin_ptr->set_enable(false);
m_fight_task_ptr->register_plugin();
+ m_fight_task_ptr->register_plugin();
m_medicine_plugin = m_fight_task_ptr->register_plugin();
m_subtasks.emplace_back(m_start_up_task_ptr);