diff --git a/RotationSolver.Basic/Configuration/PluginConfiguration.cs b/RotationSolver.Basic/Configuration/PluginConfiguration.cs index babf8ca6f..f961c6741 100644 --- a/RotationSolver.Basic/Configuration/PluginConfiguration.cs +++ b/RotationSolver.Basic/Configuration/PluginConfiguration.cs @@ -72,6 +72,7 @@ public class PluginConfiguration : IPluginConfiguration public Vector4 MovingTargetColor = new(0f, 1f, 0.8f, 0.6f); public Vector4 TargetColor = new(1f, 0.2f, 0f, 0.8f); public Vector4 SubTargetColor = new(1f, 0.9f, 0f, 0.8f); + public bool DrawMeleeRange = false; public float DrawingHeight = 3; public float SampleLength = 0.2f; diff --git a/RotationSolver/Localization/Strings.cs b/RotationSolver/Localization/Strings.cs index 248dcab7e..749877038 100644 --- a/RotationSolver/Localization/Strings.cs +++ b/RotationSolver/Localization/Strings.cs @@ -152,7 +152,7 @@ internal partial class Strings public string ConfigWindow_Param_ToastPositional { get; set; } = "Hint positional anticipation by Toast"; public string ConfigWindow_Param_SayPositional { get; set; } = "Hint positional anticipation by shouting"; public string ConfigWindow_Param_DrawPositional { get; set; } = "Draw Positional on the screen"; - + public string ConfigWindow_Param_DrawMeleeRange { get; set; } = "Draw the range of melee on the screen"; public string ConfigWindow_Param_DrawMeleeOffset { get; set; } = "Draw the offset of melee on the screen"; public string ConfigWindow_Param_AlphaInFill { get; set; } = "The alpha value in fill."; public string ConfigWindow_Param_ShowMoveTarget { get; set; } = "Show the target of the move action"; diff --git a/RotationSolver/UI/PainterManager.cs b/RotationSolver/UI/PainterManager.cs index afe7d8ee2..641adb207 100644 --- a/RotationSolver/UI/PainterManager.cs +++ b/RotationSolver/UI/PainterManager.cs @@ -50,23 +50,29 @@ public override void UpdateOnFrame(XIVPainter.XIVPainter painter) } switch (pos) { - case EnemyPositional.Flank: + case EnemyPositional.Flank when Service.Config.DrawPositional: _flankCir.Target = Target; _rearCir.Target = null; _noneCir.Target = null; break; - case EnemyPositional.Rear: + case EnemyPositional.Rear when Service.Config.DrawPositional: _flankCir.Target = null; _rearCir.Target = Target; _noneCir.Target = null; break; - default: + case EnemyPositional.None when Service.Config.DrawMeleeRange: _flankCir.Target = null; _rearCir.Target = null; _noneCir.Target = Target; break; + + default: + _flankCir.Target = null; + _rearCir.Target = null; + _noneCir.Target = null; + break; } } diff --git a/RotationSolver/UI/RotationConfigWindow_Param.cs b/RotationSolver/UI/RotationConfigWindow_Param.cs index b3623dd86..521f04e5c 100644 --- a/RotationSolver/UI/RotationConfigWindow_Param.cs +++ b/RotationSolver/UI/RotationConfigWindow_Param.cs @@ -259,6 +259,9 @@ private void DrawParamDisplay() DrawCheckBox(LocalizationManager.RightLang.ConfigWindow_Param_DrawPositional, ref Service.Config.DrawPositional, Service.Default.DrawPositional); + DrawCheckBox(LocalizationManager.RightLang.ConfigWindow_Param_DrawMeleeRange, + ref Service.Config.DrawMeleeRange, Service.Default.DrawMeleeRange); + DrawCheckBox(LocalizationManager.RightLang.ConfigWindow_Param_DrawMeleeOffset, ref Service.Config.DrawMeleeOffset, Service.Default.DrawMeleeOffset); diff --git a/RotationSolver/Updaters/ActionUpdater.cs b/RotationSolver/Updaters/ActionUpdater.cs index 4e114a5e4..a94899160 100644 --- a/RotationSolver/Updaters/ActionUpdater.cs +++ b/RotationSolver/Updaters/ActionUpdater.cs @@ -41,7 +41,7 @@ internal static void UpdateNextAction() var rightJobAndTarget = (Player.Object.IsJobCategory(JobRole.Tank) || Player.Object.IsJobCategory(JobRole.Melee)) && GcdAction.Target.IsNPCEnemy(); - if (Service.Config.DrawPositional && rightJobAndTarget && GcdAction.IsSingleTarget) + if (rightJobAndTarget && GcdAction.IsSingleTarget) { PainterManager.UpdatePositional(GcdAction.EnemyPositional, GcdAction.Target); }