diff --git a/RotationSolver/Actions/BaseAction/BaseAction_Target.cs b/RotationSolver/Actions/BaseAction/BaseAction_Target.cs index ee4b96314..0af0d3bcd 100644 --- a/RotationSolver/Actions/BaseAction/BaseAction_Target.cs +++ b/RotationSolver/Actions/BaseAction/BaseAction_Target.cs @@ -382,9 +382,14 @@ private int CanGetTargetCount(BattleChara target, IEnumerable canAt int count = 0; foreach (var t in canAttack) { - if(CanGetTarget(target, t)) + if(target == t) { - if (Service.Configuration.NoNewHostiles && t.TargetObject == null) + count++; + } + else if(CanGetTarget(target, t)) + { + if (Service.Configuration.NoNewHostiles + && t.TargetObject == null) { return 0; } diff --git a/RotationSolver/Helpers/ObjectHelper.cs b/RotationSolver/Helpers/ObjectHelper.cs index a632f083c..c4f7ee44e 100644 --- a/RotationSolver/Helpers/ObjectHelper.cs +++ b/RotationSolver/Helpers/ObjectHelper.cs @@ -68,6 +68,7 @@ or 71204 //Main Quest or 71144 //Majur Quest or 71224 //Other Quest or 71244 //Leve + or 71344 //Major Quest ) return true; if(icon == 0) return false; var type = obj.GetEventType(); diff --git a/RotationSolver/Rotations/Basic/BLU_Base.cs b/RotationSolver/Rotations/Basic/BLU_Base.cs index ea8cd7c3a..2d9fcc91e 100644 --- a/RotationSolver/Rotations/Basic/BLU_Base.cs +++ b/RotationSolver/Rotations/Basic/BLU_Base.cs @@ -62,6 +62,7 @@ public bool RightType { get { + if (_type == BLUActionType.None) return true; if (AttackType == BLUAttackType.Physical && _type == BLUActionType.Magical) return false; if (AttackType == BLUAttackType.Magical && _type == BLUActionType.Physical) return false; @@ -795,4 +796,31 @@ private protected override void UpdateInfo() AttackType = (BLUAttackType)Configs.GetCombo("AttackType"); base.UpdateInfo(); } + + private protected override bool HealSingleGCD(out IAction act) + { + if (BlueId == BLUID.Healer) + { + //if (Exuviation.CanUse(out act, mustUse: true)) return true; + + if (PomCure.CanUse(out act)) return true; + } + if (WhiteWind.CanUse(out act, mustUse: true)) return true; + return base.HealSingleGCD(out act); + } + + private protected override bool HealAreaGCD(out IAction act) + { + if (BlueId == BLUID.Healer) + { + //if (Exuviation.CanUse(out act, mustUse: true)) return true; + + if (AngelsSnack.CanUse(out act)) return true; + if (Stotram.CanUse(out act)) return true; + if (Stotram.CanUse(out act)) return true; + } + + if (WhiteWind.CanUse(out act, mustUse: true)) return true; + return base.HealAreaGCD(out act); + } } diff --git a/RotationSolver/Rotations/RangedMagicial/BLU/BLU_25.cs b/RotationSolver/Rotations/RangedMagicial/BLU/BLU_25.cs index c26b58391..9ac8288fc 100644 --- a/RotationSolver/Rotations/RangedMagicial/BLU/BLU_25.cs +++ b/RotationSolver/Rotations/RangedMagicial/BLU/BLU_25.cs @@ -21,6 +21,9 @@ private protected override bool AttackAbility(byte abilitiesRemaining, out IActi private protected override bool GeneralGCD(out IAction act) { + if (ChocoMeteor.CanUse(out act, mustUse: TargetUpdater.HaveCompanion)) return true; + + if (TripleTrident.OnSlot && TripleTrident.RightType && TripleTrident.WillHaveOneChargeGCD(OnSlotCount(Whistle, Tingle), 0)) { if (Whistle.CanUse(out act)) return true; @@ -37,11 +40,5 @@ private protected override bool GeneralGCD(out IAction act) return false; } - - private protected override bool HealAreaGCD(out IAction act) - { - if (WhiteWind.CanUse(out act, mustUse: true)) return true; - return base.HealAreaGCD(out act); - } } #endif \ No newline at end of file diff --git a/RotationSolver/Rotations/RangedMagicial/BLU/BLU_Default.cs b/RotationSolver/Rotations/RangedMagicial/BLU/BLU_Default.cs index 4e217cc21..f29ffc6bd 100644 --- a/RotationSolver/Rotations/RangedMagicial/BLU/BLU_Default.cs +++ b/RotationSolver/Rotations/RangedMagicial/BLU/BLU_Default.cs @@ -101,7 +101,7 @@ private protected override bool GeneralGCD(out IAction act) return false; } - private protected override bool HealAreaGCD(out IAction act) + private protected override bool HealSingleGCD(out IAction act) { if (BlueId == BLUID.Healer) { @@ -119,7 +119,7 @@ private protected override bool HealAreaGCD(out IAction act) if (WhiteWind.CanUse(out act, mustUse: true)) return true; } - return base.HealAreaGCD(out act); + return base.HealSingleGCD(out act); } /// diff --git a/RotationSolver/Windows/RotationConfigWindow_Debug.cs b/RotationSolver/Windows/RotationConfigWindow_Debug.cs index c1c721d1e..d84581902 100644 --- a/RotationSolver/Windows/RotationConfigWindow_Debug.cs +++ b/RotationSolver/Windows/RotationConfigWindow_Debug.cs @@ -63,18 +63,18 @@ private unsafe void DrawStatus() private unsafe void DrawParty() { var status = AgentDeepDungeonStatus.Instance(); - if ((IntPtr)status != IntPtr.Zero) - { - foreach (var item in status->Data->PomanderSpan) - { - ImGui.Text(item.Name.ToString() + " : " + item.ItemId.ToString()); - } - - foreach (var item in status->Data->MagiciteSpan) - { - ImGui.Text(item.Name.ToString() + " : " + item.ItemId.ToString()); - } - } + //if ((IntPtr)status != IntPtr.Zero) + //{ + // foreach (var item in status->Data->PomanderSpan) + // { + // ImGui.Text(item.Name.ToString() + " : " + item.ItemId.ToString()); + // } + + // foreach (var item in status->Data->MagiciteSpan) + // { + // ImGui.Text(item.Name.ToString() + " : " + item.ItemId.ToString()); + // } + //} ImGui.Text("Party: " + TargetUpdater.PartyMembers.Count().ToString()); ImGui.Text("CanHealSingleAbility: " + TargetUpdater.CanHealSingleAbility.ToString());