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

Commit

Permalink
Merge pull request #256 from Karaha-Baruha/main
Browse files Browse the repository at this point in the history
more mch tweaks
  • Loading branch information
LTS-FFXIV authored Sep 25, 2024
2 parents 5f5de7f + 08a92fe commit bf62f8b
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 21 deletions.
19 changes: 8 additions & 11 deletions BasicRotations/Ranged/zMCH_Beta.cs
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act)
// Rook Autoturret/Queen Logic
if (CanUseQueenMeow(out act, nextGCD)) return true;

if (BSPrio && BarrelStabilizerPvE.CanUse(out act)) return true;
if (IsBurst && BSPrio && BarrelStabilizerPvE.CanUse(out act)) return true;

// Burst
if (IsBurst)
Expand All @@ -88,10 +88,7 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act)
if (isRicochetMore && RicochetPvE.CanUse(out act, skipAoeCheck: true, usedUp: true)) return true;
if (GaussRoundPvE.CanUse(out act, usedUp: true, skipAoeCheck: true)) return true;

if (IsBurst)
{
if (BarrelStabilizerPvE.CanUse(out act)) return true;
}
if (IsBurst && BarrelStabilizerPvE.CanUse(out act)) return true;

return base.AttackAbility(nextGCD, out act);
}
Expand Down Expand Up @@ -165,7 +162,7 @@ private bool ToolChargeSoon(out IAction? act)
(!AirAnchorPvE.EnoughLevel && HotShotPvE.EnoughLevel && HotShotPvE.Cooldown.WillHaveOneCharge(REST_TIME))
||
// Drill Charge Detection
(DrillPvE.EnoughLevel && (!DrillPvE.Cooldown.IsCoolingDown))
(DrillPvE.EnoughLevel && (!DrillPvE.Cooldown.WillHaveXCharges(DrillPvE.Cooldown.MaxCharges, REST_TIME)))
||
// Chainsaw Charge Detection
(ChainSawPvE.EnoughLevel && ChainSawPvE.Cooldown.WillHaveOneCharge(REST_TIME))))
Expand Down Expand Up @@ -199,12 +196,12 @@ private bool CanUseQueenMeow(out IAction? act, IAction nextGCD)
bool QueenFifteen = Battery >= 100 && !CombatElapsedLess(590f) && CombatElapsedLess(610f);

if (
(NewQueenLogic &&
(WildfirePvE.Cooldown.WillHaveOneChargeGCD(1)
(NewQueenLogic &&
(WildfirePvE.Cooldown.WillHaveOneChargeGCD(4)
|| !WildfirePvE.Cooldown.ElapsedAfter(10)
|| nextGCD.IsTheSameTo(true, CleanShotPvE) && Battery == 100)
|| (nextGCD.IsTheSameTo(true, AirAnchorPvE, ChainSawPvE, ExcavatorPvE) && (Battery == 90 || Battery == 100)))
|| !NewQueenLogic && (QueenOne || QueenTwo || QueenThree || QueenFour || QueenFive || QueenSix || QueenSeven || QueenEight || QueenNine || QueenTen || QueenEleven || QueenTwelve || QueenThirteen || QueenFourteen || QueenFifteen))
|| (nextGCD.IsTheSameTo(true, CleanShotPvE) && Battery == 100)
|| (nextGCD.IsTheSameTo(true, HotShotPvE, AirAnchorPvE, ChainSawPvE, ExcavatorPvE) && (Battery == 90 || Battery == 100)))
|| !NewQueenLogic && (QueenOne || QueenTwo || QueenThree || QueenFour || QueenFive || QueenSix || QueenSeven || QueenEight || QueenNine || QueenTen || QueenEleven || QueenTwelve || QueenThirteen || QueenFourteen || QueenFifteen)))
{
if (RookAutoturretPvE.CanUse(out act)) return true;
}
Expand Down
21 changes: 11 additions & 10 deletions BasicRotations/Ranged/zMCH_Beta_2.cs
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act)
if (!RicochetPvE.Cooldown.IsCoolingDown && RicochetPvE.CanUse(out act, skipAoeCheck: true)) return true;
if (!GaussRoundPvE.Cooldown.IsCoolingDown && GaussRoundPvE.CanUse(out act, skipAoeCheck: true)) return true;

if (IsLastGCD(true, DrillPvE) && BarrelStabilizerPvE.CanUse(out act)) return true;
if (IsBurst && IsLastGCD(true, DrillPvE) && BarrelStabilizerPvE.CanUse(out act)) return true;

// Rook Autoturret/Queen Logic
if (CanUseQueenMeow(out act, nextGCD)) return true;
Expand All @@ -94,7 +94,7 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act)
&& ToolChargeSoon(out act)) return true;

// Use Ricochet and Gauss if have pooled charges or is burst window
if (isRicochetMore)
if (IsRicochetMore)
{
if ((IsLastGCD(true, BlazingShotPvE, HeatBlastPvE)
|| RicochetPvE.Cooldown.RecastTimeElapsed >= 45
Expand Down Expand Up @@ -185,7 +185,7 @@ private bool ToolChargeSoon(out IAction? act)
(!AirAnchorPvE.EnoughLevel && HotShotPvE.EnoughLevel && HotShotPvE.Cooldown.WillHaveOneCharge(HYPERCHARGE_DURATION))
||
// Drill Charge Detection
(DrillPvE.EnoughLevel && (!DrillPvE.Cooldown.IsCoolingDown))
(DrillPvE.EnoughLevel && !DrillPvE.Cooldown.WillHaveXCharges(DrillPvE.Cooldown.MaxCharges, HYPERCHARGE_DURATION))
||
// Chainsaw Charge Detection
(ChainSawPvE.EnoughLevel && ChainSawPvE.Cooldown.WillHaveOneCharge(HYPERCHARGE_DURATION))))
Expand Down Expand Up @@ -221,15 +221,16 @@ private bool CanUseQueenMeow(out IAction? act, IAction nextGCD)
{
if (RookAutoturretPvE.CanUse(out act)) return true;
}
else if (
// take over with normal logic after queen timings run out in long fights
else if ((!UseBalanceQueenTimings || !CombatElapsedLess(610f)) &&
// ASAP in opener
(CombatElapsedLessGCD(10))
// In first 10 seconds of 2 minute window
|| (!AirAnchorPvE.Cooldown.ElapsedAfter(10) && (Player.HasStatus(true, StatusID.FullMetalMachinist) || BarrelStabilizerPvE.Cooldown.WillHaveOneChargeGCD(4)))
(CombatElapsedLessGCD(10)
// In first ~10 seconds of 2 minute window
|| (!AirAnchorPvE.Cooldown.ElapsedAfter(10) && (BarrelStabilizerPvE.Cooldown.WillHaveOneChargeGCD(4) || !BarrelStabilizerPvE.Cooldown.ElapsedAfter(5))
// or if about to overcap
|| nextGCD.IsTheSameTo(true, CleanShotPvE) && Battery == 100
|| (nextGCD.IsTheSameTo(true, CleanShotPvE) && Battery == 100)
|| (nextGCD.IsTheSameTo(true, AirAnchorPvE, ChainSawPvE, ExcavatorPvE) && (Battery == 90 || Battery == 100))
)
)))
{
if (RookAutoturretPvE.CanUse(out act)) return true;
}
Expand All @@ -241,6 +242,6 @@ private bool CanUseQueenMeow(out IAction? act, IAction nextGCD)
private bool LowLevelHyperCheck => !AutoCrossbowPvE.EnoughLevel && SpreadShotPvE.CanUse(out _);

// Keeps Ricochet and Gauss Cannon Even
private bool isRicochetMore => RicochetPvE.EnoughLevel && GaussRoundPvE.Cooldown.RecastTimeElapsed <= RicochetPvE.Cooldown.RecastTimeElapsed;
private bool IsRicochetMore => RicochetPvE.EnoughLevel && GaussRoundPvE.Cooldown.RecastTimeElapsed <= RicochetPvE.Cooldown.RecastTimeElapsed;
#endregion
}

0 comments on commit bf62f8b

Please sign in to comment.