From 7ee23d3dc93c97e02c286db26d15d475fa3f4f75 Mon Sep 17 00:00:00 2001
From: uye <2396806385@qq.com>
Date: Wed, 4 Jan 2023 21:50:23 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=B4=BB=E5=8A=A8?=
=?UTF-8?q?=E6=8E=89=E8=90=BD=E6=8F=90=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
fix #3279
---
src/MaaWpfGui/Helper/StageInfo.cs | 5 +++
src/MaaWpfGui/Helper/StageManager.cs | 63 ++++++++++++++++++++++++----
2 files changed, 60 insertions(+), 8 deletions(-)
diff --git a/src/MaaWpfGui/Helper/StageInfo.cs b/src/MaaWpfGui/Helper/StageInfo.cs
index 276475a2c4..db3ca7ab54 100644
--- a/src/MaaWpfGui/Helper/StageInfo.cs
+++ b/src/MaaWpfGui/Helper/StageInfo.cs
@@ -42,6 +42,11 @@ namespace MaaWpfGui
///
public bool IsHidden { get; set; }
+ ///
+ /// Gets or sets the stage drop
+ ///
+ public string Drop { get; set; }
+
///
/// Initializes a new instance of the class.
///
diff --git a/src/MaaWpfGui/Helper/StageManager.cs b/src/MaaWpfGui/Helper/StageManager.cs
index 7bbbb35bbf..c75b7499d6 100644
--- a/src/MaaWpfGui/Helper/StageManager.cs
+++ b/src/MaaWpfGui/Helper/StageManager.cs
@@ -13,8 +13,10 @@
using System;
using System.Collections.Generic;
+using System.IO;
using System.Linq;
using System.Text;
+using Newtonsoft.Json;
namespace MaaWpfGui
{
@@ -53,9 +55,9 @@ namespace MaaWpfGui
{ string.Empty, new StageInfo { Display = Localization.GetString("DefaultStage"), Value = string.Empty } },
// SideStory「将进酒」复刻活动
- { "IW-8", new StageInfo { Display = "IW-8", Value = "IW-8", Activity = sideStory } },
- { "IW-7", new StageInfo { Display = "IW-7", Value = "IW-7", Activity = sideStory } },
- { "IW-6", new StageInfo { Display = "IW-6", Value = "IW-6", Activity = sideStory } },
+ { "IW-8", new StageInfo { Display = "IW-8", Value = "IW-8", Drop = "30063", Activity = sideStory } },
+ { "IW-7", new StageInfo { Display = "IW-7", Value = "IW-7", Drop = "30013", Activity = sideStory } },
+ { "IW-6", new StageInfo { Display = "IW-6", Value = "IW-6", Drop = "30103", Activity = sideStory } },
// 主线关卡
{ "1-7", new StageInfo { Display = "1-7", Value = "1-7" } },
@@ -90,6 +92,40 @@ namespace MaaWpfGui
// new StageInfo { Display = Localization.GetString("CurrentStage"), Value = string.Empty },
// new StageInfo { Display = Localization.GetString("LastBattle"), Value = "LastBattle" },
};
+
+ var language = ViewStatusStorage.Get("GUI.Localization", Localization.DefaultLanguage);
+ string filename = string.Empty;
+ if (language == "zh-cn")
+ {
+ filename = Directory.GetCurrentDirectory() + "\\resource\\item_index.json";
+ }
+ else if (language == "pallas")
+ {
+ // DoNothing
+ }
+ else
+ {
+ Dictionary client = new Dictionary
+ {
+ { "zh-tw", "txwy" },
+ { "en-us", "YoStarEN" },
+ { "ja-jp", "YoStarJP" },
+ { "ko-kr", "YoStarKR" },
+ };
+ filename = Directory.GetCurrentDirectory() + "\\resource\\global\\" + client[language] + "\\resource\\item_index.json";
+ }
+
+ if (File.Exists(filename))
+ {
+ try
+ {
+ data = JsonConvert.DeserializeObject>>(File.ReadAllText(filename));
+ }
+ catch
+ {
+ // DoNothing
+ }
+ }
}
///
@@ -114,6 +150,8 @@ namespace MaaWpfGui
return GetStageInfo(stage)?.IsStageOpen(dayOfWeek) == true;
}
+ private readonly Dictionary> data;
+
///
/// Gets open stage tips at specified day of week
///
@@ -127,11 +165,7 @@ namespace MaaWpfGui
{
if (item.Value.IsStageOpen(dayOfWeek))
{
- if (!string.IsNullOrEmpty(item.Value.Tip))
- {
- builder.AppendLine(item.Value.Tip);
- }
- else if (sideStoryFlag && !string.IsNullOrEmpty(item.Value.Activity?.StageName))
+ if (sideStoryFlag && !string.IsNullOrEmpty(item.Value.Activity?.StageName))
{
DateTime dateTime = DateTime.UtcNow;
var daysleftopen = (item.Value.Activity.UtcExpireTime - dateTime).Days;
@@ -141,6 +175,19 @@ namespace MaaWpfGui
+ (daysleftopen > 0 ? daysleftopen.ToString() : Localization.GetString("LessThanOneDay")));
sideStoryFlag = false;
}
+
+ if (!string.IsNullOrEmpty(item.Value.Tip))
+ {
+ builder.AppendLine(item.Value.Tip);
+ }
+
+ if (!string.IsNullOrEmpty(item.Value.Drop))
+ {
+ if (data != null && data.ContainsKey(item.Value.Drop))
+ {
+ builder.AppendLine(item.Value.Display + ": " + data[item.Value.Drop]["name"]);
+ }
+ }
}
}