From 9363d0a9833ca6b67c4558a99494ad32d5fea12f Mon Sep 17 00:00:00 2001 From: Karaha-Baruha Date: Tue, 24 Sep 2024 06:46:15 -0500 Subject: [PATCH 1/2] remove burst pooling of Ricochet/Gauss in zMCH Beta --- BasicRotations/Ranged/zMCH_Beta.cs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/BasicRotations/Ranged/zMCH_Beta.cs b/BasicRotations/Ranged/zMCH_Beta.cs index 8902a2b..67ee268 100644 --- a/BasicRotations/Ranged/zMCH_Beta.cs +++ b/BasicRotations/Ranged/zMCH_Beta.cs @@ -14,6 +14,9 @@ public sealed class zMCH_Beta : MachinistRotation [RotationConfig(CombatType.PvE, Name = "Delay Drill for combo GCD if have one charge and about to break combo")] private bool HoldDrillForCombo { get; set; } = true; + + [RotationConfig(CombatType.PvE, Name = "Delay Hypercharge for combo GCD if about to break combo")] + private bool HoldHCForCombo { get; set; } = true; #endregion #region Countdown logic @@ -53,7 +56,7 @@ protected override bool EmergencyAbility(IAction nextGCD, out IAction? act) protected override bool AttackAbility(IAction nextGCD, out IAction? act) { // Keeps Ricochet and Gauss cannon Even - bool isRicochetMore = RicochetPvE.EnoughLevel && GaussRoundPvE.Cooldown.CurrentCharges <= RicochetPvE.Cooldown.CurrentCharges; + bool isRicochetMore = RicochetPvE.EnoughLevel && GaussRoundPvE.Cooldown.RecastTimeElapsed <= RicochetPvE.Cooldown.RecastTimeElapsed; // Start Ricochet/Gauss cooldowns rolling if (!RicochetPvE.Cooldown.IsCoolingDown && RicochetPvE.CanUse(out act, skipAoeCheck: true)) return true; @@ -75,7 +78,7 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act) { if ((IsLastAbility(false, HyperchargePvE) || Heat >= 50 || Player.HasStatus(true, StatusID.Hypercharged)) && ToolChargeSoon(out _) && !LowLevelHyperCheck && WildfirePvE.CanUse(out act)) return true; } - // Use Hypercharge if if wildfire will not be up in 30 seconds or if you hit 100 heat + // Use Hypercharge if wildfire will not be up in 30 seconds or if you hit 100 heat if (!LowLevelHyperCheck && !Player.HasStatus(true, StatusID.Reassembled) && (!WildfirePvE.Cooldown.WillHaveOneCharge(30) || (Heat == 100))) { if (ToolChargeSoon(out act)) return true; @@ -84,16 +87,12 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act) // Use Ricochet and Gauss if have pooled charges or is burst window if (isRicochetMore) { - if ((IsLastGCD(true, BlazingShotPvE, HeatBlastPvE) - || RicochetPvE.Cooldown.CurrentCharges >= RicochetPvE.Cooldown.MaxCharges - 1 - || !WildfirePvE.Cooldown.ElapsedAfter(20)) + if (IsLastGCD(true, BlazingShotPvE, HeatBlastPvE) && RicochetPvE.CanUse(out act, skipAoeCheck: true, usedUp: true)) return true; } - if ((IsLastGCD(true, BlazingShotPvE, HeatBlastPvE) - || GaussRoundPvE.Cooldown.CurrentCharges >= GaussRoundPvE.Cooldown.MaxCharges - 1 - || !WildfirePvE.Cooldown.ElapsedAfter(20)) + if (IsLastGCD(true, BlazingShotPvE, HeatBlastPvE) && GaussRoundPvE.CanUse(out act, usedUp: true, skipAoeCheck: true)) return true; @@ -177,7 +176,9 @@ private bool ToolChargeSoon(out IAction? act) (DrillPvE.EnoughLevel && (!DrillPvE.Cooldown.IsCoolingDown)) || // Chainsaw Charge Detection - (ChainSawPvE.EnoughLevel && ChainSawPvE.Cooldown.WillHaveOneCharge(REST_TIME)))) + (ChainSawPvE.EnoughLevel && ChainSawPvE.Cooldown.WillHaveOneCharge(REST_TIME))) + || + (!HoldHCForCombo || !(LiveComboTime <= REST_TIME))) { act = null; return false; From d4d7233a6b0efc554fa7112a0f2fcc27f71adce7 Mon Sep 17 00:00:00 2001 From: Karaha-Baruha Date: Tue, 24 Sep 2024 06:50:06 -0500 Subject: [PATCH 2/2] Slightly relax Ricochet/Gauss pooling in zMCH Beta 2 --- BasicRotations/Ranged/zMCH_Beta_2.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/BasicRotations/Ranged/zMCH_Beta_2.cs b/BasicRotations/Ranged/zMCH_Beta_2.cs index 1fba759..30d3f3c 100644 --- a/BasicRotations/Ranged/zMCH_Beta_2.cs +++ b/BasicRotations/Ranged/zMCH_Beta_2.cs @@ -97,15 +97,15 @@ protected override bool AttackAbility(IAction nextGCD, out IAction? act) if (isRicochetMore) { if ((IsLastGCD(true, BlazingShotPvE, HeatBlastPvE) - || RicochetPvE.Cooldown.RecastTimeElapsed >= 55 - || !WildfirePvE.Cooldown.ElapsedAfter(20)) + || RicochetPvE.Cooldown.RecastTimeElapsed >= 45 + || !BarrelStabilizerPvE.Cooldown.ElapsedAfter(20)) && RicochetPvE.CanUse(out act, skipAoeCheck: true, usedUp: true)) return true; } if ((IsLastGCD(true, BlazingShotPvE, HeatBlastPvE) - || GaussRoundPvE.Cooldown.RecastTimeElapsed >= 55 - || !WildfirePvE.Cooldown.ElapsedAfter(20)) + || GaussRoundPvE.Cooldown.RecastTimeElapsed >= 45 + || !BarrelStabilizerPvE.Cooldown.ElapsedAfter(20)) && GaussRoundPvE.CanUse(out act, usedUp: true, skipAoeCheck: true)) return true;