Skip to content

Commit

Permalink
Merge pull request #347 from FFXIV-CombatReborn/DisplayStates
Browse files Browse the repository at this point in the history
Add DisplayStatus methods and update various properties
  • Loading branch information
LTS-FFXIV authored Sep 13, 2024
2 parents 064967f + d83290f commit d9d86a5
Show file tree
Hide file tree
Showing 21 changed files with 282 additions and 20 deletions.
8 changes: 7 additions & 1 deletion RotationSolver.Basic/Rotations/Basic/AstrologianRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,13 @@ partial class AstrologianRotation
/// Can use Umbral or Astral draw, active draw matching what the next draw will be, ASTRAL, UMBRAL
/// </summary>
protected static DrawType ActiveDraw => JobGauge.ActiveDraw;

/// <inheritdoc/>
public override void DisplayStatus()
{
ImGui.Text($"DrawnCard: {string.Join(", ", DrawnCard)}");
ImGui.Text($"DrawnCrownCard: {DrawnCrownCard}");
ImGui.Text($"ActiveDraw: {ActiveDraw}");
}
#endregion


Expand Down
12 changes: 12 additions & 0 deletions RotationSolver.Basic/Rotations/Basic/BardRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,18 @@ partial class BardRotation
/// <returns></returns>
protected static bool SongEndAfterGCD(uint gctCount = 0, float offset = 0)
=> SongEndAfter(GCDTime(gctCount, offset));

/// <inheritdoc/>
public override void DisplayStatus()
{
ImGui.Text("Repertoire: " + Repertoire.ToString());
ImGui.Text("Song: " + Song.ToString());
ImGui.Text("LastSong: " + LastSong.ToString());
ImGui.Text("SoulVoice: " + SoulVoice.ToString());
ImGui.Text("SongTimeRaw: " + SongTimeRaw.ToString());
ImGui.Text("SongTime: " + SongTime.ToString());
ImGui.Text("BloodletterMax: " + BloodletterMax.ToString());
}
#endregion

#region PvE
Expand Down
20 changes: 20 additions & 0 deletions RotationSolver.Basic/Rotations/Basic/BlackMageRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,26 @@ public static bool IsPolyglotStacksMaxed
}
}

/// <inheritdoc/>
public override void DisplayStatus()
{
ImGui.Text("HasFire: " + HasFire.ToString());
ImGui.Text("HasThunder: " + HasThunder.ToString());
ImGui.Text("IsPolyglotStacksMaxed: " + IsPolyglotStacksMaxed.ToString());
ImGui.Text("UmbralIceStacks: " + UmbralIceStacks.ToString());
ImGui.Text("AstralFireStacks: " + AstralFireStacks.ToString());
ImGui.Text("AstralSoulStacks: " + AstralSoulStacks.ToString());
ImGui.Text("PolyglotStacks: " + PolyglotStacks.ToString());
ImGui.Text("UmbralHearts: " + UmbralHearts.ToString());
ImGui.Text("IsParadoxActive: " + IsParadoxActive.ToString());
ImGui.Text("UmbralIceStacks: " + UmbralIceStacks.ToString());
ImGui.Text("InUmbralIce: " + InUmbralIce.ToString());
ImGui.Text("InAstralFire: " + InAstralFire.ToString());
ImGui.Text("IsEnochianActive: " + IsEnochianActive.ToString());
ImGui.Text("EnochianTimeRaw: " + EnochianTimeRaw.ToString());
ImGui.Text("EnochianTime: " + EnochianTime.ToString());
}

static partial void ModifyBlizzardPvE(ref ActionSetting setting)
{

Expand Down
9 changes: 9 additions & 0 deletions RotationSolver.Basic/Rotations/Basic/DancerRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,15 @@ partial class DancerRotation
/// </summary>
public static byte CompletedSteps => JobGauge.CompletedSteps;

/// <inheritdoc/>
public override void DisplayStatus()
{
ImGui.Text("IsDancing: " + IsDancing.ToString());
ImGui.Text("Esprit: " + Esprit.ToString());
ImGui.Text("Feathers: " + Feathers.ToString());
ImGui.Text("CompletedSteps: " + CompletedSteps.ToString());
}

static partial void ModifyCascadePvE(ref ActionSetting setting)
{
setting.StatusProvide = [StatusID.SilkenSymmetry];
Expand Down
9 changes: 9 additions & 0 deletions RotationSolver.Basic/Rotations/Basic/DragoonRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,15 @@ partial class DragoonRotation
protected static bool LOTDEndAfterGCD(uint gctCount = 0, float offset = 0)
=> LOTDEndAfter(GCDTime(gctCount, offset));

/// <inheritdoc/>
public override void DisplayStatus()
{
ImGui.Text("EyeCount: " + EyeCount.ToString());
ImGui.Text("FocusCount: " + FocusCount.ToString());
ImGui.Text("LOTDTimeRaw: " + LOTDTimeRaw.ToString());
ImGui.Text("LOTDTime: " + LOTDTime.ToString());
}

//Job

static partial void ModifyTrueThrustPvE(ref ActionSetting setting)
Expand Down
8 changes: 8 additions & 0 deletions RotationSolver.Basic/Rotations/Basic/GunbreakerRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,14 @@ partial class GunbreakerRotation
///
/// </summary>
public static byte MaxAmmo => CartridgeChargeIiTrait.EnoughLevel ? (byte)3 : (byte)2;

/// <inheritdoc/>
public override void DisplayStatus()
{
ImGui.Text("Ammo: " + Ammo.ToString());
ImGui.Text("AmmoComboStep: " + AmmoComboStep.ToString());
ImGui.Text("MaxAmmo: " + MaxAmmo.ToString());
}
#endregion


Expand Down
11 changes: 11 additions & 0 deletions RotationSolver.Basic/Rotations/Basic/MachinistRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,17 @@ partial class MachinistRotation
/// <returns></returns>
protected static bool OverheatedEndAfterGCD(uint gctCount = 0, float offset = 0)
=> OverheatedEndAfter(GCDTime(gctCount, offset));

/// <inheritdoc/>
public override void DisplayStatus()
{
ImGui.Text("IsOverheated: " + IsOverheated.ToString());
ImGui.Text("Heat: " + Heat.ToString());
ImGui.Text("Battery: " + Battery.ToString());
ImGui.Text("LastSummonBatteryPower: " + LastSummonBatteryPower.ToString());
ImGui.Text("OverheatTimeRemainingRaw: " + OverheatTimeRemainingRaw.ToString());
ImGui.Text("OverheatTime: " + OverheatTime.ToString());
}
#endregion

static partial void ModifySplitShotPvE(ref ActionSetting setting)
Expand Down
13 changes: 13 additions & 0 deletions RotationSolver.Basic/Rotations/Basic/MonkRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,19 @@ partial class MonkRotation
/// Gets the amount of available Coeurl Fury stacks.
/// </summary>
public static int CoeurlFury => JobGauge.CoeurlFury;

/// <inheritdoc/>
public override void DisplayStatus()
{
ImGui.Text($"CoeurlFury: {CoeurlFury}");
ImGui.Text($"RaptorFury: {RaptorFury}");
ImGui.Text($"OpoOpoFury: {OpoOpoFury}");
ImGui.Text($"NoNadi: {NoNadi}");
ImGui.Text($"HasLunar: {HasLunar}");
ImGui.Text($"HasSolar: {HasSolar}");
ImGui.Text($"Chakra: {Chakra}");
ImGui.Text($"BeastChakras: {string.Join(", ", BeastChakras)}");
}
#endregion

static partial void ModifyBootshinePvE(ref ActionSetting setting)
Expand Down
28 changes: 27 additions & 1 deletion RotationSolver.Basic/Rotations/Basic/NinjaRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,33 @@ partial class NinjaRotation
/// <summary>
/// Is enough level for Jin
/// </summary>
public static bool HasJin = IncreaseAttackSpeedTrait.EnoughLevel;
public static bool HasJin => IncreaseAttackSpeedTrait.EnoughLevel;

/// <summary>
/// Determines if Trick Attack is in its effective period.
/// </summary>
public bool InTrickAttack => (KunaisBanePvE.Cooldown.IsCoolingDown || TrickAttackPvE.Cooldown.IsCoolingDown) && (!KunaisBanePvE.Cooldown.ElapsedAfter(17) || !TrickAttackPvE.Cooldown.ElapsedAfter(17));

/// <summary>
/// Determines if Mug is in its effective period.
/// </summary>
public bool InMug => MugPvE.Cooldown.IsCoolingDown && !MugPvE.Cooldown.ElapsedAfter(19);

/// <summary>
/// Checks if no ninjutsu action is currently selected or if the Rabbit Medium has been invoked.
/// </summary>
public static bool NoNinjutsu => AdjustId(ActionID.NinjutsuPvE) is ActionID.NinjutsuPvE or ActionID.RabbitMediumPvE;

/// <inheritdoc/>
public override void DisplayStatus()
{
ImGui.Text($"Ninki: {Ninki}");
ImGui.Text($"Kazematoi: {Kazematoi}");
ImGui.Text($"HasJin: {HasJin}");
ImGui.Text($"InTrickAttack: {InTrickAttack}");
ImGui.Text($"InMug: {InMug}");
ImGui.Text($"NoNinjutsu: {NoNinjutsu}");
}
#endregion

static partial void ModifySpinningEdgePvE(ref ActionSetting setting)
Expand Down
12 changes: 12 additions & 0 deletions RotationSolver.Basic/Rotations/Basic/PaladinRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,18 @@ public static byte RequiescatStacks
/// Gets the current level of the Oath gauge.
/// </summary>
public static byte OathGauge => JobGauge.OathGauge;

/// <inheritdoc/>
public override void DisplayStatus()
{
ImGui.Text("RequiescatStacks: " + RequiescatStacks.ToString());
ImGui.Text("OathGauge: " + OathGauge.ToString());
ImGui.Text("HasDivineMight: " + HasDivineMight.ToString());
ImGui.Text("HasFightOrFlight: " + HasFightOrFlight.ToString());
ImGui.Text("CanHealAreaAbility: " + CanHealAreaAbility.ToString());
ImGui.Text("CanHealSingleSpell: " + CanHealSingleSpell.ToString());
}

#endregion

private protected sealed override IBaseAction TankStance => IronWillPvE;
Expand Down
43 changes: 36 additions & 7 deletions RotationSolver.Basic/Rotations/Basic/PictomancerRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,42 @@ public partial class PictomancerRotation

#endregion

/// <inheritdoc/>
public override void DisplayStatus()
{
ImGui.Text($"PaletteGauge: {PaletteGauge}");
ImGui.Text($"Paint: {Paint}");
ImGui.Text($"CreatureMotifDrawn: {CreatureMotifDrawn}");
ImGui.Text($"WeaponMotifDrawn: {WeaponMotifDrawn}");
ImGui.Text($"LandscapeMotifDrawn: {LandscapeMotifDrawn}");
ImGui.Text($"MooglePortraitReady: {MooglePortraitReady}");
ImGui.Text($"MadeenPortraitReady: {MadeenPortraitReady}");
ImGui.Text($"CreatureFlags: {CreatureFlags}");
ImGui.Text($"isPomMotifReady: {isPomMotifReady}");
ImGui.Text($"isWingMotifReady: {isWingMotifReady}");
ImGui.Text($"isClawMotifReady: {isClawMotifReady}");
ImGui.Text($"isMawMotifReady: {isMawMotifReady}");
ImGui.Text($"CanvasFlags: {CanvasFlags}");
ImGui.Text($"isPomMuseReady: {isPomMuseReady}");
ImGui.Text($"isWingMuseReady: {isWingMuseReady}");
ImGui.Text($"isClawMuseReady: {isClawMuseReady}");
ImGui.Text($"isMawMuseReady: {isMawMuseReady}");
ImGui.Text($"isHammerMuseReady: {isHammerMuseReady}");
ImGui.Text($"isStarryMuseReady: {isStarryMuseReady}");
ImGui.Text($"MaxStrikingMuse: {MaxStrikingMuse}");
ImGui.Text($"Level100: {Level100}");
ImGui.Text($"HasSubtractivePalette: {HasSubtractivePalette}");
ImGui.Text($"HasAetherhues: {HasAetherhues}");
ImGui.Text($"HasAetherhues2: {HasAetherhues2}");
ImGui.Text($"HasSubtractiveSpectrum: {HasSubtractiveSpectrum}");
ImGui.Text($"HasHyperphantasia: {HasHyperphantasia}");
ImGui.Text($"HasHammerTime: {HasHammerTime}");
ImGui.Text($"HasMonochromeTones: {HasMonochromeTones}");
ImGui.Text($"HasStarryMuse: {HasStarryMuse}");
ImGui.Text($"HammerStacks: {HammerStacks}");
ImGui.Text($"SubtractiveStacks: {SubtractiveStacks}");
}

#region Job States

/// <summary>
Expand Down Expand Up @@ -189,13 +225,6 @@ public static byte SubtractiveStacks
}
}

/// <inheritdoc/>
public override void DisplayStatus()
{
ImGui.Text("HammerStacks: " + HammerStacks.ToString());
ImGui.Text("SubtractiveStacks: " + SubtractiveStacks.ToString());
}

#endregion

static partial void ModifyFireInRedPvE(ref ActionSetting setting)
Expand Down
15 changes: 15 additions & 0 deletions RotationSolver.Basic/Rotations/Basic/ReaperRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,21 @@ partial class ReaperRotation
///
/// </summary>
public static byte VoidShroud => JobGauge.VoidShroud;

/// <inheritdoc/>
public override void DisplayStatus()
{
ImGui.Text("HasEnshrouded: " + HasEnshrouded.ToString());
ImGui.Text("HasSoulReaver: " + HasSoulReaver.ToString());
ImGui.Text("HasExecutioner: " + HasExecutioner.ToString());
ImGui.Text("HasIdealHost: " + HasIdealHost.ToString());
ImGui.Text("HasOblatio: " + HasOblatio.ToString());
ImGui.Text("HasPerfectioParata: " + HasPerfectioParata.ToString());
ImGui.Text("Soul: " + Soul.ToString());
ImGui.Text("Shroud: " + Shroud.ToString());
ImGui.Text("LemureShroud: " + LemureShroud.ToString());
ImGui.Text("VoidShroud: " + VoidShroud.ToString());
}
#endregion

static partial void ModifySlicePvE(ref ActionSetting setting)
Expand Down
10 changes: 10 additions & 0 deletions RotationSolver.Basic/Rotations/Basic/RedMageRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,16 @@ partial class RedMageRotation
/// Is <see cref="WhiteMana"/> larger than <see cref="BlackMana"/>
/// </summary>
public static bool IsWhiteManaLargerThanBlackMana => WhiteMana > BlackMana;

/// <inheritdoc/>
public override void DisplayStatus()
{
ImGui.Text("WhiteMana: " + WhiteMana.ToString());
ImGui.Text("BlackMana: " + BlackMana.ToString());
ImGui.Text("ManaStacks: " + ManaStacks.ToString());
ImGui.Text("IsWhiteManaLargerThanBlackMana: " + IsWhiteManaLargerThanBlackMana.ToString());
ImGui.Text("CanHealSingleSpell: " + CanHealSingleSpell.ToString());
}
#endregion

private static readonly StatusID[] SwiftcastStatus = [.. StatusHelper.SwiftcastStatus, StatusID.Acceleration];
Expand Down
10 changes: 10 additions & 0 deletions RotationSolver.Basic/Rotations/Basic/SageRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,16 @@ partial class SageRotation
/// <returns></returns>
protected static bool AddersgallEndAfterGCD(uint gctCount = 0, float offset = 0)
=> AddersgallEndAfter(GCDTime(gctCount, offset));

/// <inheritdoc/>
public override void DisplayStatus()
{
ImGui.Text("HasEukrasia: " + HasEukrasia.ToString());
ImGui.Text("Addersgall: " + Addersgall.ToString());
ImGui.Text("Addersting: " + Addersting.ToString());
ImGui.Text("AddersgallTime: " + AddersgallTime.ToString());
ImGui.Text("AddersgallTimerRaw: " + AddersgallTimerRaw.ToString());
}
#endregion

private protected sealed override IBaseAction Raise => EgeiroPvE;
Expand Down
19 changes: 19 additions & 0 deletions RotationSolver.Basic/Rotations/Basic/SamuraiRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,25 @@ partial class SamuraiRotation
public static bool IsMoonTimeLessThanFlower
=> Player.StatusTime(true, StatusID.Fugetsu) < Player.StatusTime(true, StatusID.Fuka);

/// <summary>
///
/// </summary>
public static bool HaveMeikyoShisui => Player.HasStatus(true, StatusID.MeikyoShisui);

/// <inheritdoc/>
public override void DisplayStatus()
{
ImGui.Text("HasSetsu: " + HasSetsu.ToString());
ImGui.Text("HasGetsu: " + HasGetsu.ToString());
ImGui.Text("HasKa: " + HasKa.ToString());
ImGui.Text("Kenki: " + Kenki.ToString());
ImGui.Text("MeditationStacks: " + MeditationStacks.ToString());
ImGui.Text("Kaeshi: " + Kaeshi.ToString());
ImGui.Text("SenCount: " + SenCount.ToString());
ImGui.Text("HasMoon: " + HasMoon.ToString());
ImGui.Text("HasFlower: " + HasFlower.ToString());
ImGui.Text("HaveMeikyoShisui: " + HaveMeikyoShisui.ToString());
}
#endregion

#region PvE Actions
Expand Down
7 changes: 7 additions & 0 deletions RotationSolver.Basic/Rotations/Basic/ScholarRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,13 @@ partial class ScholarRotation
/// </summary>
public static float SeraphTime => SeraphTimeRaw - DataCenter.DefaultGCDRemain;

/// <inheritdoc/>
public override void DisplayStatus()
{
ImGui.Text("FairyGauge: " + FairyGauge.ToString());
ImGui.Text("HasAetherflow: " + HasAetherflow.ToString());
ImGui.Text("SeraphTime: " + SeraphTime.ToString());
}
#endregion
private sealed protected override IBaseAction Raise => ResurrectionPvE;

Expand Down
20 changes: 16 additions & 4 deletions RotationSolver.Basic/Rotations/Basic/SummonerRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -117,15 +117,27 @@ protected static bool AttunmentTimeEndAfterGCD(uint gcdCount = 0, float offset =
///
/// </summary>
private static bool HasSummon => DataCenter.HasPet && SummonTimeEndAfterGCD();
#endregion

/// <inheritdoc/>
public override void DisplayStatus()
{
ImGui.Text("AttunmentTime: " + AttunmentTimeRaw.ToString());
ImGui.Text("SummonTime: " + SummonTimeRaw.ToString());
ImGui.Text("Pet: " + DataCenter.HasPet.ToString());
ImGui.Text("CanHealSingleSpell: " + CanHealSingleSpell.ToString());
ImGui.Text("InBahamut: " + InBahamut.ToString());
ImGui.Text("InSolarBahamut: " + InSolarBahamut.ToString());
ImGui.Text("InPhoenix: " + InPhoenix.ToString());
ImGui.Text("HasAetherflowStacks: " + HasAetherflowStacks.ToString());
ImGui.Text("Attunement: " + Attunement.ToString());
ImGui.Text("IsIfritReady: " + IsIfritReady.ToString());
ImGui.Text("IsTitanReady: " + IsTitanReady.ToString());
ImGui.Text("IsGarudaReady: " + IsGarudaReady.ToString());
ImGui.Text("InIfrit: " + InIfrit.ToString());
ImGui.Text("InTitan: " + InTitan.ToString());
ImGui.Text("InGaruda: " + InGaruda.ToString());
ImGui.Text("SummonTime: " + SummonTime.ToString());
ImGui.Text("AttunmentTime: " + AttunmentTime.ToString());
ImGui.Text("HasSummon: " + HasSummon.ToString());
}
#endregion

static partial void ModifySummonRubyPvE(ref ActionSetting setting)
{
Expand Down
Loading

0 comments on commit d9d86a5

Please sign in to comment.