feat: 肉鸽烧水时低难度有热水无效,高难度烧到水才停止

主要针对第一次进入肉鸽
This commit is contained in:
zzyyyl
2023-10-03 03:49:01 +08:00
parent 3d80d2ee79
commit 0e259023f2
4 changed files with 28 additions and 25 deletions

View File

@@ -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) {
// 战斗后奖励只拿钱

View File

@@ -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();

View File

@@ -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;

View File

@@ -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; // 下一局是否是高难烧水局
};
}