diff --git a/resource/tasks.json b/resource/tasks.json index 8bed7e227e..c449dfbdf3 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -11090,63 +11090,63 @@ "RoguelikeSettlementOcr-Floor": { "baseTask": "NumberOcrReplace", "roi": [ - 132, + 102, 170, - 70, + 100, 40 ] }, "RoguelikeSettlementOcr-Step": { "baseTask": "NumberOcrReplace", "roi": [ - 132, + 102, 238, - 70, + 100, 40 ] }, "RoguelikeSettlementOcr-Combat": { "baseTask": "NumberOcrReplace", "roi": [ - 132, + 102, 304, - 70, + 100, 40 ] }, "RoguelikeSettlementOcr-Recruit": { "baseTask": "NumberOcrReplace", "roi": [ - 132, + 102, 374, - 70, + 100, 40 ] }, "RoguelikeSettlementOcr-Object": { "baseTask": "NumberOcrReplace", "roi": [ - 705, + 680, 170, - 70, + 95, 40 ] }, "RoguelikeSettlementOcr-BOSS": { "baseTask": "NumberOcrReplace", "roi": [ - 705, + 680, 238, - 70, + 95, 40 ] }, "RoguelikeSettlementOcr-Emergency": { "baseTask": "NumberOcrReplace", "roi": [ - 705, + 680, 304, - 70, + 95, 40 ] }, @@ -11155,9 +11155,9 @@ "isAscii": false, "roi": [ 750, - 370, + 372, 120, - 35 + 31 ] }, "RoguelikeSettlementOcr-Score": { @@ -11172,18 +11172,34 @@ "RoguelikeSettlementOcr-Exp": { "baseTask": "NumberOcrReplace", "roi": [ - 667, + 643, 525, - 140, + 160, 40 ] }, "RoguelikeSettlementOcr-Skill": { "baseTask": "NumberOcrReplace", "roi": [ - 950, + 920, 530, - 60, + 100, + 40 + ] + }, + "Phantom@RoguelikeSettlementOcr-Score": { + "roi": [ + 460, + 525, + 160, + 55 + ] + }, + "Phantom@RoguelikeSettlementOcr-Exp": { + "roi": [ + 760, + 525, + 160, 40 ] }, diff --git a/src/MaaCore/Task/Roguelike/RoguelikeSettlementTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeSettlementTaskPlugin.cpp index a8f6d32661..4762780d7f 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeSettlementTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeSettlementTaskPlugin.cpp @@ -77,7 +77,8 @@ bool asst::RoguelikeSettlementTaskPlugin::get_settlement_info(json::value& info, auto analyze_text_data = [&](const std::string& task_name) { RegionOCRer ocr(image); - ocr.set_task_info(task_name); + ocr.set_task_info(m_config->get_theme() + "@" + task_name); + ocr.set_bin_threshold(50, 255); if (!ocr.analyze()) { Log.error(__FUNCTION__, "analyze battle data failed, task:", task_name); return; @@ -92,9 +93,12 @@ bool asst::RoguelikeSettlementTaskPlugin::get_settlement_info(json::value& info, "RoguelikeSettlementOcr-Combat", "RoguelikeSettlementOcr-Recruit", "RoguelikeSettlementOcr-Object", "RoguelikeSettlementOcr-BOSS", "RoguelikeSettlementOcr-Emergency" }; - static const auto text_task_name = + static auto text_task_name = std::vector { "RoguelikeSettlementOcr-Difficulty", "RoguelikeSettlementOcr-Score", "RoguelikeSettlementOcr-Exp", "RoguelikeSettlementOcr-Skill" }; + if (m_config->get_theme() == "Phantom") { + text_task_name.pop_back(); + } ranges::for_each(battle_task_name, analyze_battle_data); ranges::for_each(text_task_name, analyze_text_data);