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,