mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-18 10:10:45 +08:00
refactor: 重写 肉鸽运行时修改任务内容 的代码
refactor: 重写 肉鸽烧水
This commit is contained in:
@@ -9035,115 +9035,81 @@
|
||||
"Sami@Roguelike@FromIntegratedStrategies"
|
||||
]
|
||||
},
|
||||
"Roguelike@LastReward_normal_mode": {
|
||||
"algorithm": "JustReturn",
|
||||
"postDelay": 0,
|
||||
"Roguelike@LastReward_default": {
|
||||
"template": "empty.png",
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"roi": [
|
||||
171,
|
||||
151,
|
||||
935,
|
||||
533
|
||||
],
|
||||
"next": [
|
||||
"Roguelike@LastRewardConfirm"
|
||||
]
|
||||
},
|
||||
"Roguelike@LastReward_mode4": {
|
||||
"algorithm": "JustReturn",
|
||||
"postDelay": 2147483647
|
||||
"Roguelike@LastReward_restart": {
|
||||
"template": "empty.png",
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"roi": [
|
||||
171,
|
||||
151,
|
||||
935,
|
||||
533
|
||||
],
|
||||
"next": []
|
||||
},
|
||||
"Roguelike@LastReward_stop": {
|
||||
"template": "empty.png",
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"roi": [
|
||||
171,
|
||||
151,
|
||||
935,
|
||||
533
|
||||
],
|
||||
"next": [
|
||||
"RoguelikeControlTaskPlugin-Stop"
|
||||
]
|
||||
},
|
||||
"Roguelike@LastReward": {
|
||||
"Doc": "base_task",
|
||||
"Doc2": "你的上一次探索突破了至少两层困难,这一次可以获得更多支援——热水壶",
|
||||
"template": "empty.png",
|
||||
"Doc": "你的上一次探索突破了至少两层困难,这一次可以获得更多支援——热水壶",
|
||||
"baseTask": "Roguelike@LastReward_default",
|
||||
"templThreshold": 0.7,
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"roi": [
|
||||
171,
|
||||
151,
|
||||
935,
|
||||
533
|
||||
],
|
||||
"next": [
|
||||
"Roguelike@LastRewardConfirm"
|
||||
]
|
||||
"template": "empty.png"
|
||||
},
|
||||
"Roguelike@LastReward2": {
|
||||
"Doc": "base_task",
|
||||
"Doc2": "你的上一次探索突破了至少两层困难,这一次可以获得更多支援—— 5 源石锭",
|
||||
"template": "empty.png",
|
||||
"Doc": "你的上一次探索突破了至少两层困难,这一次可以获得更多支援—— 5 源石锭",
|
||||
"baseTask": "Roguelike@LastReward_default",
|
||||
"templThreshold": 0.7,
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"roi": [
|
||||
171,
|
||||
151,
|
||||
935,
|
||||
533
|
||||
],
|
||||
"next": [
|
||||
"Roguelike@LastRewardConfirm"
|
||||
]
|
||||
"template": "empty.png"
|
||||
},
|
||||
"Roguelike@LastReward3": {
|
||||
"Doc": "base_task",
|
||||
"Doc2": "你的上一次探索突破了至少两层困难,这一次可以获得更多支援—— 3 目标生命",
|
||||
"template": "empty.png",
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"roi": [
|
||||
171,
|
||||
151,
|
||||
935,
|
||||
533
|
||||
],
|
||||
"next": [
|
||||
"Roguelike@LastRewardConfirm"
|
||||
]
|
||||
"Doc": "你的上一次探索突破了至少两层困难,这一次可以获得更多支援—— 3 目标生命",
|
||||
"baseTask": "Roguelike@LastReward_default",
|
||||
"template": "empty.png"
|
||||
},
|
||||
"Roguelike@LastReward4": {
|
||||
"Doc": "base_task",
|
||||
"Doc2": "你的上一次探索突破了至少两层困难,这一次可以获得更多支援—— 2 希望",
|
||||
"template": "empty.png",
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"roi": [
|
||||
171,
|
||||
151,
|
||||
935,
|
||||
533
|
||||
],
|
||||
"next": [
|
||||
"Roguelike@LastRewardConfirm"
|
||||
]
|
||||
"Doc": "你的上一次探索突破了至少两层困难,这一次可以获得更多支援—— 2 希望",
|
||||
"baseTask": "Roguelike@LastReward_default",
|
||||
"template": "empty.png"
|
||||
},
|
||||
"Roguelike@LastRewardRand": {
|
||||
"Doc": "你的上一次探索突破了至少两层困难,这一次可以获得更多支援—— 问号",
|
||||
"baseTask": "Roguelike@LastReward_default",
|
||||
"template": "empty.png"
|
||||
},
|
||||
"Roguelike@LastRewardConfirm": {
|
||||
"Doc": "base_task",
|
||||
"baseTask": "Roguelike@LastReward_default",
|
||||
"template": "empty.png",
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"roi": [
|
||||
171,
|
||||
151,
|
||||
935,
|
||||
533
|
||||
],
|
||||
"next": [
|
||||
"Roguelike@RolesDefault",
|
||||
"Roguelike@CloseCollection"
|
||||
]
|
||||
},
|
||||
"Roguelike@LastRewardRand": {
|
||||
"Doc": "base_task",
|
||||
"Doc2": "你的上一次探索突破了至少两层困难,这一次可以获得更多支援—— 问号",
|
||||
"template": "empty.png",
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"roi": [
|
||||
171,
|
||||
151,
|
||||
935,
|
||||
533
|
||||
],
|
||||
"next": [
|
||||
"Roguelike@LastRewardConfirm"
|
||||
]
|
||||
},
|
||||
"Roguelike@MissionCompletedFlag": {
|
||||
"roi": [
|
||||
0,
|
||||
@@ -9183,25 +9149,11 @@
|
||||
"Roguelike@ClickToStartPointAfterFailed"
|
||||
]
|
||||
},
|
||||
"Roguelike@LevelName": {
|
||||
"algorithm": "OcrDetect",
|
||||
"cache": false,
|
||||
"text": [],
|
||||
"roi": [
|
||||
593,
|
||||
0,
|
||||
186,
|
||||
129
|
||||
],
|
||||
"next": [
|
||||
"Roguelike@NextLevel"
|
||||
]
|
||||
},
|
||||
"Roguelike@LevelName_normal_mode": {
|
||||
"Roguelike@LevelName_default": {
|
||||
"algorithm": "OcrDetect",
|
||||
"cache": false,
|
||||
"text": [
|
||||
"随便写点什么防止卡住,Leave some words here to avoid stucking"
|
||||
"_SKIP_"
|
||||
],
|
||||
"roi": [
|
||||
593,
|
||||
@@ -9216,7 +9168,9 @@
|
||||
"Roguelike@LevelName_mode4": {
|
||||
"algorithm": "OcrDetect",
|
||||
"cache": false,
|
||||
"text": [],
|
||||
"text": [
|
||||
"_SKIP_"
|
||||
],
|
||||
"roi": [
|
||||
593,
|
||||
0,
|
||||
@@ -9224,7 +9178,7 @@
|
||||
129
|
||||
],
|
||||
"next": [
|
||||
"Roguelike@NextLevel"
|
||||
"Roguelike@ExitThenAbandon_mode4"
|
||||
]
|
||||
},
|
||||
"Roguelike@Stages": {
|
||||
@@ -10325,21 +10279,9 @@
|
||||
},
|
||||
"Phantom@Roguelike@DropsFlag": {
|
||||
"template": "Roguelike@DropsFlag.png",
|
||||
"next": [
|
||||
"Phantom@Roguelike@GetDrops#next",
|
||||
"Phantom@Roguelike@GetDropCompleted",
|
||||
"Phantom@Roguelike@GetDropLeave",
|
||||
"Phantom@Roguelike@Stages#next",
|
||||
"Phantom@Roguelike@StageEncounterOptions#next",
|
||||
"Phantom@Roguelike@StageEncounterSpecialClose",
|
||||
"Phantom@Roguelike@EnterAfterRecruit",
|
||||
"Phantom@Roguelike@StageTraderLeave",
|
||||
"Phantom@Roguelike@CloseEvent",
|
||||
"Phantom@Roguelike@DialogSkip",
|
||||
"Phantom@Roguelike@RecruitOther"
|
||||
]
|
||||
"baseTask": "Phantom@Roguelike@DropsFlag_default"
|
||||
},
|
||||
"Phantom@Roguelike@DropsFlag_normal_mode": {
|
||||
"Phantom@Roguelike@DropsFlag_default": {
|
||||
"template": "Roguelike@DropsFlag.png",
|
||||
"next": [
|
||||
"Phantom@Roguelike@GetDrops#next",
|
||||
@@ -10420,16 +10362,16 @@
|
||||
"Phantom@Roguelike@LastReward2": {},
|
||||
"Phantom@Roguelike@LastReward3": {},
|
||||
"Phantom@Roguelike@LastReward4": {},
|
||||
"Phantom@Roguelike@LastRewardConfirm": {},
|
||||
"Phantom@Roguelike@LastRewardRand": {},
|
||||
"Phantom@Roguelike@LastRewardConfirm": {},
|
||||
"Phantom@Roguelike@MissionFailedFlag": {},
|
||||
"Phantom@Roguelike@MissionFailedFlag2": {},
|
||||
"Phantom@Roguelike@LevelName": {
|
||||
"baseTask": "Phantom@Roguelike@LevelName_default"
|
||||
},
|
||||
"Phantom@Roguelike@LevelName_mode4": {
|
||||
"text": [
|
||||
"故土残躯"
|
||||
],
|
||||
"next": [
|
||||
"Phantom@Roguelike@ExitThenAbandon_mode4"
|
||||
]
|
||||
},
|
||||
"Phantom@Roguelike@Stages": {
|
||||
@@ -10758,21 +10700,9 @@
|
||||
},
|
||||
"Mizuki@Roguelike@DropsFlag": {
|
||||
"template": "Roguelike@DropsFlag.png",
|
||||
"next": [
|
||||
"Mizuki@Roguelike@GetDrops#next",
|
||||
"Mizuki@Roguelike@GetDropCompleted",
|
||||
"Mizuki@Roguelike@GetDropLeave",
|
||||
"Mizuki@Roguelike@Stages#next",
|
||||
"Mizuki@Roguelike@StageEncounterOptions#next",
|
||||
"Mizuki@Roguelike@StageEncounterSpecialClose",
|
||||
"Mizuki@Roguelike@EnterAfterRecruit",
|
||||
"Mizuki@Roguelike@StageTraderLeave",
|
||||
"Mizuki@Roguelike@CloseEvent",
|
||||
"Mizuki@Roguelike@DialogSkip",
|
||||
"Mizuki@Roguelike@RecruitOther"
|
||||
]
|
||||
"baseTask": "Mizuki@Roguelike@DropsFlag_default"
|
||||
},
|
||||
"Mizuki@Roguelike@DropsFlag_normal_mode": {
|
||||
"Mizuki@Roguelike@DropsFlag_default": {
|
||||
"template": "Roguelike@DropsFlag.png",
|
||||
"next": [
|
||||
"Mizuki@Roguelike@GetDrops#next",
|
||||
@@ -10908,8 +10838,8 @@
|
||||
"Mizuki@Roguelike@LastReward2": {},
|
||||
"Mizuki@Roguelike@LastReward3": {},
|
||||
"Mizuki@Roguelike@LastReward4": {},
|
||||
"Mizuki@Roguelike@LastRewardConfirm": {},
|
||||
"Mizuki@Roguelike@LastRewardRand": {},
|
||||
"Mizuki@Roguelike@LastRewardConfirm": {},
|
||||
"Mizuki@Roguelike@MapObject": {
|
||||
"action": "DoNothing",
|
||||
"cache": false,
|
||||
@@ -10925,13 +10855,13 @@
|
||||
},
|
||||
"Mizuki@Roguelike@MissionFailedFlag": {},
|
||||
"Mizuki@Roguelike@MissionFailedFlag2": {},
|
||||
"Mizuki@Roguelike@LevelName": {
|
||||
"baseTask": "Mizuki@Roguelike@LevelName_default"
|
||||
},
|
||||
"Mizuki@Roguelike@LevelName_mode4": {
|
||||
"text": [
|
||||
"波涛略地",
|
||||
"绀碧摇篮"
|
||||
],
|
||||
"next": [
|
||||
"Mizuki@Roguelike@ExitThenAbandon_mode4"
|
||||
]
|
||||
},
|
||||
"Mizuki@Roguelike@Stages": {
|
||||
@@ -11285,22 +11215,9 @@
|
||||
},
|
||||
"Sami@Roguelike@DropsFlag": {
|
||||
"template": "Roguelike@DropsFlag.png",
|
||||
"next": [
|
||||
"Sami@Roguelike@GetDrops#next",
|
||||
"Sami@Roguelike@GetDropCompleted",
|
||||
"Sami@Roguelike@GetDropLeave",
|
||||
"Sami@Roguelike@NextLevel",
|
||||
"Sami@Roguelike@Stages#next",
|
||||
"Sami@Roguelike@StageEncounterOptions#next",
|
||||
"Sami@Roguelike@StageEncounterSpecialClose",
|
||||
"Sami@Roguelike@EnterAfterRecruit",
|
||||
"Sami@Roguelike@StageTraderLeave",
|
||||
"Sami@Roguelike@CloseEvent",
|
||||
"Sami@Roguelike@DialogSkip",
|
||||
"Sami@Roguelike@RecruitOther"
|
||||
]
|
||||
"baseTask": "Sami@Roguelike@DropsFlag_default"
|
||||
},
|
||||
"Sami@Roguelike@DropsFlag_normal_mode": {
|
||||
"Sami@Roguelike@DropsFlag_default": {
|
||||
"template": "Roguelike@DropsFlag.png",
|
||||
"next": [
|
||||
"Sami@Roguelike@GetDrops#next",
|
||||
@@ -11450,8 +11367,8 @@
|
||||
"Sami@Roguelike@LastReward2": {},
|
||||
"Sami@Roguelike@LastReward3": {},
|
||||
"Sami@Roguelike@LastReward4": {},
|
||||
"Sami@Roguelike@LastRewardConfirm": {},
|
||||
"Sami@Roguelike@LastRewardRand": {},
|
||||
"Sami@Roguelike@LastRewardConfirm": {},
|
||||
"Sami@Roguelike@MapObject": {
|
||||
"action": "DoNothing",
|
||||
"cache": false,
|
||||
@@ -11467,13 +11384,13 @@
|
||||
},
|
||||
"Sami@Roguelike@MissionFailedFlag": {},
|
||||
"Sami@Roguelike@MissionFailedFlag2": {},
|
||||
"Sami@Roguelike@LevelName": {
|
||||
"baseTask": "Sami@Roguelike@LevelName_default"
|
||||
},
|
||||
"Sami@Roguelike@LevelName_mode4": {
|
||||
"text": [
|
||||
"昧明冻土",
|
||||
"深埋迷境"
|
||||
],
|
||||
"next": [
|
||||
"Sami@Roguelike@ExitThenAbandon_mode4"
|
||||
]
|
||||
},
|
||||
"Sami@Roguelike@Stages": {
|
||||
|
||||
@@ -91,41 +91,31 @@ bool asst::RoguelikeTask::set_params(const json::value& params)
|
||||
|
||||
if (mode == 4) {
|
||||
// 设置ocr第三层层名,设置识别到退出重进
|
||||
Task.get<OcrTaskInfo>(theme + "@Roguelike@LevelName")->text =
|
||||
Task.get<OcrTaskInfo>(theme + "@Roguelike@LevelName_mode4")->text;
|
||||
Task.get(theme + "@Roguelike@LevelName")->next = Task.get(theme + "@Roguelike@LevelName_mode4")->next;
|
||||
if (!start_with_elite_two) {
|
||||
// 获得热水壶和演讲时长延时
|
||||
Task.get(theme + "@Roguelike@LastReward")->post_delay =
|
||||
Task.get(theme + "@Roguelike@LastReward_mode4")->post_delay;
|
||||
Task.get(theme + "@Roguelike@LastReward4")->post_delay =
|
||||
Task.get(theme + "@Roguelike@LastReward_mode4")->post_delay;
|
||||
}
|
||||
Task.set_task_base(theme + "@Roguelike@LevelName", theme + "@Roguelike@LevelName_mode4");
|
||||
// 获得热水壶和演讲时停止肉鸽
|
||||
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@LastReward4", last_reward_stop_or_continue);
|
||||
// 获得其他奖励时重开
|
||||
Task.get(theme + "@Roguelike@LastReward2")->next = Task.get(theme + "@Roguelike@LastReward_mode4")->next;
|
||||
Task.get(theme + "@Roguelike@LastReward3")->next = Task.get(theme + "@Roguelike@LastReward_mode4")->next;
|
||||
Task.get(theme + "@Roguelike@LastRewardRand")->next = Task.get(theme + "@Roguelike@LastReward_mode4")->next;
|
||||
Task.set_task_base("Roguelike@LastReward2", "Roguelike@LastReward_restart");
|
||||
Task.set_task_base("Roguelike@LastReward3", "Roguelike@LastReward_restart");
|
||||
Task.set_task_base("Roguelike@LastRewardRand", "Roguelike@LastReward_restart");
|
||||
}
|
||||
else {
|
||||
// 重置需要ocr的层名和next任务
|
||||
Task.get<OcrTaskInfo>(theme + "@Roguelike@LevelName")->text =
|
||||
Task.get<OcrTaskInfo>(theme + "@Roguelike@LevelName_normal_mode")->text;
|
||||
Task.get(theme + "@Roguelike@LevelName")->next = Task.get(theme + "@Roguelike@LevelName_normal_mode")->next;
|
||||
// 重置获得热水壶和演讲延时
|
||||
Task.get(theme + "@Roguelike@LastReward")->post_delay =
|
||||
Task.get(theme + "@Roguelike@LastReward_normal_mode")->post_delay;
|
||||
Task.get(theme + "@Roguelike@LastReward4")->post_delay =
|
||||
Task.get(theme + "@Roguelike@LastReward_normal_mode")->post_delay;
|
||||
// 重置其他奖励next
|
||||
Task.get(theme + "@Roguelike@LastReward2")->next = Task.get(theme + "@Roguelike@LastReward_normal_mode")->next;
|
||||
Task.get(theme + "@Roguelike@LastReward3")->next = Task.get(theme + "@Roguelike@LastReward_normal_mode")->next;
|
||||
Task.get(theme + "@Roguelike@LastRewardRand")->next =
|
||||
Task.get(theme + "@Roguelike@LastReward_normal_mode")->next;
|
||||
Task.set_task_base(theme + "@Roguelike@LevelName", theme + "@Roguelike@LevelName_default");
|
||||
// 重置开局奖励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");
|
||||
}
|
||||
|
||||
if (mode == 1) {
|
||||
// 战斗后奖励只拿钱
|
||||
Task.get(theme + "@Roguelike@DropsFlag")->next = Task.get(theme + "@Roguelike@DropsFlag_mode1")->next;
|
||||
Task.set_task_base(theme + "@Roguelike@DropsFlag", theme + "@Roguelike@DropsFlag_mode1");
|
||||
// 刷源石锭模式是否进入第二层
|
||||
bool investment_enter_second_floor = params.get("investment_enter_second_floor", true);
|
||||
if (investment_enter_second_floor) {
|
||||
@@ -139,7 +129,7 @@ bool asst::RoguelikeTask::set_params(const json::value& params)
|
||||
}
|
||||
else {
|
||||
// 重置战斗后奖励next
|
||||
Task.get(theme + "@Roguelike@DropsFlag")->next = Task.get(theme + "@Roguelike@DropsFlag_normal_mode")->next;
|
||||
Task.set_task_base(theme + "@Roguelike@DropsFlag", theme + "@Roguelike@DropsFlag_default");
|
||||
m_roguelike_task_ptr->set_times_limit("StageTraderLeave", INT_MAX);
|
||||
m_roguelike_task_ptr->set_times_limit("StageTraderLeaveConfirm", INT_MAX);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user