public static async Task <bool> FightLogic_ArcaneCrest() { if (!Spells.ArcaneCrest.IsKnownAndReady()) { return(false); } if (!FightLogic.ZoneHasFightLogic() || !FightLogic.EnemyHasAnyAoeLogic()) { return(false); } if (FightLogic.EnemyIsCastingAoe() || FightLogic.EnemyIsCastingBigAoe()) { return(await FightLogic.DoAndBuffer(Spells.ArcaneCrest.CastAura(Core.Me, Auras.CrestOfTimeBorrowed))); } return(false); }
public static async Task <bool> FightLogic_Feint() { if (!Spells.Feint.IsKnownAndReady()) { return(false); } if (!FightLogic.ZoneHasFightLogic()) { return(false); } if (FightLogic.EnemyIsCastingAoe() || FightLogic.EnemyIsCastingBigAoe() || FightLogic.EnemyIsCastingTankBuster() != null || FightLogic.EnemyIsCastingSharedTankBuster() != null) { return(await FightLogic.DoAndBuffer(Spells.Feint.CastAura(Core.Me.CurrentTarget, Auras.Feint))); } return(false); }
public static async Task <bool> CollectiveUnconscious() { if (!AstrologianSettings.Instance.CollectiveUnconscious) { return(false); } if (!Core.Me.InCombat) { return(false); } if (!Spells.CollectiveUnconscious.IsKnownAndReady()) { return(false); } if (AstrologianSettings.Instance.FightLogic_CollectiveUnconscious && FightLogic.EnemyIsCastingAoe() && Group.CastableAlliesWithin15.Count(x => x.WithinSpellRange(Spells.CollectiveUnconscious.Radius)) > AoeThreshold) { return(await FightLogic.DoAndBuffer( Spells.CollectiveUnconscious.HealAura(Core.Me, Auras.CollectiveUnconsciousMitigation))); } if (Group.CastableAlliesWithin10.Count(r => r.Distance() < 6 && r.IsAlive && r.CurrentHealthPercent <= AstrologianSettings.Instance.CollectiveUnconsciousHealth) < AstrologianSettings.Instance.CollectiveUnconsciousAllies) { return(false); } return(await Spells.CollectiveUnconscious.HealAura(Core.Me, Auras.WheelOfFortune, false)); }
public static async Task <bool> Aoe() { if (!Globals.InParty) { return(false); } if (!FightLogic.ZoneHasFightLogic()) { return(false); } if (FightLogic.EnemyIsCastingBigAoe()) { return(await BigAoe()); } if (FightLogic.EnemyIsCastingAoe()) { return(await JustAoe()); } return(false); }
public static async Task <bool> Aoe() { if (!Globals.InParty) { return(false); } if (!FightLogic.ZoneHasFightLogic()) { return(false); } if (!FightLogic.EnemyIsCastingBigAoe() && !FightLogic.EnemyIsCastingAoe()) { return(false); } var useAoEBuffs = Heal.UseAoEHealingBuff(Group.CastableAlliesWithin15); if (SageSettings.Instance.FightLogic_Kerachole && Spells.Kerachole.IsKnownAndReady() && Addersgall >= 1 && useAoEBuffs) { var targets = Group.CastableAlliesWithin15.Where(r => !r.HasAura(Auras.Kerachole) && !r.HasAura(Auras.Taurochole)); var tankCheck = !SageSettings.Instance.FightLogic_RespectOnlyTank || !SageSettings.Instance.KeracholeOnlyWithTank || targets.Any(r => r.IsTank(SageSettings.Instance.KeracholeOnlyWithMainTank)); if (targets.Count() >= Heal.AoeNeedHealing && tankCheck) { if (BaseSettings.Instance.DebugFightLogic) { Logger.WriteInfo($"[AOE Response] Cast Kerachole"); } return(await FightLogic.DoAndBuffer(Spells.Kerachole.CastAura(Core.Me, Auras.Kerachole))); } } if (SageSettings.Instance.FightLogic_Panhaima && Spells.Panhaima.IsKnownAndReady() && useAoEBuffs) { var targets = Group.CastableAlliesWithin15.Where(r => !r.HasAura(Auras.Panhaimatinon)); var tankCheck = !SageSettings.Instance.FightLogic_RespectOnlyTank || !SageSettings.Instance.PanhaimaOnlyWithTank || targets.Any(r => r.IsTank(SageSettings.Instance.PanhaimaOnlyWithMainTank)); if (targets.Count() >= Heal.AoeNeedHealing && tankCheck) { if (BaseSettings.Instance.DebugFightLogic) { Logger.WriteInfo($"[AOE Response] Cast Panhaima"); } return(await FightLogic.DoAndBuffer(Spells.Panhaima.CastAura(Core.Me, Auras.Panhaimatinon))); } } if (SageSettings.Instance.FightLogic_Holos && Spells.Holos.IsKnownAndReady() && useAoEBuffs) { var targets = Group.CastableAlliesWithin15.Where(r => !r.HasAura(Auras.Holos)); var tankCheck = !SageSettings.Instance.FightLogic_RespectOnlyTank || !SageSettings.Instance.HolosTankOnly || targets.Any(r => r.IsTank(SageSettings.Instance.HolosMainTankOnly)); if (targets.Count() >= Heal.AoeNeedHealing && tankCheck) { if (BaseSettings.Instance.DebugFightLogic) { Logger.WriteInfo($"[AOE Response] Cast Holos"); } return(await FightLogic.DoAndBuffer(Spells.Holos.CastAura(Core.Me, Auras.Holos))); } } if (SageSettings.Instance.FightLogic_EukrasianPrognosis && Core.Me.ClassLevel >= Spells.Eukrasia.LevelAcquired && Heal.IsEukrasiaReady()) { var targets = Group.CastableAlliesWithin15.Where(r => !r.HasAura(Auras.EukrasianDiagnosis) && !r.HasAura(Auras.EukrasianPrognosis) && !r.HasAura(Auras.Galvanize)); var tankCheck = !SageSettings.Instance.FightLogic_RespectOnlyTank || targets.Any(r => r.IsTank()); if (targets.Count() >= Heal.AoeNeedHealing && tankCheck) { if (BaseSettings.Instance.DebugFightLogic) { Logger.WriteInfo($"[AOE Response] Cast Eukrasian Prognosis"); } if (await Heal.UseEukrasia(Spells.EukrasianPrognosis.Id)) { return(await FightLogic.DoAndBuffer(Spells.EukrasianPrognosis.HealAura(Core.Me, Auras.EukrasianPrognosis))); } } } return(false); }