diff --git a/RotationSolver/ActionSequencer/TargetCondition.cs b/RotationSolver/ActionSequencer/TargetCondition.cs index cd858aaf7..c717ed845 100644 --- a/RotationSolver/ActionSequencer/TargetCondition.cs +++ b/RotationSolver/ActionSequencer/TargetCondition.cs @@ -111,6 +111,14 @@ public override bool IsTrueInside(ICustomRotation rotation) float castTime = tar.TotalCastTime - tar.CurrentCastTime; result = castTime > DistanceOrTime + DataCenter.WeaponRemain; break; + + case TargetConditionType.HP: + result = tar.CurrentHp > GCD; + break; + + case TargetConditionType.MP: + result = tar.CurrentMp > GCD; + break; } return Condition ? !result : result; @@ -196,6 +204,8 @@ public override void DrawInside(ICustomRotation rotation) case TargetConditionType.Distance: case TargetConditionType.StatusEnd: case TargetConditionType.TimeToKill: + case TargetConditionType.HP: + case TargetConditionType.MP: combos = new string[] { ">", "<=" }; break; } @@ -303,7 +313,14 @@ void DrawStatusIcon() case TargetConditionType.CastingActionTimeUntil: ImGui.SameLine(); ImGui.SetNextItemWidth(Math.Max(150 * ImGuiHelpers.GlobalScale, ImGui.CalcTextSize(DistanceOrTime.ToString()).X)); - ImGui.InputFloat($"s##CastingActionTimeUntil{GetHashCode()}", ref DistanceOrTime, .1f); + ImGui.DragFloat($"s##CastingActionTimeUntil{GetHashCode()}", ref DistanceOrTime, .1f); + break; + + case TargetConditionType.MP: + case TargetConditionType.HP: + ImGui.SameLine(); + ImGui.SetNextItemWidth(Math.Max(150 * ImGuiHelpers.GlobalScale, ImGui.CalcTextSize(GCD.ToString()).X)); + ImGui.DragInt($"##HPorMP{GetHashCode()}", ref GCD, .1f); break; } } @@ -321,4 +338,6 @@ public enum TargetConditionType : byte CastingAction, CastingActionTimeUntil, TimeToKill, + HP, + MP, } \ No newline at end of file diff --git a/RotationSolver/Localization/EnumTranslations.cs b/RotationSolver/Localization/EnumTranslations.cs index 6d68a8ce1..3eee17b75 100644 --- a/RotationSolver/Localization/EnumTranslations.cs +++ b/RotationSolver/Localization/EnumTranslations.cs @@ -17,6 +17,8 @@ internal static class EnumTranslations TargetConditionType.CastingAction => LocalizationManager.RightLang.TargetConditionType_CastingAction, TargetConditionType.CastingActionTimeUntil => LocalizationManager.RightLang.TargetConditionType_CastingActionTimeUntil, TargetConditionType.TimeToKill => LocalizationManager.RightLang.TargetConditionType_TimeToKill, + TargetConditionType.HP => LocalizationManager.RightLang.TargetConditionType_HP, + TargetConditionType.MP => LocalizationManager.RightLang.TargetConditionType_MP, _ => string.Empty, }; diff --git a/RotationSolver/Localization/Localization.json b/RotationSolver/Localization/Localization.json index 395d593a2..79155e451 100644 --- a/RotationSolver/Localization/Localization.json +++ b/RotationSolver/Localization/Localization.json @@ -268,6 +268,8 @@ "TargetConditionType_StatusEndGCD": "Status End GCD", "TargetConditionType_CastingAction": "Casting Action", "TargetConditionType_CastingActionTimeUntil": "Casting Action Time Until", + "TargetConditionType_HP": "HP", + "TargetConditionType_MP": "MP", "DescType_BurstActions": "Burst Actions", "DescType_MoveForwardGCD": "Move Forward GCD", "DescType_HealAreaGCD": "Area Healing GCD", @@ -519,5 +521,6 @@ "ConfigWindow_Actions_AOECount": "How many targets are needed to use this action.", "ConfigWindow_Actions_TTK": "TTK that this action needs the target be.", "ConfigWindow_Actions_HealRatio": "The HP ratio to auto heal", - "ConfigWindow_Actions_ConditionDescription": "Forced Condition has a higher priority. If Forced Condition is met, Disabled Condition will be ignored." + "ConfigWindow_Actions_ConditionDescription": "Forced Condition has a higher priority. If Forced Condition is met, Disabled Condition will be ignored.", + "ConfigWindow_Auto_UseResourcesAction": "Use actions that use resources" } \ No newline at end of file diff --git a/RotationSolver/Localization/Strings.cs b/RotationSolver/Localization/Strings.cs index bcd572215..d141d62c7 100644 --- a/RotationSolver/Localization/Strings.cs +++ b/RotationSolver/Localization/Strings.cs @@ -386,6 +386,8 @@ internal class Strings public string TargetConditionType_StatusEndGCD { get; set; } = "Status End GCD"; public string TargetConditionType_CastingAction { get; set; } = "Casting Action"; public string TargetConditionType_CastingActionTimeUntil { get; set; } = "Casting Action Time Until"; + public string TargetConditionType_HP { get; set; } = "HP"; + public string TargetConditionType_MP { get; set; } = "MP"; #endregion