From 069407abbcf9ecdb330e631ca606fb8aedd615c2 Mon Sep 17 00:00:00 2001 From: Lightczx <1686188646@qq.com> Date: Tue, 11 Jun 2024 15:06:15 +0800 Subject: [PATCH] use weapon sort --- src/Snap.Hutao/Snap.Hutao/Model/Metadata/Weapon/Weapon.cs | 2 ++ .../Snap.Hutao/Service/Inventory/MinimalPromotionDelta.cs | 8 +++++++- .../Snap.Hutao/ViewModel/Wiki/WikiWeaponViewModel.cs | 4 +--- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Weapon/Weapon.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Weapon/Weapon.cs index 46233381..45ae638b 100644 --- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Weapon/Weapon.cs +++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Weapon/Weapon.cs @@ -24,6 +24,8 @@ internal sealed partial class Weapon : INameQualityAccess, public PromoteId PromoteId { get; set; } + public uint Sort { get; set; } + public WeaponType WeaponType { get; set; } public QualityType RankLevel { get; set; } diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Inventory/MinimalPromotionDelta.cs b/src/Snap.Hutao/Snap.Hutao/Service/Inventory/MinimalPromotionDelta.cs index 1b5066ac..20ff1007 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Inventory/MinimalPromotionDelta.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Inventory/MinimalPromotionDelta.cs @@ -4,6 +4,7 @@ using Google.OrTools.LinearSolver; using Microsoft.Extensions.Caching.Memory; using Snap.Hutao.Core; +using Snap.Hutao.Core.Diagnostics; using Snap.Hutao.Core.ExceptionService; using Snap.Hutao.Model.Metadata.Abstraction; using Snap.Hutao.Model.Primitive; @@ -21,6 +22,7 @@ internal sealed partial class MinimalPromotionDelta { private const string CacheKey = $"{nameof(MinimalPromotionDelta)}.Cache"; + private readonly ILogger logger; private readonly IMetadataService metadataService; private readonly IMemoryCache memoryCache; @@ -37,7 +39,11 @@ internal sealed partial class MinimalPromotionDelta .. (await metadataService.GetWeaponListAsync().ConfigureAwait(false)).Where(w => w.Quality >= Model.Intrinsic.QualityType.QUALITY_BLUE), ]; - List minimal = Minimize(cultivationItemsEntryList); + List minimal; + using (ValueStopwatch.MeasureExecution(logger)) + { + minimal = Minimize(cultivationItemsEntryList); + } // Gurantee the order of avatar and weapon // Make sure weapons can have avatar to attach diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/Wiki/WikiWeaponViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Wiki/WikiWeaponViewModel.cs index a90604e2..03a4cc19 100644 --- a/src/Snap.Hutao/Snap.Hutao/ViewModel/Wiki/WikiWeaponViewModel.cs +++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Wiki/WikiWeaponViewModel.cs @@ -102,9 +102,7 @@ internal sealed partial class WikiWeaponViewModel : Abstraction.ViewModel List weapons = await metadataService.GetWeaponListAsync().ConfigureAwait(false); IEnumerable sorted = weapons - .OrderByDescending(weapon => weapon.RankLevel) - .ThenBy(weapon => weapon.WeaponType) - .ThenByDescending(weapon => weapon.Id.Value); + .OrderByDescending(weapon => weapon.Sort); List list = [.. sorted]; await CombineComplexDataAsync(list, idMaterialMap).ConfigureAwait(false);