Skip to content

Commit

Permalink
Merge pull request #619 from FFXIV-CombatReborn/MCHhyper
Browse files Browse the repository at this point in the history
Low level Hypercharge fix, engagement style removal
  • Loading branch information
LTS-FFXIV authored Feb 27, 2025
2 parents 671a962 + 5f1a066 commit 9205b44
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 10 deletions.
3 changes: 3 additions & 0 deletions BasicRotations/Ranged/MCH_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,9 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act)
// If Wildfire is active, use Hypercharge.....Period
if (Player.HasStatus(true, StatusID.Wildfire_1946) && HyperchargePvE.CanUse(out act)) return true;

// If you cant use Wildfire, use Hypercharge freely
if (!WildfirePvE.EnoughLevel && HyperchargePvE.CanUse(out act)) return true;

// Start Ricochet/Gauss cooldowns rolling
if (!RicochetPvE.Cooldown.IsCoolingDown && RicochetPvE.CanUse(out act)) return true;
if (!GaussRoundPvE.Cooldown.IsCoolingDown && GaussRoundPvE.CanUse(out act)) return true;
Expand Down
3 changes: 3 additions & 0 deletions BasicRotations/Ranged/MCH_HighEnd.cs
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,9 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act)
// If Wildfire is active, use Hypercharge.....Period
if (Player.HasStatus(true, StatusID.Wildfire_1946) && HyperchargePvE.CanUse(out act)) return true;

// If you cant use Wildfire, use Hypercharge freely
if (!WildfirePvE.EnoughLevel && HyperchargePvE.CanUse(out act)) return true;

// don't do anything that might fuck with burst timings at 100
if (nextGCD.IsTheSameTo(true, FullMetalFieldPvE) || IsLastGCD(true, FullMetalFieldPvE))
{
Expand Down
8 changes: 4 additions & 4 deletions RotationSolver.Basic/Helpers/ObjectHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -141,9 +141,10 @@ internal static bool IsAttackable(this IBattleChara battleChara)
TargetHostileType.AllTargetsWhenSolo => DataCenter.PartyMembers.Count == 1 || battleChara.TargetObject is IBattleChara,
TargetHostileType.AllTargetsWhenSoloInDuty => (DataCenter.PartyMembers.Count == 1 && (Svc.Condition[ConditionFlag.BoundByDuty] || Svc.Condition[ConditionFlag.BoundByDuty56]))
|| battleChara.TargetObject is IBattleChara,
TargetHostileType.TargetIsInEnemiesList => battleChara.TargetObject is IBattleChara target && target.IsInEnemiesList(),
TargetHostileType.AllTargetsWhenSoloTargetIsInEnemiesList => (DataCenter.PartyMembers.Count == 1 && (Svc.Condition[ConditionFlag.BoundByDuty] || Svc.Condition[ConditionFlag.BoundByDuty56])) || battleChara.TargetObject is IBattleChara target && target.IsInEnemiesList(),
TargetHostileType.AllTargetsWhenSoloInDutyTargetIsInEnemiesList => DataCenter.PartyMembers.Count == 1 || battleChara.TargetObject is IBattleChara target && target.IsInEnemiesList(),
//Below options do not work while in party, isAttackable will always return false
//TargetHostileType.TargetIsInEnemiesList => battleChara.TargetObject is IBattleChara target && target.IsInEnemiesList(),
//TargetHostileType.AllTargetsWhenSoloTargetIsInEnemiesList => (DataCenter.PartyMembers.Count == 1 && (Svc.Condition[ConditionFlag.BoundByDuty] || Svc.Condition[ConditionFlag.BoundByDuty56])) || battleChara.TargetObject is IBattleChara target && target.IsInEnemiesList(),
//TargetHostileType.AllTargetsWhenSoloInDutyTargetIsInEnemiesList => DataCenter.PartyMembers.Count == 1 || battleChara.TargetObject is IBattleChara target && target.IsInEnemiesList(),
_ => true,
};
}
Expand All @@ -166,7 +167,6 @@ private static string RemoveControlCharacters(string input)
return output.ToString();
}

//Below never returns true
internal static unsafe bool IsInEnemiesList(this IBattleChara battleChara)
{
var addons = Service.GetAddons<AddonEnemyList>();
Expand Down
10 changes: 5 additions & 5 deletions RotationSolver/Updaters/TargetUpdater.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ private static readonly ObjectListDelay<IBattleChara>
_raiseAllTargets = new(() => Service.Config.RaiseDelay);

private static DateTime _lastUpdateTimeToKill = DateTime.MinValue;
private static readonly TimeSpan TimeToKillUpdateInterval = TimeSpan.FromSeconds(0.5);
private static readonly TimeSpan TimeToKillUpdateInterval = TimeSpan.FromSeconds(0.1);

internal static void UpdateTargets()
{
Expand Down Expand Up @@ -187,10 +187,10 @@ private static List<IBattleChara> GetAllHostileTargets()
{
try
{
var deathParty = DataCenter.PartyMembers?.GetDeath().ToList() ?? new List<IBattleChara>();
var deathAll = DataCenter.AllTargets?.GetDeath().ToList() ?? new List<IBattleChara>();
var deathNPC = DataCenter.FriendlyNPCMembers?.GetDeath().ToList() ?? new List<IBattleChara>();
var deathAllianceMembers = DataCenter.AllianceMembers?.GetDeath().ToList() ?? new List<IBattleChara>();
var deathParty = DataCenter.PartyMembers?.GetDeath().ToList() ?? [];
var deathAll = DataCenter.AllTargets?.GetDeath().ToList() ?? [];
var deathNPC = DataCenter.FriendlyNPCMembers?.GetDeath().ToList() ?? [];
var deathAllianceMembers = DataCenter.AllianceMembers?.GetDeath().ToList() ?? [];
var deathAllianceHealers = new List<IBattleChara>(deathParty);
var deathAllianceSupports = new List<IBattleChara>(deathParty);

Expand Down

0 comments on commit 9205b44

Please sign in to comment.