mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-16 09:50:40 +08:00
feat: 新增复刻活动时,连续刷普通1-9关 (异形UI暂不支持,例如愚人号),支持上报至企鹅物流
This commit is contained in:
@@ -3,11 +3,11 @@
|
||||
#include <utility>
|
||||
|
||||
#include "Config/TaskData.h"
|
||||
|
||||
#include "Task/Fight/DrGrandetTaskPlugin.h"
|
||||
#include "Task/Fight/SanityBeforeStagePlugin.h"
|
||||
#include "Task/Fight/SideStoryReopenTask.h"
|
||||
#include "Task/Fight/StageDropsTaskPlugin.h"
|
||||
#include "Task/Fight/StageNavigationTask.h"
|
||||
#include "Task/Fight/SanityBeforeStagePlugin.h"
|
||||
#include "Task/ProcessTask.h"
|
||||
#include "Utils/Logger.hpp"
|
||||
#include "Utils/Ranges.hpp"
|
||||
@@ -16,7 +16,8 @@ asst::FightTask::FightTask(const AsstCallback& callback, Assistant* inst)
|
||||
: InterfaceTask(callback, inst, TaskType),
|
||||
m_start_up_task_ptr(std::make_shared<ProcessTask>(m_callback, m_inst, TaskType)),
|
||||
m_stage_navigation_task_ptr(std::make_shared<StageNavigationTask>(m_callback, m_inst, TaskType)),
|
||||
m_fight_task_ptr(std::make_shared<ProcessTask>(m_callback, m_inst, TaskType))
|
||||
m_fight_task_ptr(std::make_shared<ProcessTask>(m_callback, m_inst, TaskType)),
|
||||
m_sidestory_reopen_task_ptr(std::make_shared<SideStoryReopenTask>(m_callback, m_inst, TaskType))
|
||||
{
|
||||
LogTraceFunction;
|
||||
|
||||
@@ -35,6 +36,7 @@ asst::FightTask::FightTask(const AsstCallback& callback, Assistant* inst)
|
||||
.set_retry_times(5);
|
||||
|
||||
m_stage_navigation_task_ptr->set_enable(false).set_retry_times(0);
|
||||
m_sidestory_reopen_task_ptr->set_enable(false);
|
||||
|
||||
// 开始战斗任务
|
||||
m_fight_task_ptr->set_tasks({ "FightBegin" })
|
||||
@@ -52,6 +54,7 @@ asst::FightTask::FightTask(const AsstCallback& callback, Assistant* inst)
|
||||
m_subtasks.emplace_back(m_start_up_task_ptr);
|
||||
m_subtasks.emplace_back(m_stage_navigation_task_ptr);
|
||||
m_subtasks.emplace_back(m_fight_task_ptr);
|
||||
m_subtasks.emplace_back(m_sidestory_reopen_task_ptr);
|
||||
}
|
||||
|
||||
bool asst::FightTask::set_params(const json::value& params)
|
||||
@@ -81,15 +84,28 @@ bool asst::FightTask::set_params(const json::value& params)
|
||||
if (stage.empty()) {
|
||||
m_start_up_task_ptr->set_tasks({ "LastOrCurBattleBegin" }).set_times_limit("GoLastBattle", INT_MAX);
|
||||
m_stage_navigation_task_ptr->set_enable(false);
|
||||
m_sidestory_reopen_task_ptr->set_enable(false);
|
||||
}
|
||||
else {
|
||||
m_start_up_task_ptr->set_tasks({ "StageBegin" }).set_times_limit("GoLastBattle", 0);
|
||||
if (!m_stage_navigation_task_ptr->set_stage_name(stage)) {
|
||||
if (stage.starts_with("SSReopen-") && stage.length() == 11) {
|
||||
m_sidestory_reopen_task_ptr->set_sidestory_name(stage.substr(9));
|
||||
m_sidestory_reopen_task_ptr->set_enable(true);
|
||||
m_stage_navigation_task_ptr->set_enable(false);
|
||||
}
|
||||
else if (m_stage_navigation_task_ptr->set_stage_name(stage)) {
|
||||
m_sidestory_reopen_task_ptr->set_enable(false);
|
||||
m_stage_navigation_task_ptr->set_enable(true);
|
||||
}
|
||||
else {
|
||||
m_stage_navigation_task_ptr->set_enable(false);
|
||||
m_sidestory_reopen_task_ptr->set_enable(false);
|
||||
Log.error("Cannot set stage", stage);
|
||||
return false;
|
||||
}
|
||||
m_stage_navigation_task_ptr->set_enable(true);
|
||||
}
|
||||
m_start_up_task_ptr->set_enable(!m_sidestory_reopen_task_ptr->get_enable());
|
||||
m_fight_task_ptr->set_enable(!m_sidestory_reopen_task_ptr->get_enable());
|
||||
m_stage_drops_plugin_ptr->set_server(server);
|
||||
}
|
||||
|
||||
@@ -102,5 +118,12 @@ bool asst::FightTask::set_params(const json::value& params)
|
||||
m_stage_drops_plugin_ptr->set_enable_penguid(enable_penguid);
|
||||
m_stage_drops_plugin_ptr->set_penguin_id(std::move(penguin_id));
|
||||
|
||||
m_sidestory_reopen_task_ptr->set_medicine(medicine);
|
||||
m_sidestory_reopen_task_ptr->set_expiring_medicine(expiring_medicine);
|
||||
m_sidestory_reopen_task_ptr->set_stone(stone);
|
||||
m_sidestory_reopen_task_ptr->set_enable_penguid(enable_penguid);
|
||||
m_sidestory_reopen_task_ptr->set_penguin_id(std::move(penguin_id));
|
||||
m_sidestory_reopen_task_ptr->set_server(server);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user