diff --git a/RotationSolver/Actions/BaseAction/BaseAction_Target.cs b/RotationSolver/Actions/BaseAction/BaseAction_Target.cs index 0af0d3bcd..a12ad3e18 100644 --- a/RotationSolver/Actions/BaseAction/BaseAction_Target.cs +++ b/RotationSolver/Actions/BaseAction/BaseAction_Target.cs @@ -280,7 +280,7 @@ private bool TargetHostile(float range, bool mustUse, int aoeCount, out BattleCh } //判断一下AOE攻击的时候如果有攻击目标标记目标 - if (_action.CastType > 1 && NoAOEForAttackMark) + if (_action.CastType > 1 && NoAOE) { target = null; return false; @@ -310,7 +310,7 @@ private bool TargetHostileManual(BattleChara b, bool mustUse, int aoeCount, out return true; } - if (Service.Configuration.UseAOEWhenManual || mustUse) + if (Service.Configuration.UseAOEAction && Service.Configuration.UseAOEWhenManual || mustUse) { if (GetMostObjects(TargetFilterFuncEot(TargetUpdater.HostileTargets, mustUse), aoeCount).Contains(b)) { @@ -326,7 +326,7 @@ private bool TargetSelf(bool mustUse, int aoeCount) { if (_action.EffectRange > 0 && !_isFriendly) { - if (NoAOEForAttackMark) + if (NoAOE) { return false; } @@ -479,11 +479,15 @@ unsafe bool CanTargetTo(BattleChara tar) return id is 0 or 565; } - /// - /// 开启攻击标记且有攻击标记目标且不开AOE。 - /// - private static bool NoAOEForAttackMark => - Service.Configuration.ChooseAttackMark - && !Service.Configuration.CanAttackMarkAOE - && MarkingHelper.HaveAttackChara(TargetUpdater.HostileTargets); + private static bool NoAOE + { + get + { + if (!Service.Configuration.UseAOEAction) return true; + + return Service.Configuration.ChooseAttackMark + && !Service.Configuration.CanAttackMarkAOE + && MarkingHelper.HaveAttackChara(TargetUpdater.HostileTargets); + } + } } diff --git a/RotationSolver/Configuration/PluginConfiguration.cs b/RotationSolver/Configuration/PluginConfiguration.cs index f3629bf4a..3237e207c 100644 --- a/RotationSolver/Configuration/PluginConfiguration.cs +++ b/RotationSolver/Configuration/PluginConfiguration.cs @@ -53,6 +53,7 @@ public class PluginConfiguration : IPluginConfiguration public bool AutoShield = true; public bool AddEnemyListToHostile = true; public bool UseAOEWhenManual = false; + public bool UseAOEAction = true; public bool UseItem = false; public bool PositionalFeedback = true; public bool ShowMoveTarget = true; diff --git a/RotationSolver/Localization/Strings_Major.cs b/RotationSolver/Localization/Strings_Major.cs index c1f726da5..66a99a583 100644 --- a/RotationSolver/Localization/Strings_Major.cs +++ b/RotationSolver/Localization/Strings_Major.cs @@ -156,6 +156,8 @@ internal partial class Strings public string Configwindow_Param_ShowInfoOnToast { get; set; } = "Display plugin state on toast"; public string Configwindow_Param_NamePlateIconId { get; set; } = "Player's name plate icon id when state is on. Recommand 61435, 61437"; public string Configwindow_Param_Action { get; set; } = "Action"; + public string Configwindow_Param_UseAOEAction { get; set; } = "Use AOE actions"; + public string Configwindow_Param_UseAOEWhenManual { get; set; } = "Use AOE actions in manual mode"; public string Configwindow_Param_AutoBurst { get; set; } = "Automatic burst"; public string Configwindow_Param_UseAbility { get; set; } = "Auto-use abilities"; diff --git a/RotationSolver/Windows/RotationConfigWindow_Param.cs b/RotationSolver/Windows/RotationConfigWindow_Param.cs index 23f39602d..b57835bda 100644 --- a/RotationSolver/Windows/RotationConfigWindow_Param.cs +++ b/RotationSolver/Windows/RotationConfigWindow_Param.cs @@ -247,12 +247,18 @@ private void DrawParamDisplay() private void DrawParamAction() { - DrawCheckBox(LocalizationManager.RightLang.Configwindow_Param_UseAOEWhenManual, - ref Service.Configuration.UseAOEWhenManual); + DrawCheckBox(LocalizationManager.RightLang.Configwindow_Param_UseAOEAction, + ref Service.Configuration.UseAOEAction); - DrawCheckBox(LocalizationManager.RightLang.Configwindow_Param_NoNewHostiles, - ref Service.Configuration.NoNewHostiles, - LocalizationManager.RightLang.Configwindow_Params_NoNewHostilesDesc); + if(Service.Configuration.UseAOEAction) + { + DrawCheckBox(LocalizationManager.RightLang.Configwindow_Param_UseAOEWhenManual, + ref Service.Configuration.UseAOEWhenManual); + + DrawCheckBox(LocalizationManager.RightLang.Configwindow_Param_NoNewHostiles, + ref Service.Configuration.NoNewHostiles, + LocalizationManager.RightLang.Configwindow_Params_NoNewHostilesDesc); + } ImGui.Separator(); @@ -350,7 +356,7 @@ private void DrawParamTarget() DrawCheckBox(LocalizationManager.RightLang.Configwindow_Param_ChooseAttackMark, ref Service.Configuration.ChooseAttackMark); - if (Service.Configuration.ChooseAttackMark) + if (Service.Configuration.ChooseAttackMark && Service.Configuration.UseAOEAction) { ImGui.Indent();