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);