-
Notifications
You must be signed in to change notification settings - Fork 47
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
More clean up, and donate a PCT_Default
- Loading branch information
1 parent
f7a548b
commit 29dd2ed
Showing
2 changed files
with
114 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters