Skip to content
This repository has been archived by the owner on Aug 28, 2024. It is now read-only.

Commit

Permalink
fix: fix with NoNewHostiles
Browse files Browse the repository at this point in the history
  • Loading branch information
ArchiDog1998 committed Mar 4, 2023
1 parent ea17382 commit 87ea46c
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 8 deletions.
14 changes: 8 additions & 6 deletions RotationSolver/Actions/BaseAction/BaseAction_Target.cs
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,9 @@ private bool TargetSelf(bool mustUse, int aoeCount)

var tars = TargetFilter.GetObjectInRadius(TargetFilterFuncEot(TargetUpdater.HostileTargets, mustUse), _action.EffectRange);
if (tars.Count() < aoeCount) return false;
if (Service.Configuration.NoNewHostiles && tars.Any(t => t.TargetObject == null)) return false;

if (Service.Configuration.NoNewHostiles && TargetFilter.GetObjectInRadius(TargetUpdater.AllHostileTargets, _action.EffectRange)
.Any(t => t.TargetObject == null)) return false;
}
return true;
}
Expand Down Expand Up @@ -388,14 +390,14 @@ private int CanGetTargetCount(BattleChara target, IEnumerable<BattleChara> canAt
}
else if(CanGetTarget(target, t))
{
if (Service.Configuration.NoNewHostiles
&& t.TargetObject == null)
{
return 0;
}
count++;
}
}
if (Service.Configuration.NoNewHostiles)
{
if (TargetUpdater.AllHostileTargets.Where(t => t.TargetObject == null)
.Any(t => CanGetTarget(target, t))) return 0;
}
return count;
}

Expand Down
3 changes: 3 additions & 0 deletions RotationSolver/Rotations/Tank/PLD/PLD_Test.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ private protected override bool AttackAbility(byte abilitiesRemaining, out IActi
&& Requiescat.CanUse(out act, mustUse: true)) return true;

if (!IsMoving && Intervene.CanUse(out act, true, HasFightOrFlight)) return true;

if (HasTankStance && OathGauge == 100 && Sheltron.CanUse(out act)) return true;

return false;
}

Expand Down
6 changes: 4 additions & 2 deletions RotationSolver/Updaters/TargetUpdater_Hostile.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ internal static partial class TargetUpdater
internal static ObjectListDelay<BattleChara> HostileTargets { get; } = new ObjectListDelay<BattleChara>(
() => (Service.Configuration.HostileDelayMin, Service.Configuration.HostileDelayMax));

internal static IEnumerable<BattleChara> AllHostileTargets { get; private set; } = new BattleChara[0];

internal static IEnumerable<BattleChara> TarOnMeTargets { get; private set; } = new BattleChara[0];

internal static ObjectListDelay<BattleChara> CanInterruptTargets { get;} = new ObjectListDelay<BattleChara>(
Expand Down Expand Up @@ -75,7 +77,7 @@ private static float JobRange

private unsafe static void UpdateHostileTargets(IEnumerable<BattleChara> allTargets)
{
var allAttackableTargets = allTargets.Where(b =>
AllHostileTargets = allTargets.Where(b =>
{
if (!b.IsNPCEnemy()) return false;

Expand All @@ -94,7 +96,7 @@ private unsafe static void UpdateHostileTargets(IEnumerable<BattleChara> allTarg
return true;
});

HostileTargets.Delay(GetHostileTargets(allAttackableTargets));
HostileTargets.Delay(GetHostileTargets(AllHostileTargets));

CanInterruptTargets.Delay(HostileTargets.Where(ObjectHelper.CanInterrupt));

Expand Down

0 comments on commit 87ea46c

Please sign in to comment.