mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-18 18:20:39 +08:00
feat: 肉鸽烧水时低难度有热水无效,高难度烧到水才停止
主要针对第一次进入肉鸽
This commit is contained in:
@@ -118,24 +118,12 @@ bool asst::RoguelikeTask::set_params(const json::value& params)
|
||||
Task.set_task_base(strategy_task, strategy_task_with_mode);
|
||||
}
|
||||
|
||||
if (mode == 4) {
|
||||
// 获得热水壶和演讲时停止肉鸽(凹直升则继续),获得其他奖励时重开
|
||||
std::string last_reward_stop_or_continue =
|
||||
start_with_elite_two ? "Roguelike@LastReward_default" : "Roguelike@LastReward_stop";
|
||||
Task.set_task_base("Roguelike@LastReward", last_reward_stop_or_continue);
|
||||
Task.set_task_base("Roguelike@LastReward2", "Roguelike@LastReward_restart");
|
||||
Task.set_task_base("Roguelike@LastReward3", "Roguelike@LastReward_restart");
|
||||
Task.set_task_base("Roguelike@LastReward4", last_reward_stop_or_continue);
|
||||
Task.set_task_base("Roguelike@LastRewardRand", "Roguelike@LastReward_restart");
|
||||
}
|
||||
else {
|
||||
// 重置开局奖励 next,获得任意奖励均继续
|
||||
Task.set_task_base("Roguelike@LastReward", "Roguelike@LastReward_default");
|
||||
Task.set_task_base("Roguelike@LastReward2", "Roguelike@LastReward_default");
|
||||
Task.set_task_base("Roguelike@LastReward3", "Roguelike@LastReward_default");
|
||||
Task.set_task_base("Roguelike@LastReward4", "Roguelike@LastReward_default");
|
||||
Task.set_task_base("Roguelike@LastRewardRand", "Roguelike@LastReward_default");
|
||||
}
|
||||
// 重置开局奖励 next,获得任意奖励均继续;烧水相关逻辑在 RoguelikeLastRewardTaskPlugin
|
||||
Task.set_task_base("Roguelike@LastReward", "Roguelike@LastReward_default");
|
||||
Task.set_task_base("Roguelike@LastReward2", "Roguelike@LastReward_default");
|
||||
Task.set_task_base("Roguelike@LastReward3", "Roguelike@LastReward_default");
|
||||
Task.set_task_base("Roguelike@LastReward4", "Roguelike@LastReward_default");
|
||||
Task.set_task_base("Roguelike@LastRewardRand", "Roguelike@LastReward_default");
|
||||
|
||||
if (mode == 1) {
|
||||
// 战斗后奖励只拿钱
|
||||
|
||||
@@ -37,8 +37,6 @@ bool asst::RoguelikeDifficultySelectionTaskPlugin::_run()
|
||||
|
||||
// 当前难度
|
||||
std::string difficulty = status()->get_properties(Status::RoguelikeDifficulty).value();
|
||||
// 需要开局凹直升
|
||||
std::string start_with_elite_two = status()->get_properties(Status::RoguelikeStartWithEliteTwo).value();
|
||||
if (m_roguelike_theme != "Phantom" && mode == "4") {
|
||||
if (difficulty == "max") {
|
||||
ProcessTask(*this, { m_roguelike_theme + "@Roguelike@ChooseDifficulty_Hardest" }).run();
|
||||
|
||||
@@ -23,16 +23,16 @@ bool asst::RoguelikeLastRewardTaskPlugin::verify(AsstMsg msg, const json::value&
|
||||
}
|
||||
if (task_view == "Roguelike@StartExplore") {
|
||||
// 标记开始行动
|
||||
m_need_change_difficulty_higher = false;
|
||||
m_is_next_hardest = false;
|
||||
return false;
|
||||
}
|
||||
if (task_view == "Roguelike@ExitThenAbandon") {
|
||||
// 开始行动过且没有打完三层,重开低难度
|
||||
return !m_need_change_difficulty_higher;
|
||||
return !m_is_next_hardest;
|
||||
}
|
||||
if (task_view == "Roguelike@ExitThenAbandon_ToHardest") {
|
||||
// 打完低难度的三层,重开高难度烧水壶
|
||||
m_need_change_difficulty_higher = true;
|
||||
m_is_next_hardest = true;
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
@@ -56,12 +56,29 @@ bool asst::RoguelikeLastRewardTaskPlugin::_run()
|
||||
Task.set_task_base(stages_task_name, strategy_task_name);
|
||||
}
|
||||
|
||||
// 需要开局凹直升
|
||||
bool start_with_elite_two =
|
||||
status()->get_properties(Status::RoguelikeStartWithEliteTwo).value() == std::to_string(true);
|
||||
if (m_roguelike_theme != "Phantom" && mode == "4") {
|
||||
if (m_need_change_difficulty_higher) {
|
||||
if (m_is_next_hardest) {
|
||||
status()->set_properties(Status::RoguelikeDifficulty, "max");
|
||||
// 获得热水壶和演讲时停止肉鸽(凹直升则继续),获得其他奖励时重开
|
||||
std::string last_reward_stop_or_continue =
|
||||
start_with_elite_two ? "Roguelike@LastReward_default" : "Roguelike@LastReward_stop";
|
||||
Task.set_task_base("Roguelike@LastReward", last_reward_stop_or_continue);
|
||||
Task.set_task_base("Roguelike@LastReward2", "Roguelike@LastReward_restart");
|
||||
Task.set_task_base("Roguelike@LastReward3", "Roguelike@LastReward_restart");
|
||||
Task.set_task_base("Roguelike@LastReward4", last_reward_stop_or_continue);
|
||||
Task.set_task_base("Roguelike@LastRewardRand", "Roguelike@LastReward_restart");
|
||||
}
|
||||
else {
|
||||
status()->set_properties(Status::RoguelikeDifficulty, "0");
|
||||
// 重置开局奖励 next,获得任意奖励均继续
|
||||
Task.set_task_base("Roguelike@LastReward", "Roguelike@LastReward_default");
|
||||
Task.set_task_base("Roguelike@LastReward2", "Roguelike@LastReward_default");
|
||||
Task.set_task_base("Roguelike@LastReward3", "Roguelike@LastReward_default");
|
||||
Task.set_task_base("Roguelike@LastReward4", "Roguelike@LastReward_default");
|
||||
Task.set_task_base("Roguelike@LastRewardRand", "Roguelike@LastReward_default");
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -17,6 +17,6 @@ namespace asst
|
||||
virtual bool _run() override;
|
||||
|
||||
private:
|
||||
mutable bool m_need_change_difficulty_higher = false;
|
||||
mutable bool m_is_next_hardest = false; // 下一局是否是高难烧水局
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user