Skip to content

Commit

Permalink
More clean up, and donate a PCT_Default
Browse files Browse the repository at this point in the history
  • Loading branch information
CritoCantCode committed Jan 20, 2025
1 parent f7a548b commit 29dd2ed
Show file tree
Hide file tree
Showing 2 changed files with 114 additions and 2 deletions.
112 changes: 112 additions & 0 deletions BasicRotations/PVPRotations/Magical/PCT_Default.PvP.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
namespace RebornRotations.PVPRotations.Magical;

[Rotation("Default PvP", CombatType.PvP, GameVersion = "7.15", Description = "Default PVP Pictomancer by Crito")]
[Api(4)]
public class PCT_DefaultPvP : PictomancerRotation
{
#region Configurations

[RotationConfig(CombatType.PvP, Name = "Use Purify")]
public bool UsePurifyPvP { get; set; } = true;

[RotationConfig(CombatType.PvP, Name = "Stop attacking while in Guard.")]
public bool RespectGuard { get; set; } = true;
#endregion

#region Standard PVP Utilities
private bool DoPurify(out IAction? action)
{
action = null;
if (!UsePurifyPvP) return false;

var purifiableStatusesIDs = new List<int>
{
// Stun, DeepFreeze, HalfAsleep, Sleep, Bind, Heavy, Silence
1343, 3219, 3022, 1348, 1345, 1344, 1347
};

if (purifiableStatusesIDs.Any(id => Player.HasStatus(false, (StatusID)id)))
{
return PurifyPvP.CanUse(out action);
}

return false;
}
#endregion

#region oGCDs
protected override bool EmergencyAbility(IAction nextGCD, out IAction? action)
{
action = null;
if (RespectGuard && Player.HasStatus(true, StatusID.Guard)) return false;
if (DoPurify(out action)) return true;

return base.EmergencyAbility(nextGCD, out action);
}

protected override bool DefenseSingleAbility(IAction nextGCD, out IAction? action)
{
action = null;
if (RespectGuard && Player.HasStatus(true, StatusID.Guard)) return false;

return base.DefenseSingleAbility(nextGCD, out action);
}

protected override bool AttackAbility(IAction nextGCD, out IAction? action)
{
action = null;
if (RespectGuard && Player.HasStatus(true, StatusID.Guard)) return false;

if (PomMusePvP.CanUse(out action, usedUp: true)) return true;
if (WingedMusePvP.CanUse(out action, usedUp: true)) return true;
if (ClawedMusePvP.CanUse(out action, usedUp: true)) return true;
if (FangedMusePvP.CanUse(out action, usedUp: true)) return true;

switch (IsMoving)
{
case true:
if (ReleaseSubtractivePalettePvP.CanUse(out action)) return true;
break;
case false:
if (SubtractivePalettePvP.CanUse(out action)) return true;
break;
}

return base.AttackAbility(nextGCD, out action);
}

#endregion

#region GCDs
protected override bool GeneralGCD(out IAction? action)
{
action = null;
if (RespectGuard && Player.HasStatus(true, StatusID.Guard)) return false;

if (StarPrismPvP.CanUse(out action)) return true;

if (MogOfTheAgesPvP.CanUse(out action)) return true;
if (RetributionOfTheMadeenPvP.CanUse(out action)) return true;

if (CometInBlackPvP.CanUse(out action, usedUp: true)) return true;

if (PomMotifPvP.CanUse(out action, usedUp: true)) return true;
if (WingMotifPvP.CanUse(out action, usedUp: true)) return true;
if (ClawMotifPvP.CanUse(out action, usedUp: true)) return true;
if (MawMotifPvP.CanUse(out action, usedUp: true)) return true;

if (ThunderInMagentaPvP.CanUse(out action)) return true;
if (StoneInYellowPvP.CanUse(out action)) return true;
if (BlizzardInCyanPvP.CanUse(out action)) return true;

if (WaterInBluePvP.CanUse(out action)) return true;
if (AeroInGreenPvP.CanUse(out action)) return true;
if (FireInRedPvP.CanUse(out action)) return true;




return base.GeneralGCD(out action);
}
#endregion
}
4 changes: 2 additions & 2 deletions RotationSolver.Basic/Rotations/Basic/PictomancerRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -833,7 +833,7 @@ static partial void ModifyBlizzardInCyanPvP(ref ActionSetting setting)

static partial void ModifyStoneInYellowPvP(ref ActionSetting setting)
{
setting.StatusNeed = [StatusID.SubtractivePalette_4102, StatusID.Aetherhues_4100];
setting.StatusNeed = [StatusID.Aetherhues_4100];
setting.StatusProvide = [StatusID.AetherhuesIi_4101];
setting.CreateConfig = () => new ActionConfig()
{
Expand All @@ -843,7 +843,7 @@ static partial void ModifyStoneInYellowPvP(ref ActionSetting setting)

static partial void ModifyThunderInMagentaPvP(ref ActionSetting setting)
{
setting.StatusNeed = [StatusID.SubtractivePalette_4102, StatusID.AetherhuesIi_4101];
setting.StatusNeed = [StatusID.AetherhuesIi_4101];
setting.CreateConfig = () => new ActionConfig()
{
AoeCount = 1,
Expand Down

0 comments on commit 29dd2ed

Please sign in to comment.