From 58643a60b5118747354130ce9d1087dbd5b89bed Mon Sep 17 00:00:00 2001
From: DismissedLight <1686188646@qq.com>
Date: Sun, 15 Oct 2023 16:14:22 +0800
Subject: [PATCH] fix bugs
---
.../Snap.Hutao.Win32/NativeMethods.json | 3 +--
.../Extension/ContentDialogHideToken.cs | 2 +-
.../AvatarInfo/Factory/SummaryHelper.cs | 14 +++++++++++---
.../ViewModel/GachaLog/GachaLogViewModel.cs | 19 ++++++++++++++++++-
4 files changed, 31 insertions(+), 7 deletions(-)
diff --git a/src/Snap.Hutao/Snap.Hutao.Win32/NativeMethods.json b/src/Snap.Hutao/Snap.Hutao.Win32/NativeMethods.json
index 1dfaaafb..bcd1d020 100644
--- a/src/Snap.Hutao/Snap.Hutao.Win32/NativeMethods.json
+++ b/src/Snap.Hutao/Snap.Hutao.Win32/NativeMethods.json
@@ -1,6 +1,5 @@
{
"$schema": "https://raw.githubusercontent.com/microsoft/CsWin32/main/src/Microsoft.Windows.CsWin32/settings.schema.json",
"allowMarshaling": true,
- "useSafeHandles": false,
- "emitSingleFile": true
+ "useSafeHandles": false
}
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Extension/ContentDialogHideToken.cs b/src/Snap.Hutao/Snap.Hutao/Control/Extension/ContentDialogHideToken.cs
index 0e938e27..c0178f3f 100644
--- a/src/Snap.Hutao/Snap.Hutao/Control/Extension/ContentDialogHideToken.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Control/Extension/ContentDialogHideToken.cs
@@ -10,8 +10,8 @@ internal struct ContentDialogHideToken : IDisposable, IAsyncDisposable
private readonly ContentDialog contentDialog;
private readonly ITaskContext taskContext;
- private bool disposed = false;
private bool disposing = false;
+ private bool disposed = false;
public ContentDialogHideToken(ContentDialog contentDialog, ITaskContext taskContext)
{
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/AvatarInfo/Factory/SummaryHelper.cs b/src/Snap.Hutao/Snap.Hutao/Service/AvatarInfo/Factory/SummaryHelper.cs
index b8d79982..0c5ab37e 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/AvatarInfo/Factory/SummaryHelper.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/AvatarInfo/Factory/SummaryHelper.cs
@@ -105,8 +105,12 @@ internal static class SummaryHelper
/// 分数
public static float GetPercentSubAffixScore(in ReliquarySubAffixId appendId)
{
- // 圣遗物相同类型副词条强化档位一共为 4 档
- // 恰好为 70% 80% 90% 100%
+ // 圣遗物相同类型副词条强化档位一共为 4/3/2 档
+ // 五星 为 70% 80% 90% 100%
+ // 四星 为 70% 80% 90% 100%
+ // 三星 为 70% 80% 90% 100%
+ // 二星 为 70% 85% 100%
+ // 二星 为 80% 100%
// 通过计算与最大属性的 Id 差来决定当前副词条的强化档位
uint maxId = GetAffixMaxId(appendId);
uint delta = maxId - appendId;
@@ -119,7 +123,11 @@ internal static class SummaryHelper
(5 or 4 or 3, 3) => 70F,
(2, 0) => 100F,
- (2, 1) => 80F,
+ (2, 1) => 85F,
+ (2, 2) => 70F,
+
+ (1, 0) => 100F,
+ (1, 1) => 80F,
_ => throw Must.NeverHappen($"Unexpected AppendId: {appendId.Value} Delta: {delta}"),
};
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/GachaLogViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/GachaLogViewModel.cs
index 03a39b7c..997e29fe 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/GachaLogViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/GachaLogViewModel.cs
@@ -14,6 +14,7 @@ using Snap.Hutao.Service.GachaLog.QueryProvider;
using Snap.Hutao.Service.Notification;
using Snap.Hutao.View.Dialog;
using System.Collections.ObjectModel;
+using System.Runtime.InteropServices;
using Windows.Storage.Pickers;
namespace Snap.Hutao.ViewModel.GachaLog;
@@ -144,7 +145,23 @@ internal sealed partial class GachaLogViewModel : Abstraction.ViewModel
RefreshStrategy strategy = IsAggressiveRefresh ? RefreshStrategy.AggressiveMerge : RefreshStrategy.LazyMerge;
GachaLogRefreshProgressDialog dialog = await contentDialogFactory.CreateInstanceAsync().ConfigureAwait(false);
- ContentDialogHideToken hideToken = await dialog.BlockAsync(taskContext).ConfigureAwait(false);
+
+ ContentDialogHideToken hideToken;
+ try
+ {
+ hideToken = await dialog.BlockAsync(taskContext).ConfigureAwait(false);
+ }
+ catch (COMException ex)
+ {
+ if (ex.HResult == unchecked((int)0x80000019))
+ {
+ infoBarService.Error(ex);
+ return;
+ }
+
+ throw;
+ }
+
IProgress progress = taskContext.CreateProgressForMainThread(dialog.OnReport);
bool authkeyValid;