Skip to content

Commit

Permalink
pct intro
Browse files Browse the repository at this point in the history
  • Loading branch information
Rabalaba committed Jul 9, 2024
1 parent 6eba0c6 commit 5866b9c
Show file tree
Hide file tree
Showing 4 changed files with 123 additions and 29 deletions.
6 changes: 6 additions & 0 deletions Advanced_Rotations/PVE/Ranged_Magic/MuseMotifPvE.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
namespace RabbsRotationsNET8.Magical
{
internal class MuseMotifPvE
{
}
}
142 changes: 115 additions & 27 deletions Advanced_Rotations/PVE/Ranged_Magic/PCT.cs
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
using FFXIVClientStructs.FFXIV.Client.UI;
using Lumina.Excel.GeneratedSheets;

namespace RabbsRotationsNET8.Magical;

[Rotation("JustAnotherMiqo", CombatType.PvE, GameVersion = "7.0")]
[Rotation("BobRoss", CombatType.PvE, GameVersion = "7.0")]
[SourceCode(Path = "main/DefaultRotations/Magical/PCT_Default.cs")]
[Api(1)]
[Api(2)]
public sealed class PCT_Default : PictomancerRotation
{

public static IBaseAction WeaponFix { get; } = new BaseAction((ActionID)AdjustId(ActionID.WeaponMotifPvE));
public static IBaseAction LandscapeFix { get; } = new BaseAction((ActionID)AdjustId(ActionID.LandscapeMotifPvE));
public static IBaseAction SwiftFix { get; } = new BaseAction((ActionID)AdjustId(ActionID.SwiftcastPvE));


public override MedicineType MedicineType => MedicineType.Intelligence;
Expand All @@ -25,15 +29,19 @@ protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
{
act = null;

return base.EmergencyAbility(nextGCD, out act);

if (!SwiftcastPvE.CanUse(out act) && !SwiftcastPvE.Cooldown.IsCoolingDown && InCombat && (!CreatureMotifDrawn || !WeaponMotifDrawn || !LandscapeMotifDrawn)) return true;


return base.EmergencyAbility(nextGCD, out act);
}
#endregion

#region oGCD Logic
protected override bool AttackAbility(IAction nextGCD, out IAction? act)
{


if (!Player.HasStatus(true, StatusID.SubtractivePalette) && (PaletteGauge >= 50 || Player.HasStatus(true, StatusID.SubtractiveSpectrum)) && SubtractivePalettePvE.CanUse(out act)) return true;

return base.AttackAbility(nextGCD, out act);
}
Expand All @@ -58,50 +66,130 @@ protected override bool MoveForwardGCD(out IAction? act)
protected override bool GeneralGCD(out IAction? act)
{

if (StarPrismPvE.CanUse(out act) && Player.HasStatus(true, StatusID.Starstruck)) return true;

if (RainbowDripPvE.CanUse(out act) && Player.HasStatus(true, StatusID.RainbowBright)) return true;

if (!InCombat)
{
{


if (!CreatureMotifDrawn)
{
if (PomMotifPvE.CanUse(out act) && CreatureMotifPvE.AdjustedID == PomMotifPvE.ID) return true;
if (WingMotifPvE.CanUse(out act) && CreatureMotifPvE.AdjustedID == WingMotifPvE.ID) return true;
if (ClawMotifPvE.CanUse(out act) && CreatureMotifPvE.AdjustedID == ClawMotifPvE.ID) return true;
if (MawMotifPvE.CanUse(out act) && CreatureMotifPvE.AdjustedID == MawMotifPvE.ID) return true;
}
if (!WeaponMotifDrawn)
{

if (WeaponFix.CanUse(out act)) return true;
}
if (!LandscapeMotifDrawn)
{
if (LandscapeFix.CanUse(out act)&&!Player.HasStatus(true, StatusID.Hyperphantasia)) return true;
}

if (RainbowDripPvE.CanUse(out act)) return true;

}
if (InCombat && HasSwift && (!CreatureMotifDrawn || (!WeaponMotifDrawn && !Player.HasStatus(true, StatusID.HammerTime)) || !LandscapeMotifDrawn))
{

if (HammerStampPvE.CanUse(out act, skipCastingCheck: true, skipAoeCheck: true) && Player.HasStatus(true, StatusID.HammerTime)) return true;
if (!LandscapeMotifDrawn)
{
if (LandscapeFix.CanUse(out act) && !Player.HasStatus(true, StatusID.Hyperphantasia)) return true;
}
if (!WeaponMotifDrawn && !Player.HasStatus(true, StatusID.HammerTime))
{
if (WeaponFix.CanUse(out act)) return true;
}
if (!CreatureMotifDrawn)
{
if (PomMotifPvE.CanUse(out act) && CreatureMotifPvE.AdjustedID == PomMotifPvE.ID) return true;
if (WingMotifPvE.CanUse(out act) && CreatureMotifPvE.AdjustedID == WingMotifPvE.ID) return true;
if (ClawMotifPvE.CanUse(out act) && CreatureMotifPvE.AdjustedID == ClawMotifPvE.ID) return true;
if (MawMotifPvE.CanUse(out act) && CreatureMotifPvE.AdjustedID == MawMotifPvE.ID) return true;
}
}

if (Player.HasStatus(true, StatusID.SubtractivePalette))
if (!LandscapeMotifDrawn)
{
//AOE
if (ThunderIiInMagentaPvE.CanUse(out act, skipCastingCheck: true)) return true;
if (StoneIiInYellowPvE.CanUse(out act, skipCastingCheck: true)) return true;
if (BlizzardIiInCyanPvE.CanUse(out act, skipCastingCheck: true)) return true;
if (LandscapeFix.CanUse(out act) && !Player.HasStatus(true, StatusID.Hyperphantasia)) return true;
}
if (!WeaponMotifDrawn && !Player.HasStatus(true, StatusID.HammerTime))
{
if (WeaponFix.CanUse(out act)) return true;
}
if (!CreatureMotifDrawn)
{
if (PomMotifPvE.CanUse(out act) && CreatureMotifPvE.AdjustedID == PomMotifPvE.ID) return true;
if (WingMotifPvE.CanUse(out act) && CreatureMotifPvE.AdjustedID == WingMotifPvE.ID) return true;
if (ClawMotifPvE.CanUse(out act) && CreatureMotifPvE.AdjustedID == ClawMotifPvE.ID) return true;
if (MawMotifPvE.CanUse(out act) && CreatureMotifPvE.AdjustedID == MawMotifPvE.ID) return true; ;
}
if (InCombat)
{
if (StarryMusePvE.CanUse(out act, skipCastingCheck: true, skipStatusProvideCheck: true, skipComboCheck: true, skipAoeCheck: true, usedUp: true) && LandscapeMotifDrawn) return true;
if (MogOfTheAgesPvE.CanUse(out act, skipCastingCheck: true, skipStatusProvideCheck: true, skipComboCheck: true, skipAoeCheck: true, usedUp: true) && MooglePortraitReady) return true;
if (SteelMusePvE.CanUse(out act, skipCastingCheck: true, skipStatusProvideCheck: true, skipComboCheck: true, skipAoeCheck: true, usedUp: true) && WeaponMotifDrawn) return true;
if (PomMusePvE.CanUse(out act, skipCastingCheck: true, skipStatusProvideCheck: true, skipComboCheck: true, skipAoeCheck: true, usedUp: true) && CreatureMotifDrawn && LivingMusePvE.AdjustedID == PomMusePvE.ID) return true;
if (WingedMusePvE.CanUse(out act, skipCastingCheck: true, skipStatusProvideCheck: true, skipComboCheck: true, skipAoeCheck: true, usedUp: true) && CreatureMotifDrawn && LivingMusePvE.AdjustedID == WingedMusePvE.ID) return true;
if (ClawedMusePvE.CanUse(out act, skipCastingCheck: true, skipStatusProvideCheck: true, skipComboCheck: true, skipAoeCheck: true, usedUp: true) && CreatureMotifDrawn && LivingMusePvE.AdjustedID == ClawedMusePvE.ID) return true;
if (FangedMusePvE.CanUse(out act, skipCastingCheck: true, skipStatusProvideCheck: true, skipComboCheck: true, skipAoeCheck: true, usedUp: true) && CreatureMotifDrawn && LivingMusePvE.AdjustedID == FangedMusePvE.ID) return true;
}


//123
if (ThunderInMagentaPvE.CanUse(out act, skipCastingCheck: true)) return true;
if (StoneInYellowPvE.CanUse(out act, skipCastingCheck: true)) return true;
if (BlizzardInCyanPvE.CanUse(out act, skipCastingCheck: true)) return true;
if (HammerStampPvE.CanUse(out act, skipCastingCheck: true, skipAoeCheck: true) && Player.HasStatus(true, StatusID.HammerTime)) return true;

// white/black paint use while moving
if (IsMoving)
{
if (CometInBlackPvE.CanUse(out act, skipCastingCheck: true, skipAoeCheck: true) && Paint > 0) return true;
if (HolyInWhitePvE.CanUse(out act, skipCastingCheck: true, skipAoeCheck:true) && Paint > 0) return true;
}
else

//white paint over cap protection
if (Paint == 5)
{
if (HolyInWhitePvE.CanUse(out act, skipCastingCheck: true, skipAoeCheck: true)) return true;
//AOE
if (WaterIiInBluePvE.CanUse(out act, skipCastingCheck: true)) return true;
if (AeroIiInGreenPvE.CanUse(out act, skipCastingCheck: true)) return true;
if (FireIiInRedPvE.CanUse(out act, skipCastingCheck: true)) return true;

//123
if (WaterInBluePvE.CanUse(out act, skipCastingCheck: true)) return true;
if (AeroInGreenPvE.CanUse(out act, skipCastingCheck: true)) return true;
if (FireInRedPvE.CanUse(out act, skipCastingCheck: true)) return true;
if (CometInBlackPvE.CanUse(out act, skipCastingCheck: true, skipAoeCheck: true) && Paint > 0) return true;
if (HolyInWhitePvE.CanUse(out act, skipCastingCheck: true, skipAoeCheck: true) && Paint > 0) return true;
}





///123 combo stuff with moving checks
if (!IsMoving)
{

///aoe
///

if (ThunderIiInMagentaPvE.CanUse(out act) && Player.HasStatus(true, StatusID.SubtractivePalette)) return true;
if (StoneIiInYellowPvE.CanUse(out act) && Player.HasStatus(true, StatusID.SubtractivePalette)) return true;
if (BlizzardIiInCyanPvE.CanUse(out act) && Player.HasStatus(true, StatusID.SubtractivePalette)) return true;


if (WaterIiInBluePvE.CanUse(out act)) return true;
if (AeroIiInGreenPvE.CanUse(out act)) return true;
if (FireIiInRedPvE.CanUse(out act)) return true;

///single target
///


if (ThunderInMagentaPvE.CanUse(out act) && Player.HasStatus(true, StatusID.SubtractivePalette)) return true;
if (StoneInYellowPvE.CanUse(out act) && Player.HasStatus(true, StatusID.SubtractivePalette)) return true;
if (BlizzardInCyanPvE.CanUse(out act) && Player.HasStatus(true, StatusID.SubtractivePalette)) return true;


if (WaterInBluePvE.CanUse(out act)) return true;
if (AeroInGreenPvE.CanUse(out act)) return true;
if (FireInRedPvE.CanUse(out act)) return true;

}
return base.GeneralGCD(out act);
}

Expand Down
2 changes: 1 addition & 1 deletion Advanced_Rotations/RabbsRotationsNET8.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<TargetFramework>net8.0-windows</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Authors>Rabbs</Authors>
<Version>1.1.1.7</Version>
<Version>1.1.1.8</Version>
<PlatformTarget>x64</PlatformTarget>
<Platforms>x64</Platforms>

Expand Down
2 changes: 1 addition & 1 deletion Advanced_Rotations/RotationInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ internal class RotationInfo
{
internal const string USERNAME = $"Rabbs";

internal const string VERSION = "1.1.1.7";
internal const string VERSION = "1.1.1.8";
}

0 comments on commit 5866b9c

Please sign in to comment.