mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-18 02:10:21 +08:00
perf: 简化RoguelikeTask set_param (#9905)
* perf: 简化RoguelikeTask set_param * fix: return value
This commit is contained in:
@@ -130,6 +130,22 @@ bool asst::RoguelikeTask::set_params(const json::value& params)
|
||||
m_roguelike_task_ptr->set_times_limit(theme + "@Roguelike@StageDreadfulFoe-5", INT_MAX);
|
||||
}
|
||||
|
||||
if (theme == RoguelikeTheme::Sami) {
|
||||
if (auto opt = params.find<json::array>("start_foldartal_list"); opt) {
|
||||
std::vector<std::string> list;
|
||||
for (const auto& name : *opt) {
|
||||
if (std::string name_str = name.as_string(); !name_str.empty()) {
|
||||
list.emplace_back(name_str);
|
||||
}
|
||||
}
|
||||
/* 由于插件 load_param返回值仅决定自身是否启用,二次读取参数进行验证 */
|
||||
if (list.empty()) {
|
||||
Log.error(__FUNCTION__, "| Empty start_foldartal_list");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_roguelike_task_ptr->set_times_limit(theme + "@Roguelike@StartExplore", params.get("starts_count", INT_MAX));
|
||||
// 通过 exceededNext 禁用投资系统,进入商店购买逻辑
|
||||
m_roguelike_task_ptr->set_times_limit(
|
||||
@@ -139,30 +155,6 @@ bool asst::RoguelikeTask::set_params(const json::value& params)
|
||||
"StageTraderRefreshWithDice",
|
||||
params.get("refresh_trader_with_dice", false) ? INT_MAX : 0);
|
||||
|
||||
// =========================== 萨米主题专用参数 ===========================
|
||||
|
||||
if (theme == RoguelikeTheme::Sami) {
|
||||
// 是否生活队凹开局板子
|
||||
m_foldartal_start_ptr->set_start_foldartal(params.contains("start_foldartal_list"));
|
||||
|
||||
if (auto opt = params.find<json::array>("start_foldartal_list"); opt) {
|
||||
std::vector<std::string> list;
|
||||
for (const auto& name : *opt) {
|
||||
if (std::string name_str = name.as_string(); !name_str.empty()) {
|
||||
list.emplace_back(name_str);
|
||||
}
|
||||
}
|
||||
if (list.empty()) {
|
||||
Log.error(__FUNCTION__, "| Empty start_foldartal_list");
|
||||
return false;
|
||||
}
|
||||
m_foldartal_start_ptr->set_start_foldartal_list(std::move(list));
|
||||
}
|
||||
|
||||
// 是否使用密文版, 非CLP_PDS模式下默认为True, CLP_PDS模式下默认为False
|
||||
m_foldartal_use_ptr->set_use_foldartal(params.get("use_foldartal", mode != RoguelikeMode::CLP_PDS));
|
||||
}
|
||||
|
||||
m_invest_ptr->set_control_plugin_ptr(m_control_ptr);
|
||||
|
||||
for (const auto& plugin : m_roguelike_task_ptr->get_plugins()) {
|
||||
|
||||
Reference in New Issue
Block a user