mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-19 18:47:55 +08:00
rft: 调整肉鸽选择烧水奖励任务链,重新将Roguelike@LastRewardConfirm并入主任务链 (#11689)
- close #11688, close #11683
This commit is contained in:
@@ -7144,14 +7144,16 @@
|
||||
},
|
||||
"Roguelike@LastReward": {
|
||||
"Doc": "你的上一次探索突破了至少两层困难,这一次可以获得更多支援——热水壶",
|
||||
"baseTask": "Roguelike@LastReward_default",
|
||||
"template": "empty.png"
|
||||
"template": "empty.png",
|
||||
"action": "ClickSelf",
|
||||
"roi": [225, 199, 829, 241],
|
||||
"next": []
|
||||
},
|
||||
"Roguelike@LastReward-EnterPoint": {
|
||||
"Doc": "插件挂载,选择期望的奖励,template为所有LastReward集合,进入插件后重新匹配,有就Confirm,没有就Abandon",
|
||||
"template": "empty.png",
|
||||
"roi": [225, 199, 829, 241],
|
||||
"next": ["Roguelike@RolesDefault", "Roguelike@CloseCollection", "Roguelike@StartExplore"]
|
||||
"next": ["Roguelike@LastRewardConfirm", "Roguelike@AbandonConfirm#next"]
|
||||
},
|
||||
"Roguelike@LastReward-Strategy": {
|
||||
"Doc": "未指定期望时,默认选择策略",
|
||||
@@ -7159,36 +7161,30 @@
|
||||
},
|
||||
"Roguelike@LastReward2": {
|
||||
"Doc": "你的上一次探索突破了至少两层困难,这一次可以获得更多支援—— 5 源石锭",
|
||||
"baseTask": "Roguelike@LastReward_default",
|
||||
"baseTask": "Roguelike@LastReward",
|
||||
"template": "empty.png"
|
||||
},
|
||||
"Roguelike@LastReward3": {
|
||||
"Doc": "你的上一次探索突破了至少两层困难,这一次可以获得更多支援—— 3 目标生命",
|
||||
"baseTask": "Roguelike@LastReward_default",
|
||||
"baseTask": "Roguelike@LastReward",
|
||||
"template": "empty.png"
|
||||
},
|
||||
"Roguelike@LastReward4": {
|
||||
"Doc": "你的上一次探索突破了至少两层困难,这一次可以获得更多支援—— 2 希望",
|
||||
"baseTask": "Roguelike@LastReward_default",
|
||||
"baseTask": "Roguelike@LastReward",
|
||||
"template": "empty.png"
|
||||
},
|
||||
"Roguelike@LastRewardConfirm": {
|
||||
"baseTask": "Roguelike@LastReward_default",
|
||||
"action": "ClickSelf",
|
||||
"template": "empty.png",
|
||||
"roi": [171, 474, 935, 205],
|
||||
"next": []
|
||||
"next": ["Roguelike@RolesDefault", "Roguelike@CloseCollection"]
|
||||
},
|
||||
"Roguelike@LastRewardRand": {
|
||||
"Doc": "你的上一次探索突破了至少两层困难,这一次可以获得更多支援—— 问号",
|
||||
"baseTask": "Roguelike@LastReward_default",
|
||||
"baseTask": "Roguelike@LastReward",
|
||||
"template": "empty.png"
|
||||
},
|
||||
"Roguelike@LastReward_default": {
|
||||
"template": "empty.png",
|
||||
"action": "ClickSelf",
|
||||
"roi": [225, 199, 829, 241],
|
||||
"next": ["Roguelike@LastRewardConfirm"]
|
||||
},
|
||||
"Roguelike@MainThemes": {
|
||||
"next": ["Roguelike", "Roguelike@ChooseDifficulty", "Roguelike@StartExplore", "Roguelike@Abandon"]
|
||||
},
|
||||
@@ -8594,11 +8590,11 @@
|
||||
"Mizuki@Roguelike@LastReward4": {},
|
||||
"Mizuki@Roguelike@LastReward5": {
|
||||
"Doc": "你的上一次探索突破了至少两层困难,这一次可以获得更多支援—— 1 钥匙",
|
||||
"baseTask": "Mizuki@Roguelike@LastReward_default"
|
||||
"baseTask": "Mizuki@Roguelike@LastReward"
|
||||
},
|
||||
"Mizuki@Roguelike@LastReward6": {
|
||||
"Doc": "你的上一次探索突破了至少两层困难,这一次可以获得更多支援—— 1 骰子",
|
||||
"baseTask": "Mizuki@Roguelike@LastReward_default"
|
||||
"baseTask": "Mizuki@Roguelike@LastReward"
|
||||
},
|
||||
"Mizuki@Roguelike@LastRewardConfirm": {},
|
||||
"Mizuki@Roguelike@LastRewardRand": {},
|
||||
@@ -10636,7 +10632,7 @@
|
||||
"Sarkaz@Roguelike@LastReward4": {},
|
||||
"Sarkaz@Roguelike@LastReward5": {
|
||||
"Doc": "你的上一次探索突破了至少两层困难,这一次可以获得更多支援—— 2 构想",
|
||||
"baseTask": "Sarkaz@Roguelike@LastReward_default"
|
||||
"baseTask": "Sarkaz@Roguelike@LastReward"
|
||||
},
|
||||
"Sarkaz@Roguelike@LastRewardConfirm": {},
|
||||
"Sarkaz@Roguelike@LastRewardRand": {},
|
||||
|
||||
@@ -31,23 +31,6 @@ bool asst::RoguelikeConfig::verify_and_load_params(const json::value& params)
|
||||
if (mode == RoguelikeMode::Collectible) {
|
||||
m_collectible_mode_shopping = params.get("collectible_mode_shopping", false);
|
||||
|
||||
if (auto select_list = params.find<json::object>("collectible_mode_start_list"); select_list) {
|
||||
RoguelikeStartSelect list;
|
||||
list.hot_water = select_list->get("hot_water", false);
|
||||
list.shield = select_list->get("shield", false);
|
||||
list.ingot = select_list->get("ingot", false);
|
||||
list.hope = select_list->get("hope", false);
|
||||
list.random = select_list->get("random", false);
|
||||
if (m_theme == RoguelikeTheme::Mizuki) {
|
||||
list.key = select_list->get("key", false);
|
||||
list.dice = select_list->get("dice", false);
|
||||
}
|
||||
else if (m_theme == RoguelikeTheme::Sarkaz) {
|
||||
list.ideas = select_list->get("ideas", false);
|
||||
}
|
||||
m_start_select = list;
|
||||
}
|
||||
|
||||
if (m_theme == RoguelikeTheme::Sami) {
|
||||
m_first_floor_foldartal = !params.get("first_floor_foldartal", "").empty();
|
||||
}
|
||||
|
||||
@@ -42,18 +42,6 @@ struct RoguelikeOper
|
||||
int level = 0; // 干员等级
|
||||
};
|
||||
|
||||
struct RoguelikeStartSelect // 刷开局模式下凹开局奖励选择
|
||||
{
|
||||
bool hot_water = false; // 热水壶
|
||||
bool shield = false; // 盾;傀影没盾,是生命
|
||||
bool ingot = false; // 源石锭
|
||||
bool hope = false; // 希望
|
||||
bool random = false; // 随机奖励
|
||||
bool key = false; // 钥匙
|
||||
bool dice = false; // 骰子
|
||||
bool ideas = false; // 构想
|
||||
};
|
||||
|
||||
class RoguelikeConfig
|
||||
{
|
||||
public:
|
||||
@@ -101,10 +89,6 @@ public:
|
||||
|
||||
bool get_run_for_collectible() const { return m_run_for_collectible; }
|
||||
|
||||
void set_start_select(const RoguelikeStartSelect& start_select) { m_start_select = start_select; }
|
||||
|
||||
const auto& get_start_select() const { return m_start_select; }
|
||||
|
||||
// ------------------ 投资模式 ------------------
|
||||
void set_invest_with_more_score(bool value) { m_invest_with_more_score = value; }
|
||||
|
||||
@@ -125,8 +109,6 @@ private:
|
||||
bool m_only_start_with_elite_two = false; // 只凹开局干员精二直升且不进行作战
|
||||
bool m_run_for_collectible = false; // 用于 RoguelikeMode::Collectible,判断是否正在烧水
|
||||
|
||||
RoguelikeStartSelect m_start_select; // 开局选择
|
||||
|
||||
// ------------------ 投资模式 ------------------
|
||||
bool m_invest_with_more_score = false; // 投资时招募、购物刷分
|
||||
|
||||
|
||||
@@ -7,6 +7,27 @@
|
||||
#include "Utils/Logger.hpp"
|
||||
#include "Vision/Miscellaneous/PipelineAnalyzer.h"
|
||||
|
||||
bool asst::RoguelikeLastRewardSelectTaskPlugin::load_params(const json::value& params)
|
||||
{
|
||||
if (auto select_list = params.find<json::object>("collectible_mode_start_list"); select_list) {
|
||||
RoguelikeStartSelect list;
|
||||
list.hot_water = select_list->get("hot_water", false);
|
||||
list.shield = select_list->get("shield", false);
|
||||
list.ingot = select_list->get("ingot", false);
|
||||
list.hope = select_list->get("hope", false);
|
||||
list.random = select_list->get("random", false);
|
||||
if (m_config->get_theme() == RoguelikeTheme::Mizuki) {
|
||||
list.key = select_list->get("key", false);
|
||||
list.dice = select_list->get("dice", false);
|
||||
}
|
||||
else if (m_config->get_theme() == RoguelikeTheme::Sarkaz) {
|
||||
list.ideas = select_list->get("ideas", false);
|
||||
}
|
||||
m_start_select = list;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool asst::RoguelikeLastRewardSelectTaskPlugin::verify(AsstMsg msg, const json::value& details) const
|
||||
{
|
||||
if (msg != AsstMsg::SubTaskStart || details.get("subtask", std::string()) != "ProcessTask") {
|
||||
@@ -42,7 +63,6 @@ bool asst::RoguelikeLastRewardSelectTaskPlugin::_run()
|
||||
else if (m_config->get_start_with_elite_two()) {
|
||||
ctrler()->click(ret->rect);
|
||||
sleep(Config.get_options().task_delay);
|
||||
ProcessTask(*this, { m_config->get_theme() + "@Roguelike@LastRewardConfirm" }).run();
|
||||
}
|
||||
else {
|
||||
m_control_ptr->exit_then_stop(false);
|
||||
@@ -61,32 +81,31 @@ std::vector<std::string> asst::RoguelikeLastRewardSelectTaskPlugin::get_select_l
|
||||
}
|
||||
|
||||
std::vector<std::string> list;
|
||||
const auto& select = m_config->get_start_select();
|
||||
if (select.hot_water) {
|
||||
if (m_start_select.hot_water) {
|
||||
list.emplace_back(m_config->get_theme() + "@Roguelike@LastReward"); // 热水壶
|
||||
}
|
||||
if (select.shield) {
|
||||
if (m_start_select.shield) {
|
||||
list.emplace_back(m_config->get_theme() + "@Roguelike@LastReward2"); // 盾;傀影没盾,是生命
|
||||
}
|
||||
if (select.ingot) {
|
||||
if (m_start_select.ingot) {
|
||||
list.emplace_back(m_config->get_theme() + "@Roguelike@LastReward3"); // 源石锭
|
||||
}
|
||||
if (select.hope) {
|
||||
if (m_start_select.hope) {
|
||||
list.emplace_back(m_config->get_theme() + "@Roguelike@LastReward4"); // 希望
|
||||
}
|
||||
|
||||
if (select.random) {
|
||||
if (m_start_select.random) {
|
||||
list.emplace_back(m_config->get_theme() + "@Roguelike@LastRewardRand"); // 随机奖励
|
||||
}
|
||||
if (m_config->get_theme() == RoguelikeTheme::Mizuki) {
|
||||
if (select.key) {
|
||||
if (m_start_select.key) {
|
||||
list.emplace_back("Mizuki@Roguelike@LastReward5"); // 钥匙
|
||||
}
|
||||
if (select.dice) {
|
||||
if (m_start_select.dice) {
|
||||
list.emplace_back("Mizuki@Roguelike@LastReward6"); // 骰子
|
||||
}
|
||||
}
|
||||
else if (m_config->get_theme() == RoguelikeTheme::Sarkaz && select.ideas) {
|
||||
else if (m_config->get_theme() == RoguelikeTheme::Sarkaz && m_start_select.ideas) {
|
||||
list.emplace_back("Sarkaz@Roguelike@LastReward5"); // 构想
|
||||
}
|
||||
|
||||
|
||||
@@ -3,18 +3,32 @@
|
||||
|
||||
namespace asst
|
||||
{
|
||||
|
||||
struct RoguelikeStartSelect // 刷开局模式下凹开局奖励选择
|
||||
{
|
||||
bool hot_water = false; // 热水壶
|
||||
bool shield = false; // 盾;傀影没盾,是生命
|
||||
bool ingot = false; // 源石锭
|
||||
bool hope = false; // 希望
|
||||
bool random = false; // 随机奖励
|
||||
bool key = false; // 钥匙
|
||||
bool dice = false; // 骰子
|
||||
bool ideas = false; // 构想
|
||||
};
|
||||
|
||||
class RoguelikeLastRewardSelectTaskPlugin : public AbstractRoguelikeTaskPlugin
|
||||
{
|
||||
public:
|
||||
using AbstractRoguelikeTaskPlugin::AbstractRoguelikeTaskPlugin;
|
||||
virtual ~RoguelikeLastRewardSelectTaskPlugin() = default;
|
||||
|
||||
virtual bool load_params(const json::value& params) override;
|
||||
virtual bool verify(AsstMsg msg, const json::value& details) const override;
|
||||
|
||||
protected:
|
||||
virtual bool _run() override;
|
||||
|
||||
private:
|
||||
RoguelikeStartSelect m_start_select; // 开局选择
|
||||
std::vector<std::string> get_select_list() const;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user