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"]); + } + } } }