From 2a3100c822c7d94a9844751c0fe94dc54cb03bf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AD=B1=E5=82=91?= Date: Fri, 28 Oct 2022 22:31:46 +0800 Subject: [PATCH] Fix mail item name issue --- Source/GrasscutterTools/Game/ItemMap.cs | 3 ++- Source/GrasscutterTools/Game/Mail/MailItem.cs | 11 ++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Source/GrasscutterTools/Game/ItemMap.cs b/Source/GrasscutterTools/Game/ItemMap.cs index c67aebd..81a8b11 100644 --- a/Source/GrasscutterTools/Game/ItemMap.cs +++ b/Source/GrasscutterTools/Game/ItemMap.cs @@ -60,8 +60,9 @@ namespace GrasscutterTools.Game public int Count => Ids.Length; - public string this[int id] => IdMap.TryGetValue(id, out string name) ? name : "???"; + public string this[int id] => IdMap.TryGetValue(id, out string name) ? name : EmptyName; + public static string EmptyName = "???"; //public int this[string name] => NameMap[name]; public int[] Ids { get; } diff --git a/Source/GrasscutterTools/Game/Mail/MailItem.cs b/Source/GrasscutterTools/Game/Mail/MailItem.cs index f43a775..f6127ef 100644 --- a/Source/GrasscutterTools/Game/Mail/MailItem.cs +++ b/Source/GrasscutterTools/Game/Mail/MailItem.cs @@ -22,12 +22,17 @@ public override string ToString() { + var name = GameData.Items[ItemId]; + if (name == ItemMap.EmptyName) + name = GameData.Weapons[ItemId]; + if (name == ItemMap.EmptyName) + name = GameData.Artifacts[ItemId]; if (ItemLevel > 1) - return $"{ItemId}:{GameData.Items[ItemId]} x{ItemCount} lv{ItemLevel}"; + return $"{ItemId}:{name} x{ItemCount} lv{ItemLevel}"; else if (ItemCount > 1) - return $"{ItemId}:{GameData.Items[ItemId]} x{ItemCount}"; + return $"{ItemId}:{name} x{ItemCount}"; else - return $"{ItemId}:{GameData.Items[ItemId]}"; + return $"{ItemId}:{name}"; } } }