mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-19 02:23:01 +08:00
perf: 肉鸽主题从Status分离
This commit is contained in:
@@ -25,24 +25,25 @@ asst::RoguelikeTask::RoguelikeTask(const AsstCallback& callback, Assistant* inst
|
||||
LogTraceFunction;
|
||||
|
||||
m_roguelike_task_ptr->set_ignore_error(true);
|
||||
m_roguelike_task_ptr->register_plugin<RoguelikeFormationTaskPlugin>();
|
||||
m_roguelike_task_ptr->register_plugin<RoguelikeControlTaskPlugin>();
|
||||
m_roguelike_task_ptr->register_plugin<RoguelikeResetTaskPlugin>();
|
||||
m_formation_plugin_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeFormationTaskPlugin>();
|
||||
m_control_plugin_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeControlTaskPlugin>();
|
||||
m_reset_plugin_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeResetTaskPlugin>();
|
||||
m_debug_plugin_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeDebugTaskPlugin>();
|
||||
m_shopping_plugin_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeShoppingTaskPlugin>();
|
||||
m_shopping_plugin_ptr->set_retry_times(0);
|
||||
|
||||
m_debug_task_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeDebugTaskPlugin>();
|
||||
m_roguelike_task_ptr->register_plugin<RoguelikeShoppingTaskPlugin>()->set_retry_times(0);
|
||||
m_custom_start_plugin_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeCustomStartTaskPlugin>();
|
||||
m_battle_plugin_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeBattleTaskPlugin>();
|
||||
m_battle_plugin_ptr->set_retry_times(0).set_ignore_error(true);
|
||||
m_recruit_plugin_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeRecruitTaskPlugin>();
|
||||
m_recruit_plugin_ptr->set_retry_times(2).set_ignore_error(true);
|
||||
m_skill_plugin_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeSkillSelectionTaskPlugin>();
|
||||
m_skill_plugin_ptr->set_retry_times(2).set_ignore_error(true);
|
||||
m_stage_encounter_plugin_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeStageEncounterTaskPlugin>();
|
||||
m_stage_encounter_plugin_ptr->set_retry_times(0);
|
||||
|
||||
m_custom_start_task_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeCustomStartTaskPlugin>();
|
||||
m_battle_task_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeBattleTaskPlugin>();
|
||||
m_battle_task_ptr->set_retry_times(0).set_ignore_error(true);
|
||||
m_recruit_task_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeRecruitTaskPlugin>();
|
||||
m_recruit_task_ptr->set_retry_times(2).set_ignore_error(true);
|
||||
m_skill_task_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeSkillSelectionTaskPlugin>();
|
||||
m_skill_task_ptr->set_retry_times(2).set_ignore_error(true);
|
||||
m_roguelike_task_ptr->register_plugin<RoguelikeStageEncounterTaskPlugin>()->set_retry_times(0);
|
||||
|
||||
m_roguelike_task_ptr->register_plugin<RoguelikeLastRewardTaskPlugin>();
|
||||
m_roguelike_task_ptr->register_plugin<RoguelikeDifficultySelectionTaskPlugin>();
|
||||
m_last_reward_plugin_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeLastRewardTaskPlugin>();
|
||||
m_difficulty_selection_plugin_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeDifficultySelectionTaskPlugin>();
|
||||
|
||||
// 这个任务如果卡住会放弃当前的肉鸽并重新开始,所以多添加一点。先这样凑合用
|
||||
for (int i = 0; i != 100; ++i) {
|
||||
@@ -65,7 +66,19 @@ bool asst::RoguelikeTask::set_params(const json::value& params)
|
||||
Log.error(__FUNCTION__, "status() is null");
|
||||
return false;
|
||||
}
|
||||
status()->set_properties(Status::RoguelikeTheme, theme);
|
||||
|
||||
m_battle_plugin_ptr->set_roguelike_theme(theme);
|
||||
m_control_plugin_ptr->set_roguelike_theme(theme);
|
||||
m_custom_start_plugin_ptr->set_roguelike_theme(theme);
|
||||
m_debug_plugin_ptr->set_roguelike_theme(theme);
|
||||
m_difficulty_selection_plugin_ptr->set_roguelike_theme(theme);
|
||||
m_formation_plugin_ptr->set_roguelike_theme(theme);
|
||||
m_last_reward_plugin_ptr->set_roguelike_theme(theme);
|
||||
m_recruit_plugin_ptr->set_roguelike_theme(theme);
|
||||
m_reset_plugin_ptr->set_roguelike_theme(theme);
|
||||
m_shopping_plugin_ptr->set_roguelike_theme(theme);
|
||||
m_skill_plugin_ptr->set_roguelike_theme(theme);
|
||||
m_stage_encounter_plugin_ptr->set_roguelike_theme(theme);
|
||||
m_roguelike_task_ptr->set_tasks({ theme + "@Roguelike@Begin" });
|
||||
|
||||
// 0 - 刷经验,尽可能稳定地打更多层数,不期而遇采用激进策略
|
||||
@@ -80,7 +93,7 @@ bool asst::RoguelikeTask::set_params(const json::value& params)
|
||||
return false;
|
||||
}
|
||||
|
||||
m_debug_task_ptr->set_enable(mode != 1);
|
||||
m_debug_plugin_ptr->set_enable(mode != 1);
|
||||
|
||||
// 是否凹指定干员开局直升
|
||||
bool start_with_elite_two = params.get("start_with_elite_two", false);
|
||||
@@ -158,19 +171,19 @@ bool asst::RoguelikeTask::set_params(const json::value& params)
|
||||
}
|
||||
|
||||
if (auto squad_opt = params.find<std::string>("squad"); squad_opt && !squad_opt->empty()) {
|
||||
m_custom_start_task_ptr->set_custom(RoguelikeCustomType::Squad, *squad_opt);
|
||||
m_custom_start_plugin_ptr->set_custom(RoguelikeCustomType::Squad, *squad_opt);
|
||||
}
|
||||
if (auto roles_opt = params.find<std::string>("roles"); roles_opt && !roles_opt->empty()) {
|
||||
m_custom_start_task_ptr->set_custom(RoguelikeCustomType::Roles, *roles_opt);
|
||||
m_custom_start_plugin_ptr->set_custom(RoguelikeCustomType::Roles, *roles_opt);
|
||||
}
|
||||
if (auto core_char_opt = params.find<std::string>("core_char"); core_char_opt && !core_char_opt->empty()) {
|
||||
m_custom_start_task_ptr->set_custom(RoguelikeCustomType::CoreChar, *core_char_opt);
|
||||
m_custom_start_plugin_ptr->set_custom(RoguelikeCustomType::CoreChar, *core_char_opt);
|
||||
}
|
||||
if (auto use_support_opt = params.find<bool>("use_support"); use_support_opt) {
|
||||
m_custom_start_task_ptr->set_custom(RoguelikeCustomType::UseSupport, *use_support_opt ? "1" : "0");
|
||||
m_custom_start_plugin_ptr->set_custom(RoguelikeCustomType::UseSupport, *use_support_opt ? "1" : "0");
|
||||
}
|
||||
if (auto use_nonfriend_opt = params.find<bool>("use_nonfriend_support"); use_nonfriend_opt) {
|
||||
m_custom_start_task_ptr->set_custom(RoguelikeCustomType::UseNonfriendSupport, *use_nonfriend_opt ? "1" : "0");
|
||||
m_custom_start_plugin_ptr->set_custom(RoguelikeCustomType::UseNonfriendSupport, *use_nonfriend_opt ? "1" : "0");
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user