mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-17 10:00:44 +08:00
perf: 迁移部分参数设置
This commit is contained in:
@@ -80,7 +80,8 @@ asst::RoguelikeTask::RoguelikeTask(const AsstCallback& callback, Assistant* inst
|
||||
m_roguelike_task_ptr->register_plugin<RoguelikeFoldartalGainTaskPlugin>(m_config_ptr);
|
||||
m_roguelike_task_ptr->register_plugin<RoguelikeFoldartalUseTaskPlugin>(m_config_ptr);
|
||||
m_roguelike_task_ptr->register_plugin<RoguelikeFoldartalStartTaskPlugin>(m_config_ptr);
|
||||
m_roguelike_task_ptr->register_plugin<RoguelikeCollapsalParadigmTaskPlugin>(m_config_ptr);
|
||||
m_cp_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeCollapsalParadigmTaskPlugin>(
|
||||
m_config_ptr);
|
||||
|
||||
// 这个任务如果卡住会放弃当前的肉鸽并重新开始,所以多添加亿点。先这样凑合用
|
||||
for (int i = 0; i != 999; ++i) {
|
||||
@@ -220,7 +221,7 @@ bool asst::RoguelikeTask::set_params(const json::value& params)
|
||||
// 是否检查坍缩范式,非CLP_PDS模式下默认为False, CLP_PDS模式下默认为True
|
||||
m_config_ptr->set_check_clp_pds(
|
||||
params.get("check_collapsal_paradigms", mode == RoguelikeMode::CLP_PDS));
|
||||
m_config_ptr->set_double_check_clp_pds(
|
||||
m_cp_ptr->set_double_check_clp_pds(
|
||||
params.get("double_check_collapsal_paradigms", mode == RoguelikeMode::CLP_PDS));
|
||||
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ namespace asst
|
||||
class RoguelikeInvestTaskPlugin;
|
||||
class RoguelikeDebugTaskPlugin;
|
||||
class RoguelikeCustomStartTaskPlugin;
|
||||
class RoguelikeCollapsalParadigmTaskPlugin;
|
||||
|
||||
class RoguelikeTask : public InterfaceTask
|
||||
{
|
||||
@@ -25,6 +26,6 @@ namespace asst
|
||||
std::shared_ptr<RoguelikeInvestTaskPlugin> m_invest_ptr = nullptr;
|
||||
std::shared_ptr<RoguelikeDebugTaskPlugin> m_debug_ptr = nullptr;
|
||||
std::shared_ptr<RoguelikeCustomStartTaskPlugin> m_custom_ptr = nullptr;
|
||||
|
||||
std::shared_ptr<RoguelikeCollapsalParadigmTaskPlugin> m_cp_ptr = nullptr;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -107,8 +107,6 @@ namespace asst
|
||||
// ------------------ 坍缩范式 ------------------
|
||||
void set_check_clp_pds(bool value) { m_check_clp_pds = value; }
|
||||
bool get_check_clp_pds() const { return m_check_clp_pds; }
|
||||
void set_double_check_clp_pds(bool value) { m_double_check_clp_pds = value; }
|
||||
bool get_double_check_clp_pds() const { return m_double_check_clp_pds; }
|
||||
|
||||
private:
|
||||
// ------------------ 密文板 ------------------
|
||||
@@ -119,8 +117,8 @@ namespace asst
|
||||
bool m_use_foldartal = true; // 是否使用密文板
|
||||
|
||||
// ------------------ 坍缩范式 ------------------
|
||||
bool m_check_clp_pds = false; // 是否检查坍缩范式
|
||||
bool m_double_check_clp_pds = false; // 是否反复检查坍缩范式
|
||||
bool m_check_clp_pds = false; // 是否检查坍缩范式
|
||||
|
||||
|
||||
/* 以下为局内数据,每次重置 */
|
||||
public:
|
||||
|
||||
@@ -83,7 +83,8 @@ bool asst::RoguelikeCollapsalParadigmTaskPlugin::verify(
|
||||
}
|
||||
}
|
||||
|
||||
if (!m_config->get_need_check_panel() && m_config->get_double_check_clp_pds() && msg == AsstMsg::SubTaskCompleted
|
||||
if (msg == AsstMsg::SubTaskCompleted && !m_config->get_need_check_panel()
|
||||
&& m_config->get_double_check_clp_pds()
|
||||
&& m_panel_triggers.find(task_name) == m_panel_triggers.end()) {
|
||||
m_config->set_need_check_panel(true);
|
||||
m_verification_check = true;
|
||||
|
||||
@@ -1,64 +1,66 @@
|
||||
#pragma once
|
||||
#include "../AbstractRoguelikeTaskPlugin.h"
|
||||
#include "Common/AsstTypes.h"
|
||||
#include "Vision/OCRer.h"
|
||||
#include "Config/TaskData.h"
|
||||
#include "Vision/OCRer.h"
|
||||
|
||||
namespace asst
|
||||
{
|
||||
class RoguelikeCollapsalParadigmTaskPlugin : public AbstractRoguelikeTaskPlugin
|
||||
class RoguelikeCollapsalParadigmTaskPlugin : public AbstractRoguelikeTaskPlugin
|
||||
{
|
||||
public:
|
||||
RoguelikeCollapsalParadigmTaskPlugin(
|
||||
const AsstCallback& callback,
|
||||
Assistant* inst,
|
||||
std::string_view task_chain,
|
||||
std::shared_ptr<RoguelikeConfig> config);
|
||||
// using AbstractRoguelikeTaskPlugin::AbstractRoguelikeTaskPlugin;
|
||||
virtual ~RoguelikeCollapsalParadigmTaskPlugin() override = default;
|
||||
virtual bool verify(AsstMsg msg, const json::value& details) const override;
|
||||
|
||||
static bool enabled(std::shared_ptr<RoguelikeConfig> config)
|
||||
{
|
||||
public:
|
||||
RoguelikeCollapsalParadigmTaskPlugin(
|
||||
const AsstCallback& callback,
|
||||
Assistant* inst,
|
||||
std::string_view task_chain,
|
||||
std::shared_ptr<RoguelikeConfig> config);
|
||||
|
||||
// using AbstractRoguelikeTaskPlugin::AbstractRoguelikeTaskPlugin;
|
||||
virtual ~RoguelikeCollapsalParadigmTaskPlugin() override = default;
|
||||
return config->get_theme() == RoguelikeTheme::Sami && config->get_check_clp_pds();
|
||||
}
|
||||
|
||||
static bool enabled(std::shared_ptr<RoguelikeConfig> config) {
|
||||
return config->get_theme() == RoguelikeTheme::Sami && config->get_check_clp_pds();
|
||||
}
|
||||
public:
|
||||
void set_double_check_clp_pds(bool value) { m_double_check_clp_pds = value; }
|
||||
bool check_collapsal_paradigm_banner();
|
||||
|
||||
public:
|
||||
virtual bool verify(AsstMsg msg, const json::value& details) const override;
|
||||
protected:
|
||||
virtual bool _run() override;
|
||||
|
||||
bool check_collapsal_paradigm_banner();
|
||||
bool new_zone() const;
|
||||
|
||||
protected:
|
||||
virtual bool _run() override;
|
||||
bool check_collapsal_paradigm_panel();
|
||||
|
||||
bool new_zone() const;
|
||||
void toggle_collapsal_status_panel();
|
||||
void exit_then_restart();
|
||||
void exit_then_stop();
|
||||
void wait_for_loading(unsigned int millisecond = 0);
|
||||
void wait_for_stage(unsigned int millisecond = 0);
|
||||
void clp_pd_callback(std::string cur, int deepen_or_weaken = 0, std::string prev = "");
|
||||
|
||||
bool check_collapsal_paradigm_panel();
|
||||
private:
|
||||
mutable bool m_check_banner = false;
|
||||
mutable bool m_check_panel = false;
|
||||
mutable bool m_verification_check = false;
|
||||
|
||||
void toggle_collapsal_status_panel();
|
||||
void exit_then_restart();
|
||||
void exit_then_stop();
|
||||
void wait_for_loading(unsigned int millisecond = 0);
|
||||
void wait_for_stage(unsigned int millisecond = 0);
|
||||
void clp_pd_callback(std::string cur, int deepen_or_weaken = 0, std::string prev = "");
|
||||
std::string m_deepen_text;
|
||||
|
||||
private:
|
||||
mutable bool m_check_banner = false;
|
||||
mutable bool m_check_panel = false;
|
||||
mutable bool m_verification_check = false;
|
||||
std::unordered_set<std::string> m_banner_triggers_start;
|
||||
|
||||
std::string m_deepen_text;
|
||||
std::unordered_set<std::string> m_banner_triggers_completed;
|
||||
|
||||
std::unordered_set<std::string> m_banner_triggers_start;
|
||||
mutable std::string m_zone;
|
||||
|
||||
std::unordered_set<std::string> m_banner_triggers_completed;
|
||||
Rect m_roi; // 屏幕上方居中区域,点击以检查坍缩状态
|
||||
Point m_swipe_begin; // 滑动起点
|
||||
Point m_swipe_end; // 滑动终点
|
||||
|
||||
mutable std::string m_zone;
|
||||
std::unordered_set<std::string> m_panel_triggers;
|
||||
std::unordered_map<std::string, std::string> m_zone_dict;
|
||||
|
||||
Rect m_roi; // 屏幕上方居中区域,点击以检查坍缩状态
|
||||
Point m_swipe_begin; // 滑动起点
|
||||
Point m_swipe_end; // 滑动终点
|
||||
|
||||
std::unordered_set<std::string> m_panel_triggers;
|
||||
std::unordered_map<std::string, std::string> m_zone_dict;
|
||||
};
|
||||
bool m_double_check_clp_pds = false; // 是否反复检查坍缩范式
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user