diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.en.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.en.resx
index b32c8e9..cf80d67 100644
--- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.en.resx
+++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.en.resx
@@ -2435,9 +2435,6 @@ Space Available: {2}
Material Statistics
-
- Unfinished: {0}
-
No unchecked entries
diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
index 769ed50..5719d09 100644
--- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
+++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
@@ -2486,9 +2486,6 @@
材料统计
-
- 未完成:{0}
-
无未勾选条目
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Cultivation/CultivationService.cs b/src/Snap.Hutao/Snap.Hutao/Service/Cultivation/CultivationService.cs
index cd2badd..75f0b82 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/Cultivation/CultivationService.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/Cultivation/CultivationService.cs
@@ -15,7 +15,6 @@ using Snap.Hutao.Service.Metadata.ContextAbstraction;
using Snap.Hutao.ViewModel.Cultivation;
using System.Collections.Concurrent;
using System.Collections.Generic;
-using System.Globalization;
using System.Collections.Immutable;
using System.Collections.ObjectModel;
using System.Linq;
@@ -135,7 +134,7 @@ internal sealed partial class CultivationService : ICultivationService
}
CultivationStatisticsSurplusMerge.Apply(resultItems, context, mergeOptions);
- ApplyStatisticsConsumerMenuText(resultItems, projectId, context, cultivationRepository);
+ ApplyStatisticsConsumerMenuLines(resultItems, projectId, context, cultivationRepository);
return new(resultItems);
}
@@ -312,7 +311,7 @@ internal sealed partial class CultivationService : ICultivationService
}
}
- private static void ApplyStatisticsConsumerMenuText(
+ private static void ApplyStatisticsConsumerMenuLines(
Dictionary resultItems,
Guid projectId,
ICultivationMetadataContext context,
@@ -339,24 +338,18 @@ internal sealed partial class CultivationService : ICultivationService
{
if (MaterialIds.IsExcludedFromStatisticsConsumerMenu(materialId))
{
- stat.StatisticsConsumerMenuText = SH.ViewPageCultivationStatisticsConsumerMenuExcluded;
+ stat.StatisticsConsumerMenuLines = ImmutableArray.Create(SH.ViewPageCultivationStatisticsConsumerMenuExcluded);
continue;
}
if (unfinishedSegmentsByMaterial.TryGetValue(materialId, out List? segments))
{
segments.Sort(StringComparer.Ordinal);
- stat.StatisticsConsumerMenuText = string.Format(
- CultureInfo.CurrentCulture,
- SH.ViewPageCultivationStatisticsUnfinishedConsumers,
- string.Join(',', segments));
+ stat.StatisticsConsumerMenuLines = ImmutableArray.CreateRange(segments);
}
else
{
- stat.StatisticsConsumerMenuText = string.Format(
- CultureInfo.CurrentCulture,
- SH.ViewPageCultivationStatisticsUnfinishedConsumers,
- SH.ViewPageCultivationStatisticsUnfinishedConsumersEmptyList);
+ stat.StatisticsConsumerMenuLines = ImmutableArray.Create(SH.ViewPageCultivationStatisticsUnfinishedConsumersEmptyList);
}
}
}
diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Page/CultivationPage.xaml b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Page/CultivationPage.xaml
index f57814d..e69d456 100644
--- a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Page/CultivationPage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Page/CultivationPage.xaml
@@ -229,9 +229,21 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/Cultivation/StatisticsCultivateItem.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Cultivation/StatisticsCultivateItem.cs
index 7457426..9a80da8 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/Cultivation/StatisticsCultivateItem.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Cultivation/StatisticsCultivateItem.cs
@@ -2,6 +2,7 @@
// Licensed under the MIT license.
using Snap.Hutao.Model.Metadata.Item;
+using System.Collections.Immutable;
namespace Snap.Hutao.ViewModel.Cultivation;
@@ -67,9 +68,9 @@ internal sealed class StatisticsCultivateItem
public bool IsToday { get => Inner.IsItemOfToday(offset, true); }
///
- /// 材料统计右键菜单中展示的「未完成」养成条目说明(含需求量)。
+ /// 材料统计右键浮层中按行展示的「未完成」养成条目(每人一行,名×数量)。
///
- public string StatisticsConsumerMenuText { get; set; } = string.Empty;
+ public ImmutableArray StatisticsConsumerMenuLines { get; set; }
internal bool ExcludedFromPresentation { get; set; }