diff --git a/RotationSolver.Basic/Actions/ActionTargetInfo.cs b/RotationSolver.Basic/Actions/ActionTargetInfo.cs index 2052df350..abea85dc6 100644 --- a/RotationSolver.Basic/Actions/ActionTargetInfo.cs +++ b/RotationSolver.Basic/Actions/ActionTargetInfo.cs @@ -988,6 +988,8 @@ private readonly bool CanGetTarget(IGameObject target, IGameObject subTarget) TargetingType.Small => IGameObjects.OrderBy(p => p.HitboxRadius), TargetingType.HighHP => IGameObjects.OrderByDescending(p => p is IBattleChara b ? b.CurrentHp : 0), TargetingType.LowHP => IGameObjects.OrderBy(p => p is IBattleChara b ? b.CurrentHp : 0), + TargetingType.HighHPPercent => IGameObjects.OrderByDescending(p => p is IBattleChara b ? b.CurrentHp / b.MaxHp : 0), + TargetingType.LowHPPercent => IGameObjects.OrderBy(p => p is IBattleChara b ? b.CurrentHp / b.MaxHp : 0), TargetingType.HighMaxHP => IGameObjects.OrderByDescending(p => p is IBattleChara b ? b.MaxHp : 0), TargetingType.LowMaxHP => IGameObjects.OrderBy(p => p is IBattleChara b ? b.MaxHp : 0), TargetingType.Nearest => IGameObjects.OrderBy(p => p.DistanceToPlayer()), diff --git a/RotationSolver.Basic/Data/TargetType.cs b/RotationSolver.Basic/Data/TargetType.cs index 0e898dd85..226c673c7 100644 --- a/RotationSolver.Basic/Data/TargetType.cs +++ b/RotationSolver.Basic/Data/TargetType.cs @@ -29,6 +29,18 @@ public enum TargetingType [Description("Low HP")] LowHP, + /// + /// Find the target whose HP percentage is highest. + /// + [Description("High HP%")] + HighHPPercent, + + /// + /// Find the target whose HP percentage is lowest. + /// + [Description("Low HP%")] + LowHPPercent, + /// /// Find the target whose max HP is highest. ///