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

Commit

Permalink
Merge pull request #158 from FFXIV-CombatReborn/IcWaDev
Browse files Browse the repository at this point in the history
Modification around PCT to be less volatile on some situations
  • Loading branch information
IncognitoWater authored Jul 29, 2024
2 parents a1c1a1b + 0cfbfda commit 7db83bc
Showing 1 changed file with 62 additions and 58 deletions.
120 changes: 62 additions & 58 deletions BasicRotations/Magical/PCT_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -70,44 +70,47 @@ public enum MotifSwift : byte
// Determines emergency actions to take based on the next planned GCD action.
protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
{
switch (MotifSwiftCast)
if (InCombat)
{
case MotifSwift.CreatureMotif:
if (nextGCD == PomMotifPvE || nextGCD == WingMotifPvE || nextGCD == MawMotifPvE || nextGCD == ClawMotifPvE)
{
if (SwiftcastPvE.CanUse(out act)) return true;
}
break;
case MotifSwift.WeaponMotif:
if (nextGCD == HammerMotifPvE)
{
if (SwiftcastPvE.CanUse(out act)) return true;
}
break;
case MotifSwift.LandscapeMotif:
if (nextGCD == StarrySkyMotifPvE)
{
if (SwiftcastPvE.CanUse(out act)) return true;
}
break;
case MotifSwift.AllMotif:
if (nextGCD == PomMotifPvE || nextGCD == WingMotifPvE || nextGCD == MawMotifPvE || nextGCD == ClawMotifPvE)
{
if (SwiftcastPvE.CanUse(out act)) return true;
}else
if (nextGCD == HammerMotifPvE)
{
if (SwiftcastPvE.CanUse(out act)) return true;
}else
if (nextGCD == StarrySkyMotifPvE)
switch (MotifSwiftCast)
{
if (SwiftcastPvE.CanUse(out act)) return true;
case MotifSwift.CreatureMotif:
if (nextGCD == PomMotifPvE || nextGCD == WingMotifPvE || nextGCD == MawMotifPvE || nextGCD == ClawMotifPvE)
{
if (SwiftcastPvE.CanUse(out act)) return true;
}
break;
case MotifSwift.WeaponMotif:
if (nextGCD == HammerMotifPvE)
{
if (SwiftcastPvE.CanUse(out act)) return true;
}
break;
case MotifSwift.LandscapeMotif:
if (nextGCD == StarrySkyMotifPvE)
{
if (SwiftcastPvE.CanUse(out act)) return true;
}
break;
case MotifSwift.AllMotif:
if (nextGCD == PomMotifPvE || nextGCD == WingMotifPvE || nextGCD == MawMotifPvE || nextGCD == ClawMotifPvE)
{
if (SwiftcastPvE.CanUse(out act)) return true;
}else
if (nextGCD == HammerMotifPvE)
{
if (SwiftcastPvE.CanUse(out act)) return true;
}else
if (nextGCD == StarrySkyMotifPvE)
{
if (SwiftcastPvE.CanUse(out act)) return true;
}
break;
case MotifSwift.NoMotif:
break;
}
break;
case MotifSwift.NoMotif:
break;
}

return base.EmergencyAbility(nextGCD, out act);
}
#endregion
Expand Down Expand Up @@ -225,74 +228,75 @@ protected override bool GeneralGCD(out IAction? act)

if (InCombat && !Player.HasStatus(true, StatusID.StarryMuse) && !Player.HasStatus(true, StatusID.Hyperphantasia) && !IsTargetDying && (HasSwift || !HasHostilesInMaxRange) && (!CreatureMotifDrawn || !WeaponMotifDrawn && !Player.HasStatus(true, StatusID.HammerTime) || !LandscapeMotifDrawn))
{
bool swiftmode = HasSwift || !SwiftcastPvE.Cooldown.IsCoolingDown;
switch (MotifSwiftCast)
{
case MotifSwift.CreatureMotif:
if (!CreatureMotifDrawn)
{
if (PomMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && CreatureMotifPvE.AdjustedID == PomMotifPvE.ID) return true;
if (WingMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && CreatureMotifPvE.AdjustedID == WingMotifPvE.ID) return true;
if (ClawMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && CreatureMotifPvE.AdjustedID == ClawMotifPvE.ID) return true;
if (MawMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && CreatureMotifPvE.AdjustedID == MawMotifPvE.ID) return true;
if (PomMotifPvE.CanUse(out act, skipCastingCheck:swiftmode ) && CreatureMotifPvE.AdjustedID == PomMotifPvE.ID) return true;
if (WingMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && CreatureMotifPvE.AdjustedID == WingMotifPvE.ID) return true;
if (ClawMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && CreatureMotifPvE.AdjustedID == ClawMotifPvE.ID) return true;
if (MawMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && CreatureMotifPvE.AdjustedID == MawMotifPvE.ID) return true;
}
if (!WeaponMotifDrawn && !Player.HasStatus(true, StatusID.HammerTime))
{
if (HammerMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && CombatTime > 23) return true;
if (HammerMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && CombatTime > 23) return true;
}
if (!LandscapeMotifDrawn)
{
if (StarrySkyMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && !Player.HasStatus(true, StatusID.Hyperphantasia)) return true;
if (StarrySkyMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && !Player.HasStatus(true, StatusID.Hyperphantasia)) return true;
}
break;
case MotifSwift.WeaponMotif:
if (!WeaponMotifDrawn && !Player.HasStatus(true, StatusID.HammerTime))
{
if (HammerMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && CombatTime > 23) return true;
if (HammerMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && CombatTime > 23) return true;
}
if (!LandscapeMotifDrawn)
{
if (StarrySkyMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && !Player.HasStatus(true, StatusID.Hyperphantasia)) return true;
if (StarrySkyMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && !Player.HasStatus(true, StatusID.Hyperphantasia)) return true;
}
if (!CreatureMotifDrawn)
{
if (PomMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && CreatureMotifPvE.AdjustedID == PomMotifPvE.ID) return true;
if (WingMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && CreatureMotifPvE.AdjustedID == WingMotifPvE.ID) return true;
if (ClawMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && CreatureMotifPvE.AdjustedID == ClawMotifPvE.ID) return true;
if (MawMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && CreatureMotifPvE.AdjustedID == MawMotifPvE.ID) return true;
if (PomMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && CreatureMotifPvE.AdjustedID == PomMotifPvE.ID) return true;
if (WingMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && CreatureMotifPvE.AdjustedID == WingMotifPvE.ID) return true;
if (ClawMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && CreatureMotifPvE.AdjustedID == ClawMotifPvE.ID) return true;
if (MawMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && CreatureMotifPvE.AdjustedID == MawMotifPvE.ID) return true;
}
break;
case MotifSwift.LandscapeMotif:
if (!LandscapeMotifDrawn)
{
if (StarrySkyMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && !Player.HasStatus(true, StatusID.Hyperphantasia)) return true;
if (StarrySkyMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && !Player.HasStatus(true, StatusID.Hyperphantasia)) return true;
}
if (!WeaponMotifDrawn && !Player.HasStatus(true, StatusID.HammerTime))
{
if (HammerMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && CombatTime > 23) return true;
if (HammerMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && CombatTime > 23) return true;
}
if (!CreatureMotifDrawn)
{
if (PomMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && CreatureMotifPvE.AdjustedID == PomMotifPvE.ID) return true;
if (WingMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && CreatureMotifPvE.AdjustedID == WingMotifPvE.ID) return true;
if (ClawMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && CreatureMotifPvE.AdjustedID == ClawMotifPvE.ID) return true;
if (MawMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && CreatureMotifPvE.AdjustedID == MawMotifPvE.ID) return true;
if (PomMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && CreatureMotifPvE.AdjustedID == PomMotifPvE.ID) return true;
if (WingMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && CreatureMotifPvE.AdjustedID == WingMotifPvE.ID) return true;
if (ClawMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && CreatureMotifPvE.AdjustedID == ClawMotifPvE.ID) return true;
if (MawMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && CreatureMotifPvE.AdjustedID == MawMotifPvE.ID) return true;
}
break;
case MotifSwift.AllMotif:
if (!CreatureMotifDrawn)
{
if (PomMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && CreatureMotifPvE.AdjustedID == PomMotifPvE.ID) return true;
if (WingMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && CreatureMotifPvE.AdjustedID == WingMotifPvE.ID) return true;
if (ClawMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && CreatureMotifPvE.AdjustedID == ClawMotifPvE.ID) return true;
if (MawMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && CreatureMotifPvE.AdjustedID == MawMotifPvE.ID) return true;
if (PomMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && CreatureMotifPvE.AdjustedID == PomMotifPvE.ID) return true;
if (WingMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && CreatureMotifPvE.AdjustedID == WingMotifPvE.ID) return true;
if (ClawMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && CreatureMotifPvE.AdjustedID == ClawMotifPvE.ID) return true;
if (MawMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && CreatureMotifPvE.AdjustedID == MawMotifPvE.ID) return true;
}
if (!WeaponMotifDrawn && !Player.HasStatus(true, StatusID.HammerTime))
{
if (HammerMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && CombatTime > 23) return true;
if (HammerMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && CombatTime > 23) return true;
}
if (!LandscapeMotifDrawn)
{
if (StarrySkyMotifPvE.CanUse(out act, skipCastingCheck:HasSwift) && !Player.HasStatus(true, StatusID.Hyperphantasia)) return true;
if (StarrySkyMotifPvE.CanUse(out act, skipCastingCheck:swiftmode) && !Player.HasStatus(true, StatusID.Hyperphantasia)) return true;
}
break;
case MotifSwift.NoMotif:
Expand Down

0 comments on commit 7db83bc

Please sign in to comment.