diff --git a/BetterGenshinImpact/GameTask/AutoPathing/Handler/ActionFactory.cs b/BetterGenshinImpact/GameTask/AutoPathing/Handler/ActionFactory.cs index 03a5e326..c8ee2eb6 100644 --- a/BetterGenshinImpact/GameTask/AutoPathing/Handler/ActionFactory.cs +++ b/BetterGenshinImpact/GameTask/AutoPathing/Handler/ActionFactory.cs @@ -16,6 +16,8 @@ public class ActionFactory "nahida_collect" => new NahidaCollectHandler(), "pick_around" => new PickAroundHandler(), "fight" => new AutoFightHandler(), + "normal_attack" => new NormalAttackHandler(), + "elemental_skill" => new ElementalSkillHandler(), _ => throw new ArgumentException("未知的 action 类型") }; }); diff --git a/BetterGenshinImpact/GameTask/AutoPathing/Handler/ElementalSkillHandler.cs b/BetterGenshinImpact/GameTask/AutoPathing/Handler/ElementalSkillHandler.cs new file mode 100644 index 00000000..7ee9465c --- /dev/null +++ b/BetterGenshinImpact/GameTask/AutoPathing/Handler/ElementalSkillHandler.cs @@ -0,0 +1,19 @@ +using System; +using System.Threading; +using System.Threading.Tasks; +using BetterGenshinImpact.Core.Simulator; +using Vanara.PInvoke; + +namespace BetterGenshinImpact.GameTask.AutoPathing.Handler; + +/// +/// 触发元素战技 +/// +public class ElementalSkillHandler : IActionHandler +{ + public Task RunAsync(CancellationTokenSource cts) + { + Simulation.SendInput.Keyboard.KeyPress(User32.VK.VK_E); + return Task.CompletedTask; + } +} diff --git a/BetterGenshinImpact/GameTask/AutoPathing/Handler/NormalAttackHandler.cs b/BetterGenshinImpact/GameTask/AutoPathing/Handler/NormalAttackHandler.cs new file mode 100644 index 00000000..6c789d71 --- /dev/null +++ b/BetterGenshinImpact/GameTask/AutoPathing/Handler/NormalAttackHandler.cs @@ -0,0 +1,19 @@ +using System; +using System.Threading; +using System.Threading.Tasks; +using BetterGenshinImpact.Core.Simulator; +using Vanara.PInvoke; + +namespace BetterGenshinImpact.GameTask.AutoPathing.Handler; + +/// +/// 触发元素战技 +/// +public class NormalAttackHandler : IActionHandler +{ + public Task RunAsync(CancellationTokenSource cts) + { + Simulation.SendInput.Mouse.LeftButtonClick(); + return Task.CompletedTask; + } +}