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

Commit

Permalink
fix: roll back the SGE base file.
Browse files Browse the repository at this point in the history
  • Loading branch information
ArchiDog1998 committed Apr 30, 2023
1 parent d340b19 commit bf7b72c
Showing 1 changed file with 34 additions and 55 deletions.
89 changes: 34 additions & 55 deletions RotationSolver.Basic/Rotations/Basic/SGE_Base.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ namespace RotationSolver.Basic.Rotations.Basic;

public abstract class SGE_Base : CustomRotation
{
public override MedicineType MedicineType => MedicineType.Mind;
public sealed override ClassJobID[] JobIDs => new ClassJobID[] { ClassJobID.Sage };

#region Job Gauge
Expand All @@ -11,11 +12,6 @@ public abstract class SGE_Base : CustomRotation
protected static byte Addersgall => JobGauge.Addersgall;

protected static byte Addersting => JobGauge.Addersting;
public override MedicineType MedicineType => MedicineType.Mind;

protected static bool NoOgcds => JobGauge.Addersgall < 1 && (!Physis.EnoughLevel || Physis.IsCoolingDown || Physis2.IsCoolingDown) && (!Haima.EnoughLevel || Haima.IsCoolingDown) && (!Panhaima.EnoughLevel || Panhaima.IsCoolingDown) && (!Holos.EnoughLevel || Holos.IsCoolingDown) && (!Pneuma.EnoughLevel || Pneuma.IsCoolingDown) && (!Rhizomata.EnoughLevel || Rhizomata.IsCoolingDown) && (!Pneuma.EnoughLevel || Krasis.IsCoolingDown);

protected static bool NoOgcdsAOE => JobGauge.Addersgall < 1 && (!Physis.EnoughLevel || Physis.IsCoolingDown || Physis2.IsCoolingDown) && (!Panhaima.EnoughLevel || Panhaima.IsCoolingDown) && (!Holos.EnoughLevel || Holos.IsCoolingDown) && (!Pneuma.EnoughLevel || Pneuma.IsCoolingDown) && (!Rhizomata.EnoughLevel || Rhizomata.IsCoolingDown) && (!Pneuma.EnoughLevel || Krasis.IsCoolingDown);

protected static float AddersgallTimer => JobGauge.AddersgallTimer / 1000f;
protected static bool AddersgallEndAfter(float time) => EndAfter(AddersgallTimer, time);
Expand Down Expand Up @@ -45,15 +41,24 @@ protected static bool AddersgallEndAfterGCD(uint gctCount = 0, float offset = 0)

public static IBaseAction Phlegma3 { get; } = new BaseAction(ActionID.Phlegma3);

private sealed protected override IBaseAction Raise => Egeiro;
public static IBaseAction Egeiro { get; } = new BaseAction(ActionID.Egeiro, ActionOption.Friendly);
public static IBaseAction Toxikon { get; } = new BaseAction(ActionID.Toxikon)
{
ActionCheck = b => Addersting > 0,
};

public static IBaseAction Diagnosis { get; } = new BaseAction(ActionID.Diagnosis, ActionOption.Heal)
public static IBaseAction Rhizomata { get; } = new BaseAction(ActionID.Rhizomata)
{
ActionCheck = b => NoOgcds,
ActionCheck = b => Addersgall < 3,
};

public static IBaseAction Pneuma { get; } = new BaseAction(ActionID.Pneuma);
#endregion

#region Heal
private sealed protected override IBaseAction Raise => Egeiro;
public static IBaseAction Egeiro { get; } = new BaseAction(ActionID.Egeiro, ActionOption.Friendly);
public static IBaseAction Diagnosis { get; } = new BaseAction(ActionID.Diagnosis, ActionOption.Heal);

public static IBaseAction Kardia { get; } = new BaseAction(ActionID.Kardia, ActionOption.Heal)
{
ChoiceTarget = (Targets, mustUse) =>
Expand All @@ -68,13 +73,9 @@ protected static bool AddersgallEndAfterGCD(uint gctCount = 0, float offset = 0)
ActionCheck = b => !b.HasStatus(true, StatusID.Kardion),
};

public static IBaseAction Prognosis { get; } = new BaseAction(ActionID.Prognosis, ActionOption.Heal | ActionOption.EndSpecial)
{
ActionCheck = b => NoOgcdsAOE,
};
public static IBaseAction Prognosis { get; } = new BaseAction(ActionID.Prognosis, ActionOption.Heal | ActionOption.EndSpecial);

public static IBaseAction Physis { get; } = new BaseAction(ActionID.Physis, ActionOption.Heal);

public static IBaseAction Physis2 { get; } = new BaseAction(ActionID.Physis2, ActionOption.Heal);

public static IBaseAction Eukrasia { get; } = new BaseAction(ActionID.Eukrasia, ActionOption.Heal)
Expand Down Expand Up @@ -106,6 +107,20 @@ protected static bool AddersgallEndAfterGCD(uint gctCount = 0, float offset = 0)
{
ActionCheck = b => Addersgall > 0,
};
public static IBaseAction Pepsis { get; } = new BaseAction(ActionID.Pepsis, ActionOption.Heal)
{
ActionCheck = b =>
{
foreach (var chara in DataCenter.PartyMembers)
{
if (chara.HasStatus(true, StatusID.EukrasianDiagnosis, StatusID.EukrasianPrognosis)
&& b.WillStatusEndGCD(2, 0, true, StatusID.EukrasianDiagnosis, StatusID.EukrasianPrognosis)
&& chara.GetHealthRatio() < 0.9) return true;
}

return false;
},
};

public static IBaseAction Haima { get; } = new BaseAction(ActionID.Haima, ActionOption.Heal)
{
Expand All @@ -115,52 +130,16 @@ protected static bool AddersgallEndAfterGCD(uint gctCount = 0, float offset = 0)
public static IBaseAction EukrasianDiagnosis { get; } = new BaseAction(ActionID.EukrasianDiagnosis, ActionOption.Heal)
{
ChoiceTarget = TargetFilter.FindAttackedTarget,
ActionCheck = b => NoOgcds,
};

public static IBaseAction EukrasianPrognosis { get; } = new BaseAction(ActionID.EukrasianPrognosis, ActionOption.Heal)
{
ActionCheck = b => NoOgcdsAOE,
};
public static IBaseAction EukrasianPrognosis { get; } = new BaseAction(ActionID.EukrasianPrognosis, ActionOption.Heal);

public static IBaseAction Toxikon { get; } = new BaseAction(ActionID.Toxikon)
{
ActionCheck = b => Addersting > 0,
};
public static IBaseAction Holos { get; } = new BaseAction(ActionID.Holos, ActionOption.Heal);

public static IBaseAction Rhizomata { get; } = new BaseAction(ActionID.Rhizomata)
{
ActionCheck = b => JobGauge.Addersgall < 3,
};

public static IBaseAction Holos { get; } = new BaseAction(ActionID.Holos, ActionOption.Heal)
{
ActionCheck = b => (!Panhaima.IsCoolingDown || Panhaima.ElapsedAfter(60)),
};

public static IBaseAction Panhaima { get; } = new BaseAction(ActionID.Panhaima, ActionOption.Heal)
{
ActionCheck = b => (Holos.IsCoolingDown && Holos.ElapsedAfter(60)),
};
public static IBaseAction Panhaima { get; } = new BaseAction(ActionID.Panhaima, ActionOption.Heal);

public static IBaseAction Krasis { get; } = new BaseAction(ActionID.Krasis, ActionOption.Heal);

public static IBaseAction Pneuma { get; } = new BaseAction(ActionID.Pneuma);

public static IBaseAction Pepsis { get; } = new BaseAction(ActionID.Pepsis, ActionOption.Heal)
{
ActionCheck = b =>
{
foreach (var chara in DataCenter.PartyMembers)
{
if (chara.HasStatus(true, StatusID.EukrasianDiagnosis, StatusID.EukrasianPrognosis)
&& b.WillStatusEndGCD(2, 0, true, StatusID.EukrasianDiagnosis, StatusID.EukrasianPrognosis)
&& chara.GetHealthRatio() < 0.9) return true;
}

return false;
},
};
#endregion

public static IBaseAction Icarus { get; } = new BaseAction(ActionID.Icarus, ActionOption.EndSpecial)
{
Expand All @@ -173,4 +152,4 @@ protected sealed override bool MoveForwardAbility(out IAction act)
if (Icarus.CanUse(out act)) return true;
return base.MoveForwardAbility(out act);
}
}
}

0 comments on commit bf7b72c

Please sign in to comment.