From 917ba1460d690abb00467134409d6dc264476768 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=89=E9=B8=AD=E8=9B=8B?= Date: Fri, 24 Jan 2025 00:16:11 +0800 Subject: [PATCH 1/4] fix some bug --- .../GameTask/AutoDomain/AutoDomainTask.cs | 1 + .../GameTask/AutoFight/Model/CombatScenes.cs | 18 +++++++++++++++++- BetterGenshinImpact/Helpers/Ui/WindowHelper.cs | 18 +++++++++--------- .../ViewModel/MainWindowViewModel.cs | 11 +++++++---- .../ViewModel/Pages/ScriptControlViewModel.cs | 1 + 5 files changed, 35 insertions(+), 14 deletions(-) diff --git a/BetterGenshinImpact/GameTask/AutoDomain/AutoDomainTask.cs b/BetterGenshinImpact/GameTask/AutoDomain/AutoDomainTask.cs index 0ebd0030..794764f4 100644 --- a/BetterGenshinImpact/GameTask/AutoDomain/AutoDomainTask.cs +++ b/BetterGenshinImpact/GameTask/AutoDomain/AutoDomainTask.cs @@ -436,6 +436,7 @@ public class AutoDomainTask : ISoloTask finally { Logger.LogInformation("自动战斗线程结束"); + combatScenes.AfterTask(); } }, cts.Token); diff --git a/BetterGenshinImpact/GameTask/AutoFight/Model/CombatScenes.cs b/BetterGenshinImpact/GameTask/AutoFight/Model/CombatScenes.cs index ba260122..7d4c26a0 100644 --- a/BetterGenshinImpact/GameTask/AutoFight/Model/CombatScenes.cs +++ b/BetterGenshinImpact/GameTask/AutoFight/Model/CombatScenes.cs @@ -70,6 +70,7 @@ public class CombatScenes : IDisposable { throw new Exception("当前处于联机状态,但是队伍人数超过4人,无法识别"); } + // 联机状态下判断 var onePRa = imageRegion.Find(AutoFightAssets.Instance.OnePRa); var p = "p"; @@ -246,6 +247,21 @@ public class CombatScenes : IDisposable } } + public void AfterTask() + { + var mwk = SelectAvatar("玛薇卡"); + if (mwk != null) + { + foreach (var avatar in Avatars) + { + if (avatar.Name != "玛薇卡") + { + avatar.Switch(); + } + } + } + } + public Avatar? SelectAvatar(string name) { return AvatarMap.GetValueOrDefault(name); @@ -381,4 +397,4 @@ public class CombatScenes : IDisposable { _predictor.Dispose(); } -} +} \ No newline at end of file diff --git a/BetterGenshinImpact/Helpers/Ui/WindowHelper.cs b/BetterGenshinImpact/Helpers/Ui/WindowHelper.cs index f0820b3c..e4e0adb1 100644 --- a/BetterGenshinImpact/Helpers/Ui/WindowHelper.cs +++ b/BetterGenshinImpact/Helpers/Ui/WindowHelper.cs @@ -1,4 +1,5 @@ -using System.Windows.Media; +using System.Diagnostics; +using System.Windows.Media; using BetterGenshinImpact.GameTask; using Wpf.Ui.Controls; @@ -8,30 +9,29 @@ public class WindowHelper { public static void TryApplySystemBackdrop(System.Windows.Window window) { - window.Background = new SolidColorBrush(Colors.Transparent); - if (WindowBackdrop.IsSupported(TaskContext.Instance().Config.CommonConfig.CurrentBackdropType)) { if (TaskContext.Instance().Config.CommonConfig.CurrentBackdropType == WindowBackdropType.Acrylic) { window.Background = new SolidColorBrush(Color.FromArgb(100, 0, 0, 0)); } - + else + { + window.Background = new SolidColorBrush(Colors.Transparent); + } + WindowBackdrop.ApplyBackdrop(window, TaskContext.Instance().Config.CommonConfig.CurrentBackdropType); return; } - if (WindowBackdrop.IsSupported(WindowBackdropType.Mica)) { + window.Background = new SolidColorBrush(Colors.Transparent); WindowBackdrop.ApplyBackdrop(window, WindowBackdropType.Mica); } - else if (WindowBackdrop.IsSupported(WindowBackdropType.Tabbed)) - { - WindowBackdrop.ApplyBackdrop(window, WindowBackdropType.Tabbed); - } else if (WindowBackdrop.IsSupported(WindowBackdropType.Acrylic)) { + window.Background = new SolidColorBrush(Color.FromArgb(100, 0, 0, 0)); WindowBackdrop.ApplyBackdrop(window, WindowBackdropType.Acrylic); } } diff --git a/BetterGenshinImpact/ViewModel/MainWindowViewModel.cs b/BetterGenshinImpact/ViewModel/MainWindowViewModel.cs index ea5c5724..2773d1ef 100644 --- a/BetterGenshinImpact/ViewModel/MainWindowViewModel.cs +++ b/BetterGenshinImpact/ViewModel/MainWindowViewModel.cs @@ -66,12 +66,16 @@ public partial class MainWindowViewModel : ObservableObject, IViewModel [RelayCommand] private void OnSwitchBackdrop() { + if (!OsVersionHelper.IsWindows11_22523_OrGreater) + { + return; // win10 不支持切换主题 + } + CurrentBackdropType = CurrentBackdropType switch { WindowBackdropType.Mica => WindowBackdropType.Acrylic, - WindowBackdropType.Acrylic => WindowBackdropType.Tabbed, - WindowBackdropType.Tabbed => WindowBackdropType.Mica, - _ => WindowBackdropType.Mica + WindowBackdropType.Acrylic => WindowBackdropType.Mica, + _ => WindowBackdropType.Acrylic }; Config.CommonConfig.CurrentBackdropType = CurrentBackdropType; @@ -79,7 +83,6 @@ public partial class MainWindowViewModel : ObservableObject, IViewModel if (Application.Current.MainWindow is MainWindow mainWindow) { mainWindow.Background = new SolidColorBrush(Color.FromArgb(100, 0, 0, 0)); - ; WindowBackdrop.ApplyBackdrop(mainWindow, CurrentBackdropType); } } diff --git a/BetterGenshinImpact/ViewModel/Pages/ScriptControlViewModel.cs b/BetterGenshinImpact/ViewModel/Pages/ScriptControlViewModel.cs index c1bf7ab8..1d8b0387 100644 --- a/BetterGenshinImpact/ViewModel/Pages/ScriptControlViewModel.cs +++ b/BetterGenshinImpact/ViewModel/Pages/ScriptControlViewModel.cs @@ -702,6 +702,7 @@ public partial class ScriptControlViewModel : ObservableObject, INavigationAware private List LoadAllJsScriptProjects() { var path = Global.ScriptPath(); + Directory.CreateDirectory(path); // 获取所有脚本项目 var projects = Directory.GetDirectories(path) .Select(x => new ScriptProject(Path.GetFileName(x))) From 41295100298283553a182527fd9c0aa7d19d2225 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=89=E9=B8=AD=E8=9B=8B?= Date: Fri, 24 Jan 2025 00:16:25 +0800 Subject: [PATCH 2/4] 0.39.6 --- BetterGenshinImpact/BetterGenshinImpact.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BetterGenshinImpact/BetterGenshinImpact.csproj b/BetterGenshinImpact/BetterGenshinImpact.csproj index 1ba8a46a..6edc2fa6 100644 --- a/BetterGenshinImpact/BetterGenshinImpact.csproj +++ b/BetterGenshinImpact/BetterGenshinImpact.csproj @@ -10,7 +10,7 @@ true Assets\Images\logo.ico BetterGI - 0.39.5 + 0.39.6 x64 embedded From 8caa52e988f0a3d05b2a342089a0630c87f95ed0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=89=E9=B8=AD=E8=9B=8B?= Date: Fri, 24 Jan 2025 01:21:09 +0800 Subject: [PATCH 3/4] Acrylic first --- BetterGenshinImpact/Helpers/Ui/WindowHelper.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/BetterGenshinImpact/Helpers/Ui/WindowHelper.cs b/BetterGenshinImpact/Helpers/Ui/WindowHelper.cs index e4e0adb1..c6c5d8c1 100644 --- a/BetterGenshinImpact/Helpers/Ui/WindowHelper.cs +++ b/BetterGenshinImpact/Helpers/Ui/WindowHelper.cs @@ -19,20 +19,20 @@ public class WindowHelper { window.Background = new SolidColorBrush(Colors.Transparent); } - + WindowBackdrop.ApplyBackdrop(window, TaskContext.Instance().Config.CommonConfig.CurrentBackdropType); return; } - if (WindowBackdrop.IsSupported(WindowBackdropType.Mica)) - { - window.Background = new SolidColorBrush(Colors.Transparent); - WindowBackdrop.ApplyBackdrop(window, WindowBackdropType.Mica); - } - else if (WindowBackdrop.IsSupported(WindowBackdropType.Acrylic)) + if (WindowBackdrop.IsSupported(WindowBackdropType.Acrylic)) { window.Background = new SolidColorBrush(Color.FromArgb(100, 0, 0, 0)); WindowBackdrop.ApplyBackdrop(window, WindowBackdropType.Acrylic); } + else if (WindowBackdrop.IsSupported(WindowBackdropType.Mica)) + { + window.Background = new SolidColorBrush(Colors.Transparent); + WindowBackdrop.ApplyBackdrop(window, WindowBackdropType.Mica); + } } } \ No newline at end of file From 158688d435c65a5166f149e2d5bc2afc8348606a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=89=E9=B8=AD=E8=9B=8B?= Date: Fri, 24 Jan 2025 18:08:56 +0800 Subject: [PATCH 4/4] fix patch 1 --- .../Helpers/DirectoryHelper.cs | 30 +++++++++++++++++++ .../ViewModel/MainWindowViewModel.cs | 4 +-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/BetterGenshinImpact/Helpers/DirectoryHelper.cs b/BetterGenshinImpact/Helpers/DirectoryHelper.cs index 71cf1f83..00f9df40 100644 --- a/BetterGenshinImpact/Helpers/DirectoryHelper.cs +++ b/BetterGenshinImpact/Helpers/DirectoryHelper.cs @@ -109,4 +109,34 @@ public class DirectoryHelper CopyDirectory(subDir, destSubDir); // 递归拷贝子目录 } } + + /// + /// 递归删除指定目录及其所有子目录和文件 + /// + /// 要删除的目录的路径 + public static void DeleteDirectoryRecursively(string directoryPath) + { + // 检查目录是否存在 + if (Directory.Exists(directoryPath)) + { + // 获取目录中的所有子目录 + string[] subDirectories = Directory.GetDirectories(directoryPath); + foreach (string subDirectory in subDirectories) + { + // 递归调用删除子目录 + DeleteDirectoryRecursively(subDirectory); + } + + // 获取目录中的所有文件 + string[] files = Directory.GetFiles(directoryPath); + foreach (string file in files) + { + // 删除文件 + File.Delete(file); + } + + // 删除空目录 + Directory.Delete(directoryPath); + } + } } diff --git a/BetterGenshinImpact/ViewModel/MainWindowViewModel.cs b/BetterGenshinImpact/ViewModel/MainWindowViewModel.cs index 2773d1ef..d126f456 100644 --- a/BetterGenshinImpact/ViewModel/MainWindowViewModel.cs +++ b/BetterGenshinImpact/ViewModel/MainWindowViewModel.cs @@ -156,14 +156,14 @@ public partial class MainWindowViewModel : ObservableObject, IViewModel && Directory.Exists(Global.Absolute("BetterGI/User")) ) { - var res = await MessageBox.ShowAsync("检测到旧的 BetterGI 配置,是否迁移配置并清理旧目录?", "BetterGI", System.Windows.MessageBoxButton.YesNo); + var res = await MessageBox.ShowAsync("检测到旧的 BetterGI 配置,是否迁移配置并清理旧目录?", "BetterGI", System.Windows.MessageBoxButton.YesNo, MessageBoxImage.Question); if (res == System.Windows.MessageBoxResult.Yes) { var dir = Global.Absolute("BetterGI/User"); // 迁移配置,拷贝整个目录并覆盖 DirectoryHelper.CopyDirectory(dir, Global.Absolute("User")); // 删除旧目录 - Directory.Delete(Global.Absolute("BetterGI")); + DirectoryHelper.DeleteDirectoryRecursively(Global.Absolute("BetterGI")); } }