From a695d178f2832dc47add94ac98b71360fee76654 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=8B=E6=B0=B4?= <1123993881@qq.com> Date: Fri, 2 Jun 2023 09:24:20 +0800 Subject: [PATCH] fix: add a incombat check on Peloton. --- .../Rotations/CustomRotation_Actions.cs | 53 +------------------ XIVPainter | 2 +- 2 files changed, 2 insertions(+), 53 deletions(-) diff --git a/RotationSolver.Basic/Rotations/CustomRotation_Actions.cs b/RotationSolver.Basic/Rotations/CustomRotation_Actions.cs index cd48ed1ff..99038ad0e 100644 --- a/RotationSolver.Basic/Rotations/CustomRotation_Actions.cs +++ b/RotationSolver.Basic/Rotations/CustomRotation_Actions.cs @@ -14,17 +14,11 @@ internal RoleAction(ActionID actionID, JobRole[] roles, ActionOption option = Ac internal bool InRole(JobRole role) => _roles.Contains(role); } - /// - /// 昏乱 - /// public static IBaseAction Addle { get; } = new RoleAction(ActionID.Addle, new JobRole[] { JobRole.RangedMagical }, ActionOption.Defense) { ActionCheck = (b, m) => !b.HasStatus(false, StatusID.Addle), }; - /// - /// 即刻咏唱 - /// public static IBaseAction Swiftcast { get; } = new RoleAction(ActionID.SwiftCast, new JobRole[] { JobRole.RangedMagical, JobRole.Healer }, ActionOption.Buff) { StatusProvide = new StatusID[] @@ -35,9 +29,6 @@ internal RoleAction(ActionID actionID, JobRole[] roles, ActionOption option = Ac } }; - /// - /// 康复 - /// public static IBaseAction Esuna { get; } = new RoleAction(ActionID.Esuna, new JobRole[] { JobRole.Healer }, ActionOption.Heal) { ChoiceTarget = (tars, mustUse) => @@ -54,42 +45,24 @@ internal RoleAction(ActionID actionID, JobRole[] roles, ActionOption option = Ac }, }; - /// - /// 营救 - /// public static IBaseAction Rescue { get; } = new RoleAction(ActionID.Rescue, new JobRole[] { JobRole.Healer }, ActionOption.Heal); - /// - /// 沉静 - /// public static IBaseAction Repose { get; } = new RoleAction(ActionID.Repose, new JobRole[] { JobRole.Healer }); - /// - /// 醒梦(如果MP低于6000那么使用) - /// public static IBaseAction LucidDreaming { get; } = new RoleAction(ActionID.LucidDreaming, new JobRole[] { JobRole.Healer, JobRole.RangedMagical }, ActionOption.Buff) { ActionCheck = (b, m) => Player.CurrentMp < 6000 && InCombat, }; - /// - /// 内丹 - /// public static IBaseAction SecondWind { get; } = new RoleAction(ActionID.SecondWind, new JobRole[] { JobRole.RangedPhysical, JobRole.Melee }, ActionOption.Heal) { ActionCheck = (b, m) => Player?.GetHealthRatio() < Service.Config.HealthSingleAbility && InCombat, }; - /// - /// 亲疏自行 - /// public static IBaseAction ArmsLength { get; } = new RoleAction(ActionID.ArmsLength, new JobRole[] { JobRole.Tank, JobRole.Melee, JobRole.RangedPhysical }, ActionOption.Defense | ActionOption.EndSpecial); - /// - /// 铁壁 - /// public static IBaseAction Rampart { get; } = new RoleAction(ActionID.Rampart, new JobRole[] { JobRole.Tank }, ActionOption.Defense) { StatusProvide = new StatusID[] @@ -145,64 +118,40 @@ internal RoleAction(ActionID actionID, JobRole[] roles, ActionOption option = Ac }), }; - /// - /// 扫腿 - /// public static IBaseAction LegSweep { get; } = new RoleAction(ActionID.LegSweep, new JobRole[] { JobRole.Melee }) { FilterForHostiles = b => b.Where(ObjectHelper.CanInterrupt), }; - /// - /// 伤头 - /// public static IBaseAction HeadGraze { get; } = new RoleAction(ActionID.HeadGraze, new JobRole[] { JobRole.RangedPhysical }) { FilterForHostiles = b => b.Where(ObjectHelper.CanInterrupt), }; - /// - /// 沉稳咏唱 - /// public static IBaseAction SureCast { get; } = new RoleAction(ActionID.SureCast, new JobRole[] { JobRole.RangedMagical, JobRole.Healer }, ActionOption.Heal); - /// - /// 真北 - /// public static IBaseAction TrueNorth { get; } = new RoleAction(ActionID.TrueNorth, new JobRole[] { JobRole.Melee }, ActionOption.Heal) { StatusProvide = new StatusID[] { StatusID.TrueNorth, StatusID.RightEye }, }; - /// - /// 速行 - /// public static IBaseAction Peloton { get; } = new RoleAction(ActionID.Peloton, new JobRole[] { JobRole.RangedPhysical }, ActionOption.Buff) { ActionCheck = (b, m) => NotInCombatDelay && PartyMembers.GetObjectInRadius(20) - .Any(p => p.WillStatusEnd(3, false, StatusID.Peloton)), + .Any(p => p.WillStatusEnd(3, false, StatusID.Peloton) && !p.StatusFlags.HasFlag(Dalamud.Game.ClientState.Objects.Enums.StatusFlags.InCombat)), }; private protected virtual IBaseAction Raise => null; private protected virtual IBaseAction TankStance => null; - /// - /// 当前这个类所有的BaseAction - /// public virtual IBaseAction[] AllBaseActions => GetBaseActions(GetType()).ToArray(); public IAction[] AllActions => Array.Empty().Union(GetBaseItems(GetType())).Union(AllBaseActions).ToArray(); - /// - /// 这个类所有的公开bool值 - /// public PropertyInfo[] AllBools => GetType().GetStaticProperties(); - /// - /// 这个类所有的公开float值 - /// public PropertyInfo[] AllBytes => GetType().GetStaticProperties(); public MethodInfo[] AllTimes => GetType().GetStaticBoolMethodInfo(m => diff --git a/XIVPainter b/XIVPainter index 47f2b8ca5..b5731bac7 160000 --- a/XIVPainter +++ b/XIVPainter @@ -1 +1 @@ -Subproject commit 47f2b8ca5441f64d51e8ade1cee2833b8035822d +Subproject commit b5731bac79f92711f0534a063add2bb63fe19d48