-
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.
Merge pull request #591 from DeviousCrypto/cleanup-SCS
cleaned up unnecessary check falses, donate pct pvp
- Loading branch information
Showing
6 changed files
with
117 additions
and
101 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
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
Oops, something went wrong.