feat.优化公招界面和提示

This commit is contained in:
MistEO
2021-12-04 00:01:49 +08:00
parent 9ad7f29846
commit e4facf492e
3 changed files with 59 additions and 19 deletions

View File

@@ -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" },

View File

@@ -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);
}
}

View File

@@ -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, // 识别到的所有可用技能