From e16cc322e153ec15a42d315b038f995232ed511d Mon Sep 17 00:00:00 2001 From: uye <99072975+ABA2396@users.noreply.github.com> Date: Wed, 19 Nov 2025 23:08:45 +0800 Subject: [PATCH] =?UTF-8?q?rft:=20=E8=B0=83=E6=95=B4=20ExportOperBox=20?= =?UTF-8?q?=E5=86=85=E7=9A=84=E5=8F=98=E9=87=8F=E5=91=BD=E5=90=8D=E4=B8=8E?= =?UTF-8?q?=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ViewModels/UI/ToolboxViewModel.cs | 40 ++++++++++--------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/src/MaaWpfGui/ViewModels/UI/ToolboxViewModel.cs b/src/MaaWpfGui/ViewModels/UI/ToolboxViewModel.cs index 587ae41787..aab37cbb20 100644 --- a/src/MaaWpfGui/ViewModels/UI/ToolboxViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/ToolboxViewModel.cs @@ -813,32 +813,34 @@ public class ToolboxViewModel : Screen return; } - var output = new List(); - var ids = OperBoxDataArray.ToDictionary(op => op.Id); - foreach (var (id, oper) in DataHelper.Operators) + var exportList = new List(); + var userOperMap = OperBoxDataArray.ToDictionary(op => op.Id); + + foreach (var (operId, operInfo) in DataHelper.Operators) { - if (DataHelper.IsCharacterAvailableInClient(oper, SettingsViewModel.GameSettings.ClientType)) + if (!DataHelper.IsCharacterAvailableInClient(operInfo, SettingsViewModel.GameSettings.ClientType)) { - var name = DataHelper.GetLocalizedCharacterName(oper) ?? "???"; - if (ids.TryGetValue(id, out var value)) + continue; + } + + var operName = DataHelper.GetLocalizedCharacterName(operInfo) ?? "???"; + if (userOperMap.TryGetValue(operId, out var value)) + { + exportList.Add(value); + } + else + { + exportList.Add(new OperBoxData.OperData() { - output.Add(value); - } - else - { - output.Add(new OperBoxData.OperData() - { - Id = id, - Name = name, - Rarity = oper.Rarity, - Potential = 0, - }); - } + Id = operId, + Name = operName, + Rarity = operInfo.Rarity, + }); } } System.Windows.Forms.Clipboard.Clear(); - System.Windows.Forms.Clipboard.SetDataObject(JsonConvert.SerializeObject(output, Formatting.Indented)); + System.Windows.Forms.Clipboard.SetDataObject(JsonConvert.SerializeObject(exportList, Formatting.Indented)); OperBoxInfo = LocalizationHelper.GetString("CopiedToClipboard"); }