From 4ad1f991471d19a91a528de41949359ff2ba0eb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=8B=E6=B0=B4?= <1123993881@qq.com> Date: Fri, 7 Apr 2023 09:25:27 +0800 Subject: [PATCH] fix: add an option for beneficial area on target. --- RotationSolver.Basic/Actions/BaseAction_Target.cs | 7 +++++-- RotationSolver.Basic/Configuration/PluginConfiguration.cs | 1 + RotationSolver/Localization/Strings.cs | 2 ++ RotationSolver/UI/RotationConfigWindow_Param.cs | 6 ++++++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/RotationSolver.Basic/Actions/BaseAction_Target.cs b/RotationSolver.Basic/Actions/BaseAction_Target.cs index af97b586d..6f9fb9716 100644 --- a/RotationSolver.Basic/Actions/BaseAction_Target.cs +++ b/RotationSolver.Basic/Actions/BaseAction_Target.cs @@ -148,8 +148,11 @@ private bool TargetAreaFriend(float range, bool mustUse, PlayerCharacter player) //如果用户不想使用自动友方地面放置功能 if (!Service.Config.UseGroundBeneficialAbility) return false; - //如果当前目标是Boss且有身位,放他身上。 - if (Service.TargetManager.Target is BattleChara b && b.DistanceToPlayer() < range && + if (Service.Config.BeneficialAreaOnTarget && Service.TargetManager.Target != null) + { + _position = Service.TargetManager.Target.Position; + } + else if (Service.TargetManager.Target is BattleChara b && b.DistanceToPlayer() < range && b.IsBoss() && b.HasPositional() && b.HitboxRadius <= 8) { _position = b.Position; diff --git a/RotationSolver.Basic/Configuration/PluginConfiguration.cs b/RotationSolver.Basic/Configuration/PluginConfiguration.cs index 87dc09aa2..eaf2b4dee 100644 --- a/RotationSolver.Basic/Configuration/PluginConfiguration.cs +++ b/RotationSolver.Basic/Configuration/PluginConfiguration.cs @@ -143,6 +143,7 @@ public class PluginConfiguration : IPluginConfiguration public bool EsunaAll = false; public bool OnlyAttackInView = false; public bool OnlyHotOnTanks = false; + public bool BeneficialAreaOnTarget = false; public string PositionalErrorText = string.Empty; public float CountDownAhead = 0.6f; diff --git a/RotationSolver/Localization/Strings.cs b/RotationSolver/Localization/Strings.cs index c1815a250..4e1e249b9 100644 --- a/RotationSolver/Localization/Strings.cs +++ b/RotationSolver/Localization/Strings.cs @@ -197,6 +197,8 @@ internal partial class Strings public string ConfigWindow_Param_OnlyHotOnTanks { get; set; } = "Only use hot actions on tank rols."; + public string ConfigWindow_Param_BeneficialAreaOnTarget { get; set; } = "Use Beneficial Area abilities on target."; + public string ConfigWindow_Param_HealthDifference { get; set; } = "Set the HP standard deviation threshold for using AOE heal (ability & spell)"; public string ConfigWindow_Param_HealthAreaAbility { get; set; } = "Set the HP threshold for using AOE healing ability"; public string ConfigWindow_Param_HealthAreaSpell { get; set; } = "Set the HP threshold for using AOE healing spell"; diff --git a/RotationSolver/UI/RotationConfigWindow_Param.cs b/RotationSolver/UI/RotationConfigWindow_Param.cs index 7ad392266..2a4f67187 100644 --- a/RotationSolver/UI/RotationConfigWindow_Param.cs +++ b/RotationSolver/UI/RotationConfigWindow_Param.cs @@ -373,6 +373,12 @@ private void DrawParamCondition() DrawCheckBox(LocalizationManager.RightLang.ConfigWindow_Param_OnlyHotOnTanks, ref Service.Config.OnlyHotOnTanks, Service.Default.OnlyHotOnTanks); + if (Service.Config.UseGroundBeneficialAbility) + { + DrawCheckBox(LocalizationManager.RightLang.ConfigWindow_Param_BeneficialAreaOnTarget, + ref Service.Config.BeneficialAreaOnTarget, Service.Default.BeneficialAreaOnTarget); + } + const float speed = 0.005f; DrawFloatNumber(LocalizationManager.RightLang.ConfigWindow_Param_MeleeRangeOffset,