mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-15 17:30:27 +08:00
feat.优化公招界面和提示
This commit is contained in:
@@ -42,6 +42,7 @@ namespace asst
|
||||
RecruitTagsDetected = 3000, // 公招识别到了Tags
|
||||
RecruitSpecialTag, // 公招识别到了特殊的Tag
|
||||
RecruitResult, // 公开招募结果
|
||||
RecruitSelected, // 选择了Tags
|
||||
/* Infrast Msg */
|
||||
InfrastSkillsDetected = 4000, // 识别到了基建技能(当前页面)
|
||||
InfrastSkillsResult, // 识别到的所有可用技能
|
||||
@@ -55,6 +56,7 @@ namespace asst
|
||||
static const std::unordered_map<AsstMsg, std::string> _type_name = {
|
||||
{ AsstMsg::PtrIsNull, "PtrIsNull" },
|
||||
{ AsstMsg::ImageIsEmpty, "ImageIsEmpty" },
|
||||
{ AsstMsg::RecruitSelected, "RecruitSelected" },
|
||||
{ AsstMsg::WindowMinimized, "WindowMinimized" },
|
||||
{ AsstMsg::InitFaild, "InitFaild" },
|
||||
{ AsstMsg::TaskStart, "TaskStart" },
|
||||
|
||||
@@ -60,11 +60,15 @@ bool RecruitTask::_run()
|
||||
|
||||
m_callback(AsstMsg::RecruitTagsDetected, all_tags_json, m_callback_arg);
|
||||
|
||||
/* 针对一星小车的额外回调消息 */
|
||||
/* 针对特殊Tag的额外回调消息 */
|
||||
static const std::string SeniorOper = "高级资深干员";
|
||||
static const std::string SupportMachine = "支援机械";
|
||||
if (std::find(all_tags_name.cbegin(), all_tags_name.cend(), SupportMachine) != all_tags_name.cend()) {
|
||||
const std::vector<std::string> SpecialTags = { SeniorOper, SupportMachine };
|
||||
|
||||
auto special_iter = std::find_first_of(SpecialTags.cbegin(), SpecialTags.cend(), all_tags_name.cbegin(), all_tags_name.cend());
|
||||
if (special_iter != SpecialTags.cend()) {
|
||||
json::value special_tag_json;
|
||||
special_tag_json["tag"] = SupportMachine;
|
||||
special_tag_json["tag"] = *special_iter;
|
||||
m_callback(AsstMsg::RecruitSpecialTag, special_tag_json, m_callback_arg);
|
||||
m_has_special_tag = true;
|
||||
}
|
||||
@@ -110,7 +114,6 @@ bool RecruitTask::_run()
|
||||
|
||||
if (cur_oper.level == 6) {
|
||||
// 高资tag和六星强绑定,如果没有高资tag,即使其他tag匹配上了也不可能出六星
|
||||
static const std::string SeniorOper = "高级资深干员";
|
||||
if (std::find(comb.cbegin(), comb.cend(), SeniorOper) == comb.cend()) {
|
||||
continue;
|
||||
}
|
||||
@@ -170,6 +173,7 @@ bool RecruitTask::_run()
|
||||
/* 整理识别结果Json */
|
||||
json::value results_json;
|
||||
results_json["result"] = json::array();
|
||||
results_json["maybe_level"] = m_maybe_level;
|
||||
|
||||
std::vector<json::value> result_json_vector;
|
||||
for (const auto& comb : result_vec) {
|
||||
@@ -205,6 +209,10 @@ bool RecruitTask::_run()
|
||||
ctrler.click(text_area.rect, true);
|
||||
}
|
||||
}
|
||||
|
||||
json::value selected_json;
|
||||
selected_json["tags"] = json::array(final_tags_name);
|
||||
m_callback(AsstMsg::RecruitSelected, selected_json, m_callback_arg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Stylet;
|
||||
using StyletIoC;
|
||||
using Microsoft.Toolkit.Uwp.Notifications;
|
||||
|
||||
namespace MeoAsstGui
|
||||
{
|
||||
@@ -110,6 +111,10 @@ namespace MeoAsstGui
|
||||
{
|
||||
tvm.AddLog("已碎石 " + (int)detail["exec_times"] + " 颗");
|
||||
}
|
||||
else if (taskName == "RecruitRefresh")
|
||||
{
|
||||
tvm.AddLog("已刷新标签");
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -160,7 +165,8 @@ namespace MeoAsstGui
|
||||
case AsstMsg.RecruitTagsDetected:
|
||||
case AsstMsg.OcrResultError:
|
||||
case AsstMsg.RecruitSpecialTag:
|
||||
case AsstMsg.RecruitResult:
|
||||
case AsstMsg.RecruitResult:
|
||||
case AsstMsg.RecruitSelected:
|
||||
recruit_proc_msg(msg, detail);
|
||||
break;
|
||||
/* Infrast Msg */
|
||||
@@ -211,40 +217,45 @@ namespace MeoAsstGui
|
||||
private void recruit_proc_msg(AsstMsg msg, JObject detail)
|
||||
{
|
||||
var rvm = _container.Get<RecruitViewModel>();
|
||||
var tvm = _container.Get<TaskQueueViewModel>();
|
||||
switch (msg)
|
||||
{
|
||||
case AsstMsg.TextDetected:
|
||||
break;
|
||||
|
||||
case AsstMsg.RecruitTagsDetected:
|
||||
JArray tags = (JArray)detail["tags"];
|
||||
JArray tags = (JArray)detail["tags"];
|
||||
string log_content = "";
|
||||
string info_content = "识别结果: ";
|
||||
foreach (var tag_name in tags)
|
||||
{
|
||||
info_content += tag_name.ToString() + " ";
|
||||
{
|
||||
string tag_str = tag_name.ToString();
|
||||
info_content += tag_str + " ";
|
||||
log_content += tag_str + "\n";
|
||||
}
|
||||
rvm.RecruitInfo = info_content;
|
||||
rvm.RecruitInfo = info_content;
|
||||
|
||||
log_content = log_content.EndsWith("\n") ? log_content.TrimEnd('\n') : "错误";
|
||||
tvm.AddLog("公招识别结果:\n" + log_content);
|
||||
|
||||
break;
|
||||
|
||||
case AsstMsg.OcrResultError:
|
||||
rvm.RecruitInfo = "识别错误!";
|
||||
break;
|
||||
|
||||
case AsstMsg.RecruitSpecialTag:
|
||||
_windowManager.ShowMessageBox("检测到特殊Tag:" + detail["tag"].ToString(), "提示");
|
||||
case AsstMsg.RecruitSpecialTag:
|
||||
string special = detail["tag"].ToString();
|
||||
new ToastContentBuilder().AddText("公招特殊Tag:" + special).Show();
|
||||
break;
|
||||
|
||||
case AsstMsg.RecruitResult:
|
||||
string resultContent = "";
|
||||
JArray result_array = (JArray)detail["result"];
|
||||
int combs_level = 0;
|
||||
int combs_level = (int)detail["maybe_level"];
|
||||
foreach (var combs in result_array)
|
||||
{
|
||||
int tag_level = (int)combs["tag_level"];
|
||||
if (tag_level > combs_level)
|
||||
{
|
||||
combs_level = tag_level;
|
||||
}
|
||||
resultContent += tag_level + "星Tags: ";
|
||||
foreach (var tag in (JArray)combs["tags"])
|
||||
{
|
||||
@@ -259,9 +270,27 @@ namespace MeoAsstGui
|
||||
}
|
||||
rvm.RecruitResult = resultContent;
|
||||
if (combs_level >= 5)
|
||||
{
|
||||
_windowManager.ShowMessageBox("出 " + combs_level + " 星了哦!", "提示");
|
||||
}
|
||||
{
|
||||
new ToastContentBuilder().AddText("公招出 " + combs_level + " 星了哦!").Show(); ;
|
||||
tvm.AddLog(combs_level + " 星Tags", "OrangeRed");
|
||||
}
|
||||
else
|
||||
{
|
||||
tvm.AddLog(combs_level + " 星Tags");
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case AsstMsg.RecruitSelected:
|
||||
JArray selected = (JArray)detail["tags"];
|
||||
string selected_log = "";
|
||||
foreach (var tag in selected)
|
||||
{
|
||||
selected_log += tag.ToString() + "\n";
|
||||
}
|
||||
selected_log = selected_log.EndsWith("\n") ? selected_log.TrimEnd('\n') : "无";
|
||||
|
||||
tvm.AddLog("选择Tags:\n" + selected_log);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -366,6 +395,7 @@ namespace MeoAsstGui
|
||||
RecruitTagsDetected = 3000, // 公招识别到了Tags
|
||||
RecruitSpecialTag, // 公招识别到了特殊的Tag
|
||||
RecruitResult, // 公开招募结果
|
||||
RecruitSelected, // 选择了Tags
|
||||
/* Infrast Msg */
|
||||
InfrastSkillsDetected = 4000, // 识别到了基建技能(当前页面)
|
||||
InfrastSkillsResult, // 识别到的所有可用技能
|
||||
|
||||
Reference in New Issue
Block a user