diff --git a/RotationSolver.Basic/Rotations/Basic/MachinistRotation.cs b/RotationSolver.Basic/Rotations/Basic/MachinistRotation.cs index 49ca3d49a..1787e35fc 100644 --- a/RotationSolver.Basic/Rotations/Basic/MachinistRotation.cs +++ b/RotationSolver.Basic/Rotations/Basic/MachinistRotation.cs @@ -7,17 +7,22 @@ partial class MachinistRotation #region Job Gauge /// - /// + /// Gets a value indicating whether the player is currently Overheated. /// public static bool IsOverheated => JobGauge.IsOverheated; /// - /// + /// Gets a value indicating whether the player has an active Robot. + /// + public static bool IsRobotActive => JobGauge.IsRobotActive; + + /// + /// Gets the current Heat level. /// public static byte Heat => JobGauge.Heat; /// - /// + /// Gets the current Overheated Stacks. /// public static byte OverheatedStacks { @@ -29,22 +34,29 @@ public static byte OverheatedStacks } /// - /// + /// Gets the current Battery level. /// public static byte Battery => JobGauge.Battery; /// - /// + /// Gets the battery level of the last summon (robot). /// public static byte LastSummonBatteryPower => JobGauge.LastSummonBatteryPower; static float OverheatTimeRemainingRaw => JobGauge.OverheatTimeRemaining / 1000f; + static float SummonTimeRemainingRaw => JobGauge.SummonTimeRemaining / 1000f; + /// - /// + /// Gets the time remaining for Overheat in seconds minus the DefaultGCDRemain. /// public static float OverheatTime => OverheatTimeRemainingRaw - DataCenter.DefaultGCDRemain; + /// + /// Gets the time remaining for the Rook or Queen in seconds minus the DefaultGCDRemain. + /// + public static float SummonTime => SummonTimeRemainingRaw - DataCenter.DefaultGCDRemain; + /// /// /// @@ -65,9 +77,12 @@ protected static bool OverheatedEndAfterGCD(uint gctCount = 0, float offset = 0) public override void DisplayStatus() { ImGui.Text("IsOverheated: " + IsOverheated.ToString()); + ImGui.Text("IsRobotActive: " + IsRobotActive.ToString()); ImGui.Text("Heat: " + Heat.ToString()); ImGui.Text("Battery: " + Battery.ToString()); ImGui.Text("LastSummonBatteryPower: " + LastSummonBatteryPower.ToString()); + ImGui.Text("SummonTimeRemainingRaw: " + SummonTimeRemainingRaw.ToString()); + ImGui.Text("SummonTime: " + SummonTime.ToString()); ImGui.Text("OverheatTimeRemainingRaw: " + OverheatTimeRemainingRaw.ToString()); ImGui.Text("OverheatTime: " + OverheatTime.ToString()); ImGui.Text("OverheatedStacks: " + OverheatedStacks.ToString()); @@ -92,7 +107,7 @@ static partial void ModifyHotShotPvE(ref ActionSetting setting) static partial void ModifyReassemblePvE(ref ActionSetting setting) { setting.StatusProvide = [StatusID.Reassembled]; - setting.ActionCheck = () => HasHostilesInRange; + setting.ActionCheck = () => HasHostilesInRange && !Player.HasStatus(true, StatusID.Reassembled); } static partial void ModifyGaussRoundPvE(ref ActionSetting setting) @@ -146,6 +161,7 @@ static partial void ModifyRookAutoturretPvE(ref ActionSetting setting) static partial void ModifyRookOverdrivePvE(ref ActionSetting setting) { + setting.ActionCheck = () => JobGauge.IsRobotActive; setting.CreateConfig = () => new ActionConfig() { TimeToKill = 16, @@ -224,6 +240,8 @@ static partial void ModifyHeatedSlugShotPvE(ref ActionSetting setting) static partial void ModifyDismantlePvE(ref ActionSetting setting) { setting.TargetStatusProvide = [StatusID.Dismantled]; + // Pretty sure this will work as intended, but commented out cause I want a 2nd opinion ~ Kirbo + //setting.ActionCheck = () => CurrentTarget != null && !CurrentTarget.HasStatus(false, StatusID.Dismantled); setting.CreateConfig = () => new ActionConfig() { AoeCount = 1,