diff --git a/resource/tasks.json b/resource/tasks.json index 1b0fe35188..5a58abedaa 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -6687,12 +6687,6 @@ "roi": [400, 300, 225, 160], "fullMatch": true }, - "Roguelike@ChooseDifficulty_CheckEasiest": { - "doc": "用于 RoguelikeDifficultySelectionTaskPlugin", - "algorithm": "OcrDetect", - "text": ["ADDITIONAL"], - "roi": [670, 515, 100, 19] - }, "Roguelike@ChooseDifficulty_Specified": { "doc": "用于 RoguelikeDifficultySelectionTaskPlugin", "baseTask": "NumberOcrReplace", diff --git a/src/MaaCore/Task/Roguelike/RoguelikeDifficultySelectionTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeDifficultySelectionTaskPlugin.cpp index 2c553b9185..c536cf7e67 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeDifficultySelectionTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeDifficultySelectionTaskPlugin.cpp @@ -86,26 +86,19 @@ bool asst::RoguelikeDifficultySelectionTaskPlugin::select_difficulty(const int d // 识别当前难度 const cv::Mat image = ctrler()->get_image(); - OCRer easiest_checker(image); - easiest_checker.set_task_info("Roguelike@ChooseDifficulty_CheckEasiest"); - if (!easiest_checker.analyze()) { - m_current_difficulty = 0; + OCRer current_difficulty_analyzer(image); + current_difficulty_analyzer.set_task_info("Roguelike@ChooseDifficulty_AnalyzeCurrentDifficulty"); + if (current_difficulty_analyzer.analyze()) { + const std::string current_difficulty_text = current_difficulty_analyzer.get_result().front().text; + Log.info(__FUNCTION__, "| Current difficulty text is", current_difficulty_text); + if (!utils::chars_to_number(current_difficulty_text, m_current_difficulty)) { + Log.error("Fail to convert current difficulty text to int, reset current difficulty to 0"); + m_current_difficulty = 0; + } } else { - OCRer current_difficulty_analyzer(image); - current_difficulty_analyzer.set_task_info("Roguelike@ChooseDifficulty_AnalyzeCurrentDifficulty"); - if (current_difficulty_analyzer.analyze()) { - const std::string current_difficulty_text = current_difficulty_analyzer.get_result().front().text; - Log.debug(__FUNCTION__, "| Current difficulty text is", current_difficulty_text); - if (!utils::chars_to_number(current_difficulty_text, m_current_difficulty)) { - Log.error("Fail to convert current difficulty text to int, reset current difficulty to -1"); - m_current_difficulty = -1; - } - } - else { - Log.error(__FUNCTION__, "| Fail to detect current difficulty, reset current difficulty to -1"); - m_current_difficulty = -1; - } + Log.error(__FUNCTION__, "| Fail to detect current difficulty, reset current difficulty to 0"); + m_current_difficulty = 0; } Log.info(__FUNCTION__, "| Current difficulty is", m_current_difficulty);