diff --git a/RotationSolver/Actions/BaseAction/BaseAction_Target.cs b/RotationSolver/Actions/BaseAction/BaseAction_Target.cs index f63981c02..4e99b5f6c 100644 --- a/RotationSolver/Actions/BaseAction/BaseAction_Target.cs +++ b/RotationSolver/Actions/BaseAction/BaseAction_Target.cs @@ -225,7 +225,7 @@ private bool TargetParty(float range, int aoeCount, bool mustUse, out BattleChar //找到没死的队友们。 var availableCharas = TargetUpdater.PartyMembers.Where(player => player.CurrentHp != 0); - if ((ActionID)ID == ActionID.AethericMimicry) + if (Service.Configuration.TargetFriendly ? _action.CanTargetFriendly : (ActionID)ID == ActionID.AethericMimicry) { availableCharas = availableCharas.Union(TargetUpdater.AllianceMembers); } diff --git a/RotationSolver/Configuration/PluginConfiguration.cs b/RotationSolver/Configuration/PluginConfiguration.cs index bc4a3b060..cc27347b1 100644 --- a/RotationSolver/Configuration/PluginConfiguration.cs +++ b/RotationSolver/Configuration/PluginConfiguration.cs @@ -77,6 +77,8 @@ public class PluginConfiguration : IPluginConfiguration public bool UseHealWhenNotAHealer = true; public float ObjectMinRadius = 0f; public float HealthDifference = 0.25f; + public bool TargetFriendly = false; + public Dictionary HealingOfTimeSubtractSingles { get; set; } = new Dictionary(); public Dictionary HealingOfTimeSubtractAreas { get; set; } = new Dictionary(); diff --git a/RotationSolver/Localization/Strings_Major.cs b/RotationSolver/Localization/Strings_Major.cs index 4991a3d2d..67c5a26c9 100644 --- a/RotationSolver/Localization/Strings_Major.cs +++ b/RotationSolver/Localization/Strings_Major.cs @@ -209,6 +209,7 @@ internal partial class Strings public string Configwindow_Param_MoveTowardsScreen { get; set; } = "Using movement actions towards the object in the center of the screen"; public string Configwindow_Param_MoveTowardsScreenDesc { get; set; } = "Using movement actions towards the object in the center of the screen, otherwise toward the facing object."; public string Configwindow_Param_RaiseAll { get; set; } = "Raise all (include passerby)"; + public string Configwindow_Param_TargetFriendly { get; set; } = "Target all for friendly actions(include passerby)"; public string Configwindow_Param_RaiseBrinkofDeath { get; set; } = "Raise player even has Brink of Death"; public string Configwindow_Param_MoveAreaActionFarthest { get; set; } = "Moving Area Ability to farthest"; public string Configwindow_Param_MoveAreaActionFarthestDesc { get; set; } = "Move to the furthest position from character's face direction."; diff --git a/RotationSolver/Windows/RotationConfigWindow_Param.cs b/RotationSolver/Windows/RotationConfigWindow_Param.cs index 357588f17..b352ecf44 100644 --- a/RotationSolver/Windows/RotationConfigWindow_Param.cs +++ b/RotationSolver/Windows/RotationConfigWindow_Param.cs @@ -385,8 +385,11 @@ private void DrawParamTarget() LocalizationManager.RightLang.Configwindow_Param_MoveTargetAngleDesc); DrawCheckBox(LocalizationManager.RightLang.Configwindow_Param_MoveAreaActionFarthest, - ref Service.Configuration.MoveAreaActionFarthest, - LocalizationManager.RightLang.Configwindow_Param_MoveAreaActionFarthestDesc); + ref Service.Configuration.MoveAreaActionFarthest, + LocalizationManager.RightLang.Configwindow_Param_MoveAreaActionFarthestDesc); + + DrawCheckBox(LocalizationManager.RightLang.Configwindow_Param_TargetFriendly, + ref Service.Configuration.TargetFriendly); DrawCheckBox(LocalizationManager.RightLang.Configwindow_Param_RaiseAll, ref Service.Configuration.RaiseAll);