feat: 刷理智开始行动输出新增 每次开始行动时输出理智药和碎石次数(不记录临期药品使用次数)

This commit is contained in:
status102
2023-10-10 23:45:30 +08:00
parent 15536b40ec
commit b6f11efda7
7 changed files with 159 additions and 131 deletions

View File

@@ -45,9 +45,15 @@ namespace MaaWpfGui.Helper
public static DateTimeOffset ReportTime { get; set; }
}
public static int MedicineUsedTimes = 0;
public static int StoneUsedTimes = 0;
public static void ClearCache()
{
SanityReport.HasSanityReport = false;
MedicineUsedTimes = 0;
StoneUsedTimes = 0;
}
}

View File

@@ -503,16 +503,16 @@ namespace MaaWpfGui.Main
case "CloseDown":
return;
case "Recruit":
{
if (msg == AsstMsg.TaskChainError)
{
Instances.RecognizerViewModel.RecruitInfo = LocalizationHelper.GetString("IdentifyTheMistakes");
using var toast = new ToastNotification(LocalizationHelper.GetString("IdentifyTheMistakes"));
toast.Show();
}
if (msg == AsstMsg.TaskChainError)
{
Instances.RecognizerViewModel.RecruitInfo = LocalizationHelper.GetString("IdentifyTheMistakes");
using var toast = new ToastNotification(LocalizationHelper.GetString("IdentifyTheMistakes"));
toast.Show();
}
break;
}
break;
}
}
bool isCopilotTaskChain = taskChain == "Copilot" || taskChain == "VideoRecognition";
@@ -577,15 +577,15 @@ namespace MaaWpfGui.Main
Instances.TaskQueueViewModel.IncreaseCustomInfrastPlanIndex();
break;
case "Mall":
{
if (Instances.TaskQueueViewModel.Stage != string.Empty && Instances.SettingsViewModel.CreditFightTaskEnabled)
{
Instances.SettingsViewModel.LastCreditFightTaskTime = DateTime.UtcNow.ToYjDate().ToFormattedString();
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("CompleteTask") + LocalizationHelper.GetString("CreditFight"));
}
if (Instances.TaskQueueViewModel.Stage != string.Empty && Instances.SettingsViewModel.CreditFightTaskEnabled)
{
Instances.SettingsViewModel.LastCreditFightTaskTime = DateTime.UtcNow.ToYjDate().ToFormattedString();
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("CompleteTask") + LocalizationHelper.GetString("CreditFight"));
}
break;
}
break;
}
}
if (taskChain == "Fight" && SanityReport.HasSanityReport)
@@ -799,147 +799,159 @@ namespace MaaWpfGui.Main
switch (subTask)
{
case "ProcessTask":
{
string taskName = details["details"]?["task"]?.ToString();
int execTimes = (int)details["details"]["exec_times"];
switch (taskName)
{
case "StartButton2":
case "AnnihilationConfirm":
var log = LocalizationHelper.GetString("MissionStart") + $" {execTimes} " + LocalizationHelper.GetString("UnitTime");
if (SanityReport.HasSanityReport)
{
log += "\n" + LocalizationHelper.GetString("CurrentSanity") + $" {SanityReport.Sanity[0]}/{SanityReport.Sanity[1]}";
}
string taskName = details["details"]?["task"]?.ToString();
int execTimes = (int)details["details"]["exec_times"];
Instances.TaskQueueViewModel.AddLog(log, UiLogColor.Info);
break;
switch (taskName)
{
case "StartButton2":
case "AnnihilationConfirm":
var log = LocalizationHelper.GetString("MissionStart") + $" {execTimes} {LocalizationHelper.GetString("UnitTime")}\n";
if (SanityReport.HasSanityReport)
{
log += LocalizationHelper.GetString("CurrentSanity") + $" {SanityReport.Sanity[0]}/{SanityReport.Sanity[1]} ";
}
case "MedicineConfirm":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("MedicineUsed") + $" {execTimes} " + LocalizationHelper.GetString("UnitTime"), UiLogColor.Info);
break;
if (MedicineUsedTimes > 0)
{
log += LocalizationHelper.GetString("MedicineUsedTimes") + $" {MedicineUsedTimes}/{Instances.TaskQueueViewModel.MedicineNumber} ";
}
case "ExpiringMedicineConfirm":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("ExpiringMedicineUsed") + $" {execTimes} " + LocalizationHelper.GetString("UnitTime"), UiLogColor.Info);
break;
if (StoneUsedTimes > 0)
{
log += LocalizationHelper.GetString("StoneUsedTimes") + $" {StoneUsedTimes}/{Instances.TaskQueueViewModel.StoneNumber} ";
}
case "StoneConfirm":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("StoneUsed") + $" {execTimes} " + LocalizationHelper.GetString("UnitTime"), UiLogColor.Info);
break;
Instances.TaskQueueViewModel.AddLog(log.TrimEnd('\n').TrimEnd(' '), UiLogColor.Info);
break;
case "AbandonAction":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("ActingCommandError"), UiLogColor.Error);
break;
case "MedicineConfirm":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("MedicineUsed") + $" {execTimes} " + LocalizationHelper.GetString("UnitTime"), UiLogColor.Info);
MedicineUsedTimes++;
break;
case "RecruitRefreshConfirm":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("LabelsRefreshed"), UiLogColor.Info);
break;
case "ExpiringMedicineConfirm":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("ExpiringMedicineUsed") + $" {execTimes} " + LocalizationHelper.GetString("UnitTime"), UiLogColor.Info);
break;
case "RecruitConfirm":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("RecruitConfirm"), UiLogColor.Info);
break;
case "StoneConfirm":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("StoneUsed") + $" {execTimes} " + LocalizationHelper.GetString("UnitTime"), UiLogColor.Info);
StoneUsedTimes++;
break;
case "InfrastDormDoubleConfirmButton":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("InfrastDormDoubleConfirmed"), UiLogColor.Error);
break;
case "AbandonAction":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("ActingCommandError"), UiLogColor.Error);
break;
/* 肉鸽相关 */
case "StartExplore":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("BegunToExplore") + $" {execTimes} " + LocalizationHelper.GetString("UnitTime"), UiLogColor.Info);
break;
case "RecruitRefreshConfirm":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("LabelsRefreshed"), UiLogColor.Info);
break;
case "StageTraderInvestConfirm":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("HasInvested") + $" {execTimes} " + LocalizationHelper.GetString("UnitTime"), UiLogColor.Info);
break;
case "RecruitConfirm":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("RecruitConfirm"), UiLogColor.Info);
break;
case "ExitThenAbandon":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("ExplorationAbandoned"));
break;
case "InfrastDormDoubleConfirmButton":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("InfrastDormDoubleConfirmed"), UiLogColor.Error);
break;
// case "StartAction":
// Instances.TaskQueueViewModel.AddLog("开始战斗");
// break;
case "MissionCompletedFlag":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("FightCompleted"));
break;
/* 肉鸽相关 */
case "StartExplore":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("BegunToExplore") + $" {execTimes} " + LocalizationHelper.GetString("UnitTime"), UiLogColor.Info);
break;
case "MissionFailedFlag":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("FightFailed"));
break;
case "StageTraderInvestConfirm":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("HasInvested") + $" {execTimes} " + LocalizationHelper.GetString("UnitTime"), UiLogColor.Info);
break;
case "StageTraderEnter":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("Trader"));
break;
case "ExitThenAbandon":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("ExplorationAbandoned"));
break;
case "StageSafeHouseEnter":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("SafeHouse"));
break;
// case "StartAction":
// Instances.TaskQueueViewModel.AddLog("开始战斗");
// break;
case "MissionCompletedFlag":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("FightCompleted"));
break;
case "StageEncounterEnter":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("Encounter"));
break;
case "MissionFailedFlag":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("FightFailed"));
break;
// case "StageBoonsEnter":
// Instances.TaskQueueViewModel.AddLog("古堡馈赠");
// break;
case "StageCombatDpsEnter":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("CombatDps"));
break;
case "StageTraderEnter":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("Trader"));
break;
case "StageEmergencyDps":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("EmergencyDps"));
break;
case "StageSafeHouseEnter":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("SafeHouse"));
break;
case "StageDreadfulFoe":
case "StageDreadfulFoe-5Enter":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("DreadfulFoe"));
break;
case "StageEncounterEnter":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("Encounter"));
break;
case "StageTraderInvestSystemFull":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("UpperLimit"), UiLogColor.Info);
break;
// case "StageBoonsEnter":
// Instances.TaskQueueViewModel.AddLog("古堡馈赠");
// break;
case "StageCombatDpsEnter":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("CombatDps"));
break;
case "OfflineConfirm":
if (Instances.SettingsViewModel.AutoRestartOnDrop)
{
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("GameDrop"), UiLogColor.Warning);
}
else
{
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("GameDropNoRestart"), UiLogColor.Warning);
using var toast = new ToastNotification(LocalizationHelper.GetString("GameDropNoRestart"));
toast.Show();
_ = Instances.TaskQueueViewModel.Stop();
}
case "StageEmergencyDps":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("EmergencyDps"));
break;
break;
case "StageDreadfulFoe":
case "StageDreadfulFoe-5Enter":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("DreadfulFoe"));
break;
case "GamePass":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("RoguelikeGamePass"), UiLogColor.RareOperator);
break;
case "StageTraderInvestSystemFull":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("UpperLimit"), UiLogColor.Info);
break;
case "BattleStartAll":
Instances.CopilotViewModel.AddLog(LocalizationHelper.GetString("MissionStart"), UiLogColor.Info);
break;
case "OfflineConfirm":
if (Instances.SettingsViewModel.AutoRestartOnDrop)
{
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("GameDrop"), UiLogColor.Warning);
}
else
{
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("GameDropNoRestart"), UiLogColor.Warning);
using var toast = new ToastNotification(LocalizationHelper.GetString("GameDropNoRestart"));
toast.Show();
_ = Instances.TaskQueueViewModel.Stop();
}
case "StageTraderSpecialShoppingAfterRefresh":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("RoguelikeSpecialItemBought"), UiLogColor.RareOperator);
break;
break;
case "GamePass":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("RoguelikeGamePass"), UiLogColor.RareOperator);
break;
case "BattleStartAll":
Instances.CopilotViewModel.AddLog(LocalizationHelper.GetString("MissionStart"), UiLogColor.Info);
break;
case "StageTraderSpecialShoppingAfterRefresh":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("RoguelikeSpecialItemBought"), UiLogColor.RareOperator);
break;
}
break;
}
break;
}
case "CombatRecordRecognitionTask":
{
string what = details["what"]?.ToString();
if (!string.IsNullOrEmpty(what))
{
Instances.CopilotViewModel.AddLog(what);
}
string what = details["what"]?.ToString();
if (!string.IsNullOrEmpty(what))
{
Instances.CopilotViewModel.AddLog(what);
}
break;
}
break;
}
}
}

View File

@@ -560,9 +560,11 @@ The video aspect ratio needs to be 16:9 without interference factors such as bla
<system:String x:Key="TheEx">No bonus stage, stopped</system:String>
<system:String x:Key="StageQueue">Stage Queue:</system:String>
<system:String x:Key="UnableToAgent">Unable to use PRTS</system:String>
<system:String x:Key="CurrentSanity">Current Sanity:</system:String>
<system:String x:Key="MissionStart">Mission started</system:String>
<system:String x:Key="UnitTime">times</system:String>
<system:String x:Key="CurrentSanity">Sanity:</system:String>
<system:String x:Key="MedicineUsedTimes">Medicine:</system:String>
<system:String x:Key="StoneUsedTimes">Stone:</system:String>
<system:String x:Key="MedicineUsed">Medicine used</system:String>
<system:String x:Key="ExpiringMedicineUsed">Expiring medicine used</system:String>
<system:String x:Key="StoneUsed">Originite Prime used</system:String>

View File

@@ -560,9 +560,11 @@ Bilibili: ログイン インターフェイスに表示されるアカウント
<system:String x:Key="TheEx">ステージ報酬がないため停止します</system:String>
<system:String x:Key="StageQueue">レベルキュー:</system:String>
<system:String x:Key="UnableToAgent">自動指揮利用不可</system:String>
<system:String x:Key="CurrentSanity">現在理性:</system:String>
<system:String x:Key="MissionStart">行動開始しました</system:String>
<system:String x:Key="UnitTime">回</system:String>
<system:String x:Key="CurrentSanity">理性:</system:String>
<system:String x:Key="MedicineUsedTimes">薬:</system:String>
<system:String x:Key="StoneUsedTimes">石:</system:String>
<system:String x:Key="MedicineUsed">回復剤を使った</system:String>
<system:String x:Key="ExpiringMedicineUsed">48時間以内に期限が切れる回復剤を使った</system:String>
<system:String x:Key="StoneUsed">源石を使った</system:String>

View File

@@ -560,9 +560,11 @@ Bilibili: 로그인 인터페이스에 표시되는 계정 이름(예: 장산)
<system:String x:Key="TheEx">EX 스테이지가 없어 중단되었습니다</system:String>
<system:String x:Key="StageQueue">레벨 대기열:</system:String>
<system:String x:Key="UnableToAgent">프록시 명령을 사용할 수 없습니다</system:String>
<system:String x:Key="CurrentSanity">현재 이성:</system:String>
<system:String x:Key="MissionStart">행동 개시</system:String>
<system:String x:Key="UnitTime">회</system:String>
<system:String x:Key="CurrentSanity">제정신:</system:String>
<system:String x:Key="MedicineUsedTimes">약:</system:String>
<system:String x:Key="StoneUsedTimes">결석:</system:String>
<system:String x:Key="MedicineUsed">이성 회복 아이템을 사용했습니다</system:String>
<system:String x:Key="ExpiringMedicineUsed">만료가 임박한 이성 회복 아이템을 사용했습니다</system:String>
<system:String x:Key="StoneUsed">순오리지늄을 사용했습니다</system:String>

View File

@@ -560,9 +560,11 @@
<system:String x:Key="TheEx">无奖励关卡,已停止</system:String>
<system:String x:Key="StageQueue">关卡队列:</system:String>
<system:String x:Key="UnableToAgent">无法使用代理指挥</system:String>
<system:String x:Key="CurrentSanity">当前理智:</system:String>
<system:String x:Key="MissionStart">已开始行动</system:String>
<system:String x:Key="UnitTime">次</system:String>
<system:String x:Key="CurrentSanity">理智:</system:String>
<system:String x:Key="MedicineUsedTimes">药:</system:String>
<system:String x:Key="StoneUsedTimes">石:</system:String>
<system:String x:Key="MedicineUsed">已使用理智药</system:String>
<system:String x:Key="ExpiringMedicineUsed">已使用 48 小时内过期的理智药</system:String>
<system:String x:Key="StoneUsed">已使用源石</system:String>

View File

@@ -560,9 +560,11 @@
<system:String x:Key="TheEx">無獎勵關卡,已停止</system:String>
<system:String x:Key="StageQueue">關卡隊列:</system:String>
<system:String x:Key="UnableToAgent">無法使用代理指揮</system:String>
<system:String x:Key="CurrentSanity">當前理智:</system:String>
<system:String x:Key="MissionStart">已開始行動</system:String>
<system:String x:Key="UnitTime">次</system:String>
<system:String x:Key="CurrentSanity">理智:</system:String>
<system:String x:Key="MedicineUsedTimes">藥:</system:String>
<system:String x:Key="StoneUsedTimes">石:</system:String>
<system:String x:Key="MedicineUsed">已使用理智藥</system:String>
<system:String x:Key="ExpiringMedicineUsed">已使用 48 小時內過期的理智藥</system:String>
<system:String x:Key="StoneUsed">已使用源石</system:String>