mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-20 10:57:45 +08:00
feat: 重写烧水
This commit is contained in:
@@ -3742,9 +3742,69 @@
|
||||
"Storage full"
|
||||
]
|
||||
},
|
||||
"Phantom@Roguelike@LevelName_mode4": {
|
||||
"Phantom@Roguelike@StrategyChange_mode0": {
|
||||
"text": [
|
||||
"Homeland Remnants"
|
||||
"_aggressive",
|
||||
"_pragmatic",
|
||||
"_default"
|
||||
],
|
||||
"ocrReplace": [
|
||||
[
|
||||
"Mist-stricken Missteps",
|
||||
"_aggressive"
|
||||
],
|
||||
[
|
||||
"Sunset Courtyard",
|
||||
"_aggressive"
|
||||
],
|
||||
[
|
||||
"Homeland Remnants",
|
||||
"_aggressive"
|
||||
],
|
||||
[
|
||||
"Nightmare's Prelude",
|
||||
"_pragmatic"
|
||||
],
|
||||
[
|
||||
"Blood-soaked Corridor",
|
||||
"_pragmatic"
|
||||
],
|
||||
[
|
||||
"Hall of Desires",
|
||||
"_default"
|
||||
]
|
||||
]
|
||||
},
|
||||
"Phantom@Roguelike@StrategyChange_mode4": {
|
||||
"text": [
|
||||
"_default",
|
||||
"_exit"
|
||||
],
|
||||
"ocrReplace": [
|
||||
[
|
||||
"Mist-stricken Missteps",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"Sunset Courtyard",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"Homeland Remnants",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"Nightmare's Prelude",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"Blood-soaked Corridor",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"Hall of Desires",
|
||||
"_exit"
|
||||
]
|
||||
]
|
||||
},
|
||||
"Phantom@Roguelike@NextLevel": {
|
||||
@@ -3774,10 +3834,77 @@
|
||||
"Mizuki@Roguelike@GetDropSelectRecruit": {
|
||||
"templThreshold": 0.75
|
||||
},
|
||||
"Mizuki@Roguelike@LevelName_mode4": {
|
||||
"Mizuki@Roguelike@StrategyChange_mode0": {
|
||||
"text": [
|
||||
"Raging Billows",
|
||||
"Indigo Cradle"
|
||||
"_aggressive",
|
||||
"_pragmatic",
|
||||
"_default"
|
||||
],
|
||||
"ocrReplace": [
|
||||
[
|
||||
"Sunshine Coast",
|
||||
"_aggressive"
|
||||
],
|
||||
[
|
||||
"Offshore Island",
|
||||
"_aggressive"
|
||||
],
|
||||
[
|
||||
"Raging Billows",
|
||||
"_pragmatic"
|
||||
],
|
||||
[
|
||||
"Secret Hotbed",
|
||||
"_pragmatic"
|
||||
],
|
||||
[
|
||||
"Sacrosant Cave",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"Deep Sea Woodland",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"Indigo Cradle",
|
||||
"_SKIP_"
|
||||
]
|
||||
]
|
||||
},
|
||||
"Mizuki@Roguelike@StrategyChange_mode4": {
|
||||
"text": [
|
||||
"_default",
|
||||
"_exit"
|
||||
],
|
||||
"ocrReplace": [
|
||||
[
|
||||
"Sunshine Coast",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"Offshore Island",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"Raging Billows",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"Secret Hotbed",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"Sacrosant Cave",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"Deep Sea Woodland",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"Indigo Cradle",
|
||||
"_exit"
|
||||
]
|
||||
]
|
||||
},
|
||||
"Mizuki@Roguelike@NextLevel": {
|
||||
|
||||
@@ -3636,15 +3636,68 @@
|
||||
"예치금잔액최대달성"
|
||||
]
|
||||
},
|
||||
"Phantom@Roguelike@LevelName_mode4": {
|
||||
"Phantom@Roguelike@StrategyChange_mode0": {
|
||||
"ocrReplace": [
|
||||
[
|
||||
"안개의기로",
|
||||
"_aggressive"
|
||||
],
|
||||
[
|
||||
"석양의정원",
|
||||
"_aggressive"
|
||||
],
|
||||
[
|
||||
"고향의잔.+$",
|
||||
"고향의잔해"
|
||||
],
|
||||
[
|
||||
"고향의잔해",
|
||||
"_aggressive"
|
||||
],
|
||||
[
|
||||
"악몽의시작",
|
||||
"_pragmatic"
|
||||
],
|
||||
[
|
||||
"붉은달회랑",
|
||||
"_pragmatic"
|
||||
],
|
||||
[
|
||||
"욕망의로비",
|
||||
"_default"
|
||||
]
|
||||
]
|
||||
},
|
||||
"Phantom@Roguelike@StrategyChange_mode4": {
|
||||
"ocrReplace": [
|
||||
[
|
||||
"안개의기로",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"석양의정원",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"고향의잔.+$",
|
||||
"고향의잔해"
|
||||
],
|
||||
[
|
||||
"고향의잔해",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"악몽의시작",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"붉은달회랑",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"욕망의로비",
|
||||
"_exit"
|
||||
]
|
||||
],
|
||||
"text": [
|
||||
"고향의잔해"
|
||||
]
|
||||
},
|
||||
"Phantom@Roguelike@NextLevel": {
|
||||
@@ -3660,10 +3713,77 @@
|
||||
"Phantom@Roguelike@StageEncounterOptionUnknown": {
|
||||
"templThreshold": 0.95
|
||||
},
|
||||
"Mizuki@Roguelike@LevelName_mode4": {
|
||||
"Mizuki@Roguelike@StrategyChange_mode0": {
|
||||
"text": [
|
||||
"맹렬한파도",
|
||||
"짙푸른요람"
|
||||
"_aggressive",
|
||||
"_pragmatic",
|
||||
"_default"
|
||||
],
|
||||
"ocrReplace": [
|
||||
[
|
||||
"하늘빛해안",
|
||||
"_aggressive"
|
||||
],
|
||||
[
|
||||
"연안외딴섬",
|
||||
"_aggressive"
|
||||
],
|
||||
[
|
||||
"맹렬한파도",
|
||||
"_pragmatic"
|
||||
],
|
||||
[
|
||||
"은밀한온상",
|
||||
"_pragmatic"
|
||||
],
|
||||
[
|
||||
"신성한동굴",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"심해의숲",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"짙푸른요람",
|
||||
"_SKIP_"
|
||||
]
|
||||
]
|
||||
},
|
||||
"Mizuki@Roguelike@StrategyChange_mode4": {
|
||||
"text": [
|
||||
"_default",
|
||||
"_exit"
|
||||
],
|
||||
"ocrReplace": [
|
||||
[
|
||||
"하늘빛해안",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"연안외딴섬",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"맹렬한파도",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"은밀한온상",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"신성한동굴",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"심해의숲",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"짙푸른요람",
|
||||
"_exit"
|
||||
]
|
||||
]
|
||||
},
|
||||
"Mizuki@Roguelike@NextLevel": {
|
||||
|
||||
@@ -2613,9 +2613,60 @@
|
||||
"上限"
|
||||
]
|
||||
},
|
||||
"Phantom@Roguelike@LevelName_mode4": {
|
||||
"text": [
|
||||
"故土殘軀"
|
||||
"Phantom@Roguelike@StrategyChange_mode0": {
|
||||
"ocrReplace": [
|
||||
[
|
||||
"迷霧歧途",
|
||||
"_aggressive"
|
||||
],
|
||||
[
|
||||
"落陽庭院",
|
||||
"_aggressive"
|
||||
],
|
||||
[
|
||||
"故土殘軀",
|
||||
"_aggressive"
|
||||
],
|
||||
[
|
||||
"噩夢之始",
|
||||
"_pragmatic"
|
||||
],
|
||||
[
|
||||
"血月長廊",
|
||||
"_pragmatic"
|
||||
],
|
||||
[
|
||||
"渴欲大廳",
|
||||
"_default"
|
||||
]
|
||||
]
|
||||
},
|
||||
"Phantom@Roguelike@StrategyChange_mode4": {
|
||||
"ocrReplace": [
|
||||
[
|
||||
"迷霧歧途",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"落陽庭院",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"故土殘軀",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"噩夢之始",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"血月長廊",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"渴欲大廳",
|
||||
"_exit"
|
||||
]
|
||||
]
|
||||
},
|
||||
"Phantom@Roguelike@NextLevel": {
|
||||
@@ -2636,10 +2687,68 @@
|
||||
"選擇"
|
||||
]
|
||||
},
|
||||
"Mizuki@Roguelike@LevelName_mode4": {
|
||||
"text": [
|
||||
"波濤略地",
|
||||
"紺碧搖籃"
|
||||
"Mizuki@Roguelike@StrategyChange_mode0": {
|
||||
"ocrReplace": [
|
||||
[
|
||||
"天光海岸",
|
||||
"_aggressive"
|
||||
],
|
||||
[
|
||||
"離岸孤島",
|
||||
"_aggressive"
|
||||
],
|
||||
[
|
||||
"波濤略地",
|
||||
"_pragmatic"
|
||||
],
|
||||
[
|
||||
"隱秘溫床",
|
||||
"_pragmatic"
|
||||
],
|
||||
[
|
||||
"失塵岩洞",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"幽海叢林",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"紺碧搖籃",
|
||||
"_SKIP_"
|
||||
]
|
||||
]
|
||||
},
|
||||
"Mizuki@Roguelike@StrategyChange_mode4": {
|
||||
"ocrReplace": [
|
||||
[
|
||||
"天光海岸",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"離岸孤島",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"波濤略地",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"隱秘溫床",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"失塵岩洞",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"幽海叢林",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"紺碧搖籃",
|
||||
"_exit"
|
||||
]
|
||||
]
|
||||
},
|
||||
"Mizuki@Roguelike@NextLevel": {
|
||||
|
||||
@@ -8677,7 +8677,8 @@
|
||||
160
|
||||
]
|
||||
},
|
||||
"Roguelike@ExitThenAbandon_mode4": {
|
||||
"Roguelike@ExitThenAbandon_ToHardest": {
|
||||
"template": "Roguelike@ExitThenAbandon.png",
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"roi": [
|
||||
@@ -9194,10 +9195,7 @@
|
||||
"Roguelike@ClickToStartPointAfterFailed"
|
||||
]
|
||||
},
|
||||
"Roguelike@LevelName": {
|
||||
"baseTask": "Roguelike@LevelName_mode1"
|
||||
},
|
||||
"Roguelike@LevelName_mode0": {
|
||||
"Roguelike@StrategyChange_default": {
|
||||
"algorithm": "OcrDetect",
|
||||
"cache": false,
|
||||
"text": [
|
||||
@@ -9214,43 +9212,30 @@
|
||||
"Roguelike@Stages#next"
|
||||
]
|
||||
},
|
||||
"Roguelike@LevelName_mode1": {
|
||||
"algorithm": "OcrDetect",
|
||||
"cache": false,
|
||||
"text": [
|
||||
"_SKIP_"
|
||||
],
|
||||
"roi": [
|
||||
593,
|
||||
0,
|
||||
186,
|
||||
129
|
||||
],
|
||||
"next": [
|
||||
"Roguelike@NextLevel"
|
||||
]
|
||||
"Roguelike@StrategyChange": {
|
||||
"baseTask": "Roguelike@StrategyChange_default"
|
||||
},
|
||||
"Roguelike@LevelName_mode4": {
|
||||
"algorithm": "OcrDetect",
|
||||
"cache": false,
|
||||
"text": [
|
||||
"_SKIP_"
|
||||
],
|
||||
"roi": [
|
||||
593,
|
||||
0,
|
||||
186,
|
||||
129
|
||||
],
|
||||
"next": [
|
||||
"Roguelike@ExitThenAbandon_mode4"
|
||||
]
|
||||
"Roguelike@StrategyChange_mode0": {
|
||||
"baseTask": "Roguelike@StrategyChange_default"
|
||||
},
|
||||
"Roguelike@StrategyChange_mode1": {
|
||||
"baseTask": "Roguelike@StrategyChange_default"
|
||||
},
|
||||
"Roguelike@StrategyChange_mode4": {
|
||||
"baseTask": "Roguelike@StrategyChange_default"
|
||||
},
|
||||
"Roguelike@Stages": {
|
||||
"Doc": "base_task",
|
||||
"algorithm": "JustReturn",
|
||||
"next": []
|
||||
},
|
||||
"Roguelike@Stages_exit": {
|
||||
"Doc": "烧水和直升,在进入第三层之后直接退出",
|
||||
"algorithm": "JustReturn",
|
||||
"next": [
|
||||
"Roguelike@ExitThenAbandon_ToHardest"
|
||||
]
|
||||
},
|
||||
"Roguelike@NextLevel": {
|
||||
"algorithm": "OcrDetect",
|
||||
"action": "ClickSelf",
|
||||
@@ -9263,7 +9248,7 @@
|
||||
144
|
||||
],
|
||||
"next": [
|
||||
"Roguelike@LevelName",
|
||||
"Roguelike@StrategyChange",
|
||||
"Roguelike@Stages#next"
|
||||
]
|
||||
},
|
||||
@@ -10385,10 +10370,10 @@
|
||||
"Phantom@Roguelike@Abandon"
|
||||
]
|
||||
},
|
||||
"Phantom@Roguelike@ExitThenAbandon_mode4": {
|
||||
"template": "Roguelike@ExitThenAbandon_mode4.png",
|
||||
"Phantom@Roguelike@ExitThenAbandon_ToHardest": {
|
||||
"template": "Roguelike@ExitThenAbandon.png",
|
||||
"next": [
|
||||
"Phantom@Roguelike@ExitThenAbandon",
|
||||
"Phantom@Roguelike@ExitThenAbandon_ToHardest",
|
||||
"Phantom@Roguelike@Abandon"
|
||||
]
|
||||
},
|
||||
@@ -10430,10 +10415,7 @@
|
||||
"Phantom@Roguelike@LastRewardConfirm": {},
|
||||
"Phantom@Roguelike@MissionFailedFlag": {},
|
||||
"Phantom@Roguelike@MissionFailedFlag2": {},
|
||||
"Phantom@Roguelike@LevelName": {
|
||||
"baseTask": "Phantom@Roguelike@LevelName_mode1"
|
||||
},
|
||||
"Phantom@Roguelike@LevelName_mode0": {
|
||||
"Phantom@Roguelike@StrategyChange_mode0": {
|
||||
"text": [
|
||||
"_aggressive",
|
||||
"_pragmatic",
|
||||
@@ -10466,9 +10448,36 @@
|
||||
]
|
||||
]
|
||||
},
|
||||
"Phantom@Roguelike@LevelName_mode4": {
|
||||
"Phantom@Roguelike@StrategyChange_mode4": {
|
||||
"text": [
|
||||
"故土残躯"
|
||||
"_default",
|
||||
"_exit"
|
||||
],
|
||||
"ocrReplace": [
|
||||
[
|
||||
"迷雾歧途",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"落阳庭院",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"故土残躯",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"噩梦之始",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"血月长廊",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"渴欲大厅",
|
||||
"_exit"
|
||||
]
|
||||
]
|
||||
},
|
||||
"Phantom@Roguelike@Stages": {
|
||||
@@ -10868,10 +10877,10 @@
|
||||
"Mizuki@Roguelike@DataTraceback"
|
||||
]
|
||||
},
|
||||
"Mizuki@Roguelike@ExitThenAbandon_mode4": {
|
||||
"Mizuki@Roguelike@ExitThenAbandon_ToHardest": {
|
||||
"template": "Roguelike@ExitThenAbandon.png",
|
||||
"next": [
|
||||
"Mizuki@Roguelike@ExitThenAbandon",
|
||||
"Mizuki@Roguelike@ExitThenAbandon_ToHardest",
|
||||
"Mizuki@Roguelike@Abandon",
|
||||
"Mizuki@Roguelike@DiceConfirmThenAbandon",
|
||||
"Mizuki@Roguelike@DataTraceback"
|
||||
@@ -10979,10 +10988,7 @@
|
||||
},
|
||||
"Mizuki@Roguelike@MissionFailedFlag": {},
|
||||
"Mizuki@Roguelike@MissionFailedFlag2": {},
|
||||
"Mizuki@Roguelike@LevelName": {
|
||||
"baseTask": "Mizuki@Roguelike@LevelName_mode1"
|
||||
},
|
||||
"Mizuki@Roguelike@LevelName_mode0": {
|
||||
"Mizuki@Roguelike@StrategyChange_mode0": {
|
||||
"text": [
|
||||
"_aggressive",
|
||||
"_pragmatic",
|
||||
@@ -11019,10 +11025,40 @@
|
||||
]
|
||||
]
|
||||
},
|
||||
"Mizuki@Roguelike@LevelName_mode4": {
|
||||
"Mizuki@Roguelike@StrategyChange_mode4": {
|
||||
"text": [
|
||||
"波涛略地",
|
||||
"绀碧摇篮"
|
||||
"_default",
|
||||
"_exit"
|
||||
],
|
||||
"ocrReplace": [
|
||||
[
|
||||
"天光海岸",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"离岸孤岛",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"波涛略地",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"隐秘温床",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"失尘岩洞",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"幽海丛林",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"绀碧摇篮",
|
||||
"_exit"
|
||||
]
|
||||
]
|
||||
},
|
||||
"Mizuki@Roguelike@Stages": {
|
||||
@@ -11465,10 +11501,10 @@
|
||||
"Sami@Roguelike@Abandon"
|
||||
]
|
||||
},
|
||||
"Sami@Roguelike@ExitThenAbandon_mode4": {
|
||||
"template": "Roguelike@ExitThenAbandon_mode4.png",
|
||||
"Sami@Roguelike@ExitThenAbandon_ToHardest": {
|
||||
"template": "Roguelike@ExitThenAbandon.png",
|
||||
"next": [
|
||||
"Sami@Roguelike@ExitThenAbandon",
|
||||
"Sami@Roguelike@ExitThenAbandon_ToHardest",
|
||||
"Sami@Roguelike@Abandon"
|
||||
]
|
||||
},
|
||||
@@ -11588,10 +11624,7 @@
|
||||
},
|
||||
"Sami@Roguelike@MissionFailedFlag": {},
|
||||
"Sami@Roguelike@MissionFailedFlag2": {},
|
||||
"Sami@Roguelike@LevelName": {
|
||||
"baseTask": "Sami@Roguelike@LevelName_mode1"
|
||||
},
|
||||
"Sami@Roguelike@LevelName_mode0": {
|
||||
"Sami@Roguelike@StrategyChange_mode0": {
|
||||
"text": [
|
||||
"_aggressive",
|
||||
"_pragmatic",
|
||||
@@ -11628,10 +11661,40 @@
|
||||
]
|
||||
]
|
||||
},
|
||||
"Sami@Roguelike@LevelName_mode4": {
|
||||
"Sami@Roguelike@StrategyChange_mode4": {
|
||||
"text": [
|
||||
"昧明冻土",
|
||||
"深埋迷境"
|
||||
"_default",
|
||||
"_exit"
|
||||
],
|
||||
"ocrReplace": [
|
||||
[
|
||||
"初霜湖泽",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"密静林地",
|
||||
"_default"
|
||||
],
|
||||
[
|
||||
"昧明冻土",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"积冰岩骸",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"无暇花园",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"远见之构",
|
||||
"_exit"
|
||||
],
|
||||
[
|
||||
"深埋迷境",
|
||||
"_exit"
|
||||
]
|
||||
]
|
||||
},
|
||||
"Sami@Roguelike@Stages": {
|
||||
|
||||
@@ -53,7 +53,7 @@ namespace asst
|
||||
static inline const std::string RoguelikeRecruitmentTeamComplete = "RoguelikeRecruitmentTeamComplete";
|
||||
static inline const std::string RoguelikeRecruitmentCount = "RoguelikeRecruitmentCount";
|
||||
static inline const std::string RoguelikeMode = "RoguelikeMode";
|
||||
static inline const std::string RoguelikeNeedChangeDifficulty = "RoguelikeNeedChangeDifficulty";
|
||||
static inline const std::string RoguelikeDifficulty = "RoguelikeDifficulty";
|
||||
|
||||
static inline const std::string ProcessTaskLastTimePrefix = "#LastTime#";
|
||||
|
||||
|
||||
@@ -103,14 +103,23 @@ bool asst::RoguelikeTask::set_params(const json::value& params)
|
||||
bool start_with_elite_two = params.get("start_with_elite_two", false);
|
||||
|
||||
status()->set_properties(Status::RoguelikeMode, std::to_string(mode));
|
||||
status()->set_properties(Status::RoguelikeNeedChangeDifficulty, "0");
|
||||
status()->set_properties(Status::RoguelikeDifficulty, "0");
|
||||
status()->set_properties(Status::RoguelikeStartWithEliteTwo, std::to_string(start_with_elite_two));
|
||||
|
||||
// 设置需要ocr的层名,相关逻辑在RoguelikeStrategyChangeTaskPlugin中
|
||||
Task.set_task_base(theme + "@Roguelike@LevelName", theme + "@Roguelike@LevelName_mode" + std::to_string(mode));
|
||||
// 设置层数选点策略,相关逻辑在 RoguelikeStrategyChangeTaskPlugin
|
||||
{
|
||||
Task.set_task_base(theme + "@Roguelike@Stages", theme + "@Roguelike@Stages_default");
|
||||
std::string strategy_task = theme + "@Roguelike@StrategyChange";
|
||||
std::string strategy_task_with_mode = strategy_task + "_mode" + std::to_string(mode);
|
||||
if (Task.get(strategy_task_with_mode) == nullptr) {
|
||||
strategy_task_with_mode = "#none"; // 没有对应的层数选点策略,使用默认策略(避战)
|
||||
Log.warn(__FUNCTION__, "No strategy for mode", mode);
|
||||
}
|
||||
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);
|
||||
@@ -120,7 +129,7 @@ bool asst::RoguelikeTask::set_params(const json::value& params)
|
||||
Task.set_task_base("Roguelike@LastRewardRand", "Roguelike@LastReward_restart");
|
||||
}
|
||||
else {
|
||||
// 重置开局奖励next
|
||||
// 重置开局奖励 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");
|
||||
|
||||
@@ -36,22 +36,15 @@ bool asst::RoguelikeDifficultySelectionTaskPlugin::_run()
|
||||
// todo:以后可以根据传入的难度值选择难度?
|
||||
|
||||
// 当前难度
|
||||
std::string recent_difficulty = status()->get_properties(Status::RoguelikeNeedChangeDifficulty).value();
|
||||
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 (recent_difficulty == "max") {
|
||||
// 到第三层退出,选最高难度开水壶
|
||||
if (difficulty == "max") {
|
||||
ProcessTask(*this, { m_roguelike_theme + "@Roguelike@ChooseDifficulty_Hardest" }).run();
|
||||
// 重置为最低难度,需要凹开局直升时,保证在难度max下寻找直升干员,延后到找不到精二重置
|
||||
if (start_with_elite_two == "0") {
|
||||
status()->set_properties(Status::RoguelikeNeedChangeDifficulty, "0");
|
||||
}
|
||||
}
|
||||
// 其他情况下开始,选最低难度
|
||||
else {
|
||||
ProcessTask(*this, { m_roguelike_theme + "@Roguelike@ChooseDifficulty_Easiest" }).run();
|
||||
status()->set_properties(Status::RoguelikeNeedChangeDifficulty, "0");
|
||||
}
|
||||
ProcessTask(*this, { m_roguelike_theme + "@Roguelike@ChooseDifficultyConfirm" }).run();
|
||||
ProcessTask(*this, { m_roguelike_theme + "@Roguelike@StartExploreConfirm" }).run();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#include "RoguelikeLastRewardTaskPlugin.h"
|
||||
|
||||
#include "Config/TaskData.h"
|
||||
#include "Status.h"
|
||||
#include "Task/ProcessTask.h"
|
||||
#include "Utils/Logger.hpp"
|
||||
@@ -20,11 +21,17 @@ bool asst::RoguelikeLastRewardTaskPlugin::verify(AsstMsg msg, const json::value&
|
||||
if (task_view.starts_with(roguelike_name)) {
|
||||
task_view.remove_prefix(roguelike_name.length());
|
||||
}
|
||||
if (task_view == "Roguelike@ExitThenAbandon") {
|
||||
if (task_view == "Roguelike@StartExplore") {
|
||||
// 标记开始行动
|
||||
m_need_change_difficulty_higher = false;
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
if (task_view == "Roguelike@ExitThenAbandon_mode4") {
|
||||
if (task_view == "Roguelike@ExitThenAbandon") {
|
||||
// 开始行动过且没有打完三层,重开低难度
|
||||
return !m_need_change_difficulty_higher;
|
||||
}
|
||||
if (task_view == "Roguelike@ExitThenAbandon_ToHardest") {
|
||||
// 打完低难度的三层,重开高难度烧水壶
|
||||
m_need_change_difficulty_higher = true;
|
||||
return true;
|
||||
}
|
||||
@@ -38,13 +45,23 @@ bool asst::RoguelikeLastRewardTaskPlugin::_run()
|
||||
LogTraceFunction;
|
||||
|
||||
std::string mode = status()->get_properties(Status::RoguelikeMode).value();
|
||||
std::string stages_task_name = m_roguelike_theme + "@Roguelike@Stages";
|
||||
std::string strategy_task_name = stages_task_name + "_default";
|
||||
|
||||
if (Task.get(strategy_task_name) == nullptr) {
|
||||
Log.error("Strategy task", strategy_task_name, "doesn't exist!");
|
||||
}
|
||||
else {
|
||||
// 重置选点策略
|
||||
Task.set_task_base(stages_task_name, strategy_task_name);
|
||||
}
|
||||
|
||||
if (m_roguelike_theme != "Phantom" && mode == "4") {
|
||||
if (m_need_change_difficulty_higher) {
|
||||
status()->set_properties(Status::RoguelikeNeedChangeDifficulty, "max");
|
||||
status()->set_properties(Status::RoguelikeDifficulty, "max");
|
||||
}
|
||||
else {
|
||||
status()->set_properties(Status::RoguelikeNeedChangeDifficulty, "0");
|
||||
status()->set_properties(Status::RoguelikeDifficulty, "0");
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -437,7 +437,7 @@ bool asst::RoguelikeRecruitTaskPlugin::recruit_appointed_char(const std::string&
|
||||
// 是否凹直升
|
||||
std::string start_with_elite_two = status()->get_properties(Status::RoguelikeStartWithEliteTwo).value();
|
||||
// 当前肉鸽难度
|
||||
std::string recent_difficulty = status()->get_properties(Status::RoguelikeNeedChangeDifficulty).value();
|
||||
std::string difficulty = status()->get_properties(Status::RoguelikeDifficulty).value();
|
||||
|
||||
for (; i != SwipeTimes; ++i) {
|
||||
if (need_exit()) {
|
||||
@@ -461,13 +461,13 @@ bool asst::RoguelikeRecruitTaskPlugin::recruit_appointed_char(const std::string&
|
||||
|
||||
if (it != chars.cend()) {
|
||||
// 需要凹直升且当前为max难度时
|
||||
if (start_with_elite_two == "1" && recent_difficulty == "max") {
|
||||
if (start_with_elite_two == "1" && difficulty == "max") {
|
||||
if (it->elite == 2) {
|
||||
m_task_ptr->set_enable(false);
|
||||
}
|
||||
else {
|
||||
// 重置难度并放弃
|
||||
status()->set_properties(Status::RoguelikeNeedChangeDifficulty, "0");
|
||||
status()->set_properties(Status::RoguelikeDifficulty, "0");
|
||||
ProcessTask(*this, { m_roguelike_theme + "@Roguelike@ExitThenAbandon" })
|
||||
.set_times_limit("Roguelike@Abandon", 0)
|
||||
.run();
|
||||
|
||||
@@ -23,7 +23,7 @@ bool asst::RoguelikeStrategyChangeTaskPlugin::verify(AsstMsg msg, const json::va
|
||||
if (task_view.starts_with(roguelike_name)) {
|
||||
task_view.remove_prefix(roguelike_name.length());
|
||||
}
|
||||
if (task_view == "Roguelike@LevelName") {
|
||||
if (task_view == "Roguelike@StrategyChange") {
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
@@ -39,7 +39,7 @@ bool asst::RoguelikeStrategyChangeTaskPlugin::_run()
|
||||
std::string mode = status()->get_properties(Status::RoguelikeMode).value();
|
||||
|
||||
// TODO: 这段识别有点冗余,要是 plugin 能获取识别结果就好了
|
||||
std::string task_name = theme + "@Roguelike@LevelName";
|
||||
std::string task_name = theme + "@Roguelike@StrategyChange";
|
||||
OCRer analyzer(ctrler()->get_image());
|
||||
analyzer.set_task_info(task_name);
|
||||
if (!analyzer.analyze()) {
|
||||
|
||||
Reference in New Issue
Block a user