Skip to content

Commit 9205b44

Browse files
authored
Merge pull request #619 from FFXIV-CombatReborn/MCHhyper
Low level Hypercharge fix, engagement style removal
2 parents 671a962 + 5f1a066 commit 9205b44

File tree

5 files changed

+16
-10
lines changed

5 files changed

+16
-10
lines changed

BasicRotations/Ranged/MCH_Default.cs

+3
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,9 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act)
8585
// If Wildfire is active, use Hypercharge.....Period
8686
if (Player.HasStatus(true, StatusID.Wildfire_1946) && HyperchargePvE.CanUse(out act)) return true;
8787

88+
// If you cant use Wildfire, use Hypercharge freely
89+
if (!WildfirePvE.EnoughLevel && HyperchargePvE.CanUse(out act)) return true;
90+
8891
// Start Ricochet/Gauss cooldowns rolling
8992
if (!RicochetPvE.Cooldown.IsCoolingDown && RicochetPvE.CanUse(out act)) return true;
9093
if (!GaussRoundPvE.Cooldown.IsCoolingDown && GaussRoundPvE.CanUse(out act)) return true;

BasicRotations/Ranged/MCH_HighEnd.cs

+3
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,9 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act)
8888
// If Wildfire is active, use Hypercharge.....Period
8989
if (Player.HasStatus(true, StatusID.Wildfire_1946) && HyperchargePvE.CanUse(out act)) return true;
9090

91+
// If you cant use Wildfire, use Hypercharge freely
92+
if (!WildfirePvE.EnoughLevel && HyperchargePvE.CanUse(out act)) return true;
93+
9194
// don't do anything that might fuck with burst timings at 100
9295
if (nextGCD.IsTheSameTo(true, FullMetalFieldPvE) || IsLastGCD(true, FullMetalFieldPvE))
9396
{

RotationSolver.Basic/Helpers/ObjectHelper.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -141,9 +141,10 @@ internal static bool IsAttackable(this IBattleChara battleChara)
141141
TargetHostileType.AllTargetsWhenSolo => DataCenter.PartyMembers.Count == 1 || battleChara.TargetObject is IBattleChara,
142142
TargetHostileType.AllTargetsWhenSoloInDuty => (DataCenter.PartyMembers.Count == 1 && (Svc.Condition[ConditionFlag.BoundByDuty] || Svc.Condition[ConditionFlag.BoundByDuty56]))
143143
|| battleChara.TargetObject is IBattleChara,
144-
TargetHostileType.TargetIsInEnemiesList => battleChara.TargetObject is IBattleChara target && target.IsInEnemiesList(),
145-
TargetHostileType.AllTargetsWhenSoloTargetIsInEnemiesList => (DataCenter.PartyMembers.Count == 1 && (Svc.Condition[ConditionFlag.BoundByDuty] || Svc.Condition[ConditionFlag.BoundByDuty56])) || battleChara.TargetObject is IBattleChara target && target.IsInEnemiesList(),
146-
TargetHostileType.AllTargetsWhenSoloInDutyTargetIsInEnemiesList => DataCenter.PartyMembers.Count == 1 || battleChara.TargetObject is IBattleChara target && target.IsInEnemiesList(),
144+
//Below options do not work while in party, isAttackable will always return false
145+
//TargetHostileType.TargetIsInEnemiesList => battleChara.TargetObject is IBattleChara target && target.IsInEnemiesList(),
146+
//TargetHostileType.AllTargetsWhenSoloTargetIsInEnemiesList => (DataCenter.PartyMembers.Count == 1 && (Svc.Condition[ConditionFlag.BoundByDuty] || Svc.Condition[ConditionFlag.BoundByDuty56])) || battleChara.TargetObject is IBattleChara target && target.IsInEnemiesList(),
147+
//TargetHostileType.AllTargetsWhenSoloInDutyTargetIsInEnemiesList => DataCenter.PartyMembers.Count == 1 || battleChara.TargetObject is IBattleChara target && target.IsInEnemiesList(),
147148
_ => true,
148149
};
149150
}
@@ -166,7 +167,6 @@ private static string RemoveControlCharacters(string input)
166167
return output.ToString();
167168
}
168169

169-
//Below never returns true
170170
internal static unsafe bool IsInEnemiesList(this IBattleChara battleChara)
171171
{
172172
var addons = Service.GetAddons<AddonEnemyList>();

RotationSolver/Updaters/TargetUpdater.cs

+5-5
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ private static readonly ObjectListDelay<IBattleChara>
1313
_raiseAllTargets = new(() => Service.Config.RaiseDelay);
1414

1515
private static DateTime _lastUpdateTimeToKill = DateTime.MinValue;
16-
private static readonly TimeSpan TimeToKillUpdateInterval = TimeSpan.FromSeconds(0.5);
16+
private static readonly TimeSpan TimeToKillUpdateInterval = TimeSpan.FromSeconds(0.1);
1717

1818
internal static void UpdateTargets()
1919
{
@@ -187,10 +187,10 @@ private static List<IBattleChara> GetAllHostileTargets()
187187
{
188188
try
189189
{
190-
var deathParty = DataCenter.PartyMembers?.GetDeath().ToList() ?? new List<IBattleChara>();
191-
var deathAll = DataCenter.AllTargets?.GetDeath().ToList() ?? new List<IBattleChara>();
192-
var deathNPC = DataCenter.FriendlyNPCMembers?.GetDeath().ToList() ?? new List<IBattleChara>();
193-
var deathAllianceMembers = DataCenter.AllianceMembers?.GetDeath().ToList() ?? new List<IBattleChara>();
190+
var deathParty = DataCenter.PartyMembers?.GetDeath().ToList() ?? [];
191+
var deathAll = DataCenter.AllTargets?.GetDeath().ToList() ?? [];
192+
var deathNPC = DataCenter.FriendlyNPCMembers?.GetDeath().ToList() ?? [];
193+
var deathAllianceMembers = DataCenter.AllianceMembers?.GetDeath().ToList() ?? [];
194194
var deathAllianceHealers = new List<IBattleChara>(deathParty);
195195
var deathAllianceSupports = new List<IBattleChara>(deathParty);
196196

0 commit comments

Comments
 (0)