public static async Task <bool> Execute() { if (await Chocobo.HandleChocobo()) { return(true); } if (await Casting.TrackSpellCast()) { return(true); } await Casting.CheckForSuccessfulCast(); Globals.InParty = PartyManager.IsInParty; Globals.PartyInCombat = Globals.InParty && Utilities.Combat.Enemies.Any(r => r.TaggerType == 2); if (ActionResourceManager.BlackMage.AstralStacks > 0 && ActionResourceManager.BlackMage.UmbralStacks == 0) { if (Core.Me.CurrentManaPercent < 70 && Spells.Transpose.Cooldown == TimeSpan.Zero) { return(await Spells.Transpose.Cast(Core.Me)); } } return(false); }
public static async Task <bool> Execute() { if (await Chocobo.HandleChocobo()) { return(true); } Group.UpdateAllies(Utilities.Routines.Scholar.GroupExtension); if (Core.Me.IsCasting) { return(true); } Globals.HealTarget = Group.CastableAlliesWithin30.OrderBy(x => x.CurrentHealthPercent).FirstOrDefault(); await Casting.CheckForSuccessfulCast(); Globals.InParty = PartyManager.IsInParty || Globals.InGcInstance; Globals.PartyInCombat = Globals.InParty && Utilities.Combat.Enemies.Any(r => r.TaggerType == 2); if (Core.Me.IsMounted) { return(false); } if (await Buff.SummonPet()) { return(true); } return(await Buff.Aetherflow()); }
public static async Task <bool> Execute() { Group.UpdateAllies(); if (PartyManager.IsInParty) { // If we're in a party and we die, but our group is still in combat, we don't want to reset the counter if (!Utilities.Combat.Enemies.Any()) { Utilities.Routines.Dragoon.MirageDives = 0; } } else { Utilities.Routines.Dragoon.MirageDives = 0; } Utilities.Routines.Dragoon.MirageDives = 0; if (await Chocobo.HandleChocobo()) { return(true); } await Casting.CheckForSuccessfulCast(); Globals.InParty = PartyManager.IsInParty; Globals.PartyInCombat = Globals.InParty && Utilities.Combat.Enemies.Any(r => r.TaggerType == 2); return(false); }
public static async Task <bool> Execute() { if (Core.Me.IsMounted) { return(true); } if (await Chocobo.HandleChocobo()) { return(true); } Group.UpdateAllies(); if (await GambitLogic.Gambit()) { return(true); } if (await Casting.TrackSpellCast()) { return(true); } await Casting.CheckForSuccessfulCast(); Globals.InParty = PartyManager.IsInParty; Globals.PartyInCombat = Globals.InParty && Utilities.Combat.Enemies.Any(r => r.TaggerType == 2); return(await Logic.Paladin.Heal.Clemency()); }
public static async Task <bool> Execute() { if (await Chocobo.HandleChocobo()) { return(true); } Group.UpdateAllies(); if (Core.Me.IsCasting) { return(true); } await Casting.CheckForSuccessfulCast(); Globals.InParty = PartyManager.IsInParty; Globals.PartyInCombat = Globals.InParty && Utilities.Combat.Enemies.Any(r => r.TaggerType == 2); if (Core.Me.IsMounted) { return(false); } return(await Buff.Oath()); }
public static async Task <bool> Execute() { if (await Chocobo.HandleChocobo()) { return(true); } await Casting.CheckForSuccessfulCast(); Globals.InParty = PartyManager.IsInParty; Globals.PartyInCombat = Globals.InParty && Utilities.Combat.Enemies.Any(r => r.TaggerType == 2); if (await Buff.FistsOf()) { return(true); } if (await Buff.Meditate()) { return(true); } if (MonkSettings.Instance.UsePositionalToasts && Utilities.Routines.Monk.UseToast == 9) { Logger.Write($@"[Magitek] Initiated Toast for MNK"); Thread T = new Thread(() => PositionalToast.PositionalLogic()); Utilities.Routines.Monk.UseToast = 0; PositionalToast.SendToast("Toast Overlay Initiated", 5); T.Start(); } return(false); }
public static async Task <bool> Execute() { Group.UpdateAllies(); if (await Chocobo.HandleChocobo()) { return(true); } if (await Casting.TrackSpellCast()) { return(true); } await Casting.CheckForSuccessfulCast(); Globals.InParty = PartyManager.IsInParty; Globals.PartyInCombat = Globals.InParty && Utilities.Combat.Enemies.Any(r => r.TaggerType == 2); if (await GambitLogic.Gambit()) { return(true); } if (await Logic.RedMage.Heal.Verraise()) { return(true); } return(await Logic.RedMage.Heal.Vercure()); }
public static async Task <bool> Execute() { if (await Chocobo.HandleChocobo()) { return(true); } if (await Casting.TrackSpellCast()) { return(true); } await Casting.CheckForSuccessfulCast(); Globals.InParty = PartyManager.IsInParty; Globals.PartyInCombat = Globals.InParty && Utilities.Combat.Enemies.Any(r => r.TaggerType == 2); if (await GambitLogic.Gambit()) { return(true); } if (Globals.InParty && WarriorSettings.Instance.OpenWithThreatCombo) { if (!Globals.PartyInCombat) { Utilities.Routines.Warrior.NeedThreatCombo = true; } } return(false); }
public static async Task <bool> SummonChocobo() { if (UltSettings.SummonChocobo && BotManager.Current.IsAutonomous && !PartyManager.IsInParty && !MovementManager.IsMoving && !Chocobo.Summoned && Chocobo.CanSummon) { Chocobo.Summon(); await Coroutine.Wait(1000, () => Chocobo.Summoned); if (!Chocobo.Summoned) { return(await SummonChocobo()); } if (Chocobo.Summoned) { if (UltSettings.ChocoboFreeStance && Chocobo.Stance != CompanionStance.Free) { Chocobo.FreeStance(); await Coroutine.Wait(1000, () => Chocobo.Stance == CompanionStance.Free); return(true); } if (UltSettings.ChocoboDefenderStance && Chocobo.Stance != CompanionStance.Defender) { Chocobo.DefenderStance(); await Coroutine.Wait(1000, () => Chocobo.Stance == CompanionStance.Defender); return(true); } if (UltSettings.ChocoboAttackerStance && Chocobo.Stance != CompanionStance.Attacker) { Chocobo.AttackerStance(); await Coroutine.Wait(1000, () => Chocobo.Stance == CompanionStance.Attacker); return(true); } if (UltSettings.ChocoboHealerStance && Chocobo.Stance != CompanionStance.Healer) { Chocobo.HealerStance(); await Coroutine.Wait(1000, () => Chocobo.Stance == CompanionStance.Healer); return(true); } } return(true); } return(false); }
public static async Task <bool> Execute() { if (await Chocobo.HandleChocobo()) { return(true); } Group.UpdateAllies(); Globals.InParty = PartyManager.IsInParty; Globals.PartyInCombat = Globals.InParty && Utilities.Combat.Enemies.Any(r => r.TaggerType == 2); return(await GambitLogic.Gambit()); }
public static async Task <bool> Execute() { if (await Chocobo.HandleChocobo()) { return(true); } await Casting.CheckForSuccessfulCast(); Globals.InParty = PartyManager.IsInParty; Globals.PartyInCombat = Globals.InParty && Utilities.Combat.Enemies.Any(r => r.TaggerType == 2); return(await Buff.Defiance()); }
protected Composite SummonChocobo() { return(new PrioritySelector( new Decorator(r => WindowSettings.SummonChocobo && !Chocobo.Summoned && Chocobo.CanSummon, new Action(r => { if (MovementManager.IsMoving) { Navigator.PlayerMover.MoveStop(); } Chocobo.Summon(); return RunStatus.Failure; })) )); }
public static async Task <bool> Execute() { if (WorldManager.InSanctuary) { return(false); } if (Core.Me.IsMounted) { return(false); } if (Duty.State() == Duty.States.Ended) { return(false); } if (await Chocobo.HandleChocobo()) { return(true); } Group.UpdateAllies(Utilities.Routines.Astrologian.GroupExtension); if (Core.Me.IsCasting) { return(true); } Globals.HealTarget = Group.CastableAlliesWithin30.OrderBy(x => x.CurrentHealthPercent).FirstOrDefault(); await Casting.CheckForSuccessfulCast(); Globals.InParty = PartyManager.IsInParty || Globals.InGcInstance; Globals.PartyInCombat = Globals.InParty && Utilities.Combat.Enemies.Any(r => r.TaggerType == 2); if (Globals.OnPvpMap) { return(false); } if (ActionResourceManager.Astrologian.Arcana == ActionResourceManager.Astrologian.AstrologianCard.None) { await Spells.Draw.Cast(Core.Me); } return(await Buff.Sect()); }
public static async Task <bool> Execute() { if (await Chocobo.HandleChocobo()) { return(true); } Group.UpdateAllies(); if (Core.Me.IsCasting) { return(true); } if (await Casting.TrackSpellCast()) { return(true); } await Casting.CheckForSuccessfulCast(); Globals.InParty = PartyManager.IsInParty; Globals.PartyInCombat = Globals.InParty && Utilities.Combat.Enemies.Any(r => r.TaggerType == 2); //Openers.OpenerCheck(); if (Core.Me.HasTarget && Core.Me.CurrentTarget.CanAttack) { return(false); } if (Core.Me.OnPvpMap()) { return(false); } if (await Buff.DancePartner()) { return(true); } return(await PhysicalDps.Peloton(DancerSettings.Instance)); return(false); }
public static async Task <bool> Execute() { if (await Chocobo.HandleChocobo()) { return(true); } if (Core.Me.IsMounted) { return(true); } Group.UpdateAllies(Utilities.Routines.Scholar.GroupExtension); Globals.HealTarget = Group.CastableAlliesWithin30.OrderBy(x => x.CurrentHealthPercent).FirstOrDefault(); if (await Casting.TrackSpellCast()) { return(true); } await Casting.CheckForSuccessfulCast(); Casting.DoHealthChecks = false; Globals.InParty = PartyManager.IsInParty || Globals.InGcInstance; Globals.PartyInCombat = Globals.InParty && Utilities.Combat.Enemies.Any(r => r.TaggerType == 2) || Core.Me.InCombat; Globals.OnPvpMap = Core.Me.OnPvpMap(); if (Duty.State() == Duty.States.Ended) { return(false); } if (await CustomOpenerLogic.Opener()) { return(true); } if (await GambitLogic.Gambit()) { return(true); } return(await Logic.Summoner.Heal.Physick()); }
public static async Task <bool> Execute() { if (await Chocobo.HandleChocobo()) { return(true); } if (Core.Me.IsCasting) { return(true); } await Casting.CheckForSuccessfulCast(); SpellQueueLogic.SpellQueue.Clear(); Globals.InParty = PartyManager.IsInParty || Globals.InGcInstance; Globals.PartyInCombat = Globals.InParty && Utilities.Combat.Enemies.Any(r => r.TaggerType == 2); return(await Pets.Summon()); }
public static async Task <bool> Execute() { if (await Chocobo.HandleChocobo()) { return(true); } Group.UpdateAllies(); if (Core.Me.IsCasting) { return(true); } await Casting.CheckForSuccessfulCast(); Globals.InParty = PartyManager.IsInParty; Globals.PartyInCombat = Globals.InParty && Utilities.Combat.Enemies.Any(r => r.TaggerType == 2); Utilities.Routines.DarkKnight.PullUnleash = 0; return(await Buff.Grit()); }
public static async Task <bool> Execute() { if (await Chocobo.HandleChocobo()) { return(true); } Group.UpdateAllies(); if (await Casting.TrackSpellCast()) { return(true); } await Casting.CheckForSuccessfulCast(); Globals.InParty = PartyManager.IsInParty; Globals.PartyInCombat = Globals.InParty && Utilities.Combat.Enemies.Any(r => r.TaggerType == 2); return(await PhysicalDps.Peloton(MachinistSettings.Instance)); }
public static async Task <bool> Execute() { if (await Chocobo.HandleChocobo()) { return(true); } await Casting.CheckForSuccessfulCast(); Globals.InParty = PartyManager.IsInParty; Globals.PartyInCombat = Globals.InParty && Utilities.Combat.Enemies.Any(r => r.TaggerType == 2); if (!SpellQueueLogic.SpellQueue.Any()) { SpellQueueLogic.InSpellQueue = false; } if (SpellQueueLogic.SpellQueue.Any()) { if (await SpellQueueLogic.SpellQueueMethod()) { return(true); } } if (!NinjaSettings.Instance.UseHutonOutsideOfCombat) { return(false); } if (NinjaSettings.Instance.UseHutonOutsideOfCombat) { if (!DutyManager.InInstance) { return(false); } } return(Ninjutsu.Huton()); }
public static async Task <bool> Execute() { Group.UpdateAllies(Utilities.Routines.WhiteMage.GroupExtension); Globals.HealTarget = Group.CastableAlliesWithin30.OrderBy(x => x.CurrentHealthPercent).FirstOrDefault(); if (await Casting.TrackSpellCast()) { return(true); } await Casting.CheckForSuccessfulCast(); Casting.DoHealthChecks = false; Globals.InParty = PartyManager.IsInParty || Globals.InGcInstance; Globals.PartyInCombat = Globals.InParty && Utilities.Combat.Enemies.Any(r => r.TaggerType == 2) || Core.Me.InCombat; Globals.OnPvpMap = Core.Me.OnPvpMap(); if (Core.Me.OnPvpMap()) { await PvpRotation(); return(true); } if (Duty.State() == Duty.States.Ended) { return(false); } if (await GambitLogic.Gambit()) { return(true); } if (await Chocobo.HandleChocobo()) { return(true); } if (Globals.PartyInCombat && Globals.InParty) { if (await TankBusters.Execute()) { return(true); } } if (await Logic.WhiteMage.Heal.Raise()) { return(true); } // Scalebound Extreme Rathalos if (Core.Me.HasAura(1495)) { if (await Dispel.Execute()) { return(true); } return(false); } if (Casting.LastSpell == Spells.PlenaryIndulgence) { if (await Logic.WhiteMage.Heal.Cure3()) { return(true); } if (await Logic.WhiteMage.Heal.Medica2()) { return(true); } return(await Spells.Medica.Cast(Core.Me)); } if (await Logic.WhiteMage.Heal.Benediction()) { return(true); } if (await Dispel.Execute()) { return(true); } if (await Buff.Temperance()) { return(true); } if (await Buff.ThinAir(false)) { return(true); } if (await Buff.DivineBenison()) { return(true); } if (await Logic.WhiteMage.Heal.PlenaryIndulgence()) { return(true); } if (await Buff.LucidDreaming()) { return(true); } if (await Buff.AssizeForMana()) { return(true); } if (await Buff.PresenceOfMind()) { return(true); } if (await Logic.WhiteMage.Heal.Tetragrammaton()) { return(true); } if (await Logic.WhiteMage.Heal.AfflatusSolace()) { return(true); } if (await Logic.WhiteMage.Heal.Cure3()) { return(true); } if (Globals.InParty) { if (await Logic.WhiteMage.Heal.AssizeHeal()) { return(true); } if (await Logic.WhiteMage.Heal.Benediction()) { return(true); } if (await Logic.WhiteMage.Heal.Tetragrammaton()) { return(true); } if (await Logic.WhiteMage.Heal.AfflatusRapture()) { return(true); } if (await Logic.WhiteMage.Heal.Medica()) { return(true); } if (await Logic.WhiteMage.Heal.Medica2()) { return(true); } if (await Logic.WhiteMage.Heal.Cure3()) { return(true); } if (await Logic.WhiteMage.Heal.Asylum()) { return(true); } } if (await Logic.WhiteMage.Heal.Cure2()) { return(true); } if (await Logic.WhiteMage.Heal.Cure()) { return(true); } if (await SingleTarget.FluidAura()) { return(true); } return(await Logic.WhiteMage.Heal.Regen()); }
public static async Task <bool> Execute() { if (await Chocobo.HandleChocobo()) { return(true); } if (Core.Me.IsMounted) { return(true); } Group.UpdateAllies(Utilities.Routines.Scholar.GroupExtension); Globals.HealTarget = Group.CastableAlliesWithin30.OrderBy(x => x.CurrentHealthPercent).FirstOrDefault(); if (await Casting.TrackSpellCast()) { return(true); } await Casting.CheckForSuccessfulCast(); Casting.DoHealthChecks = false; Globals.InParty = PartyManager.IsInParty || Globals.InGcInstance; Globals.PartyInCombat = Globals.InParty && Utilities.Combat.Enemies.Any(r => r.TaggerType == 2) || Core.Me.InCombat; Globals.OnPvpMap = Core.Me.OnPvpMap(); if (Duty.State() == Duty.States.Ended) { return(false); } if (await GambitLogic.Gambit()) { return(true); } if (CustomOpenerLogic.InOpener) { return(false); } if (await Logic.Scholar.Heal.Resurrection()) { return(true); } // Scalebound Extreme Rathalos if (Core.Me.HasAura(1495)) { return(await Dispel.Execute()); } #region Pre-Healing Stuff if (Globals.PartyInCombat && Globals.InParty) { if (await TankBusters.Execute()) { return(true); } } if (await Buff.Aetherflow()) { return(true); } if (await Buff.LucidDreaming()) { return(true); } if (await Dispel.Execute()) { return(true); } if (Globals.InParty) { if (await Buff.DeploymentTactics()) { return(true); } if (await Buff.Aetherpact()) { return(true); } if (await Buff.BreakAetherpact()) { return(true); } } if (await Buff.ChainStrategem()) { return(true); } #endregion if (await Logic.Scholar.Heal.Excogitation()) { return(true); } if (await Logic.Scholar.Heal.Lustrate()) { return(true); } if (Core.Me.Pet != null && Core.Me.InCombat) { if (await Logic.Scholar.Heal.FeyBlessing()) { return(true); } if (await Logic.Scholar.Heal.WhisperingDawn()) { return(true); } if (await Logic.Scholar.Heal.FeyIllumination()) { return(true); } if (await Logic.Scholar.Heal.SummonSeraph()) { return(true); } if (await Logic.Scholar.Heal.Consolation()) { return(true); } } if (Globals.InParty) { if (await Logic.Scholar.Heal.Indomitability()) { return(true); } if (await Logic.Scholar.Heal.Succor()) { return(true); } if (await Logic.Scholar.Heal.SacredSoil()) { return(true); } } if (await Logic.Scholar.Heal.EmergencyTacticsAdlo()) { return(true); } if (await Logic.Scholar.Heal.Adloquium()) { return(true); } if (await Logic.Scholar.Heal.Physick()) { return(true); } if (await Buff.SummonPet()) { return(true); } if (Utilities.Combat.Enemies.Count > ScholarSettings.Instance.StopDamageWhenMoreThanEnemies) { return(true); } if (PartyManager.IsInParty) { if (!ScholarSettings.Instance.DoDamage) { return(true); } if (Core.Me.CurrentManaPercent < ScholarSettings.Instance.MinimumManaPercent) { return(true); } } return(await Aoe.ArtOfWar()); }
public static bool IsChocobo(this GameObject tar) { var gameObject = tar as Character; return(gameObject != null && Chocobo.Contains(gameObject.CurrentJob)); }
protected override Composite CreateBehavior() { return(new PrioritySelector( new Decorator(ret => Talk.DialogOpen, new Action(ret => Talk.Next())), new Decorator(ret => SelectYesno.IsOpen, new Action(ret => SelectYesno.ClickYes())), CommonBehaviors.HandleLoading, new Decorator(ret => QuestLogManager.InCutscene, new ActionAlwaysSucceed()), new Decorator(ret => DutyManager.InInstance && Core.Player.IsVisible, new PrioritySelector( //r=> GuardianNPC, //new Decorator(ret => !initialized,new Action(ret => init())), // //new Decorator(r => NeedToMove && ((r as BattleCharacter) == null || !(r as BattleCharacter).IsValid || (r as BattleCharacter).Location.Distance2D(Core.Player.Location) <= 5), new Action(r => NeedToMove = false)), //new Decorator(r => NeedToMove, CommonBehaviors.MoveAndStop(r => (r as BattleCharacter).Location, 5f, true, "Moving back into guardian npc range")), //new Decorator(r => (r as BattleCharacter) != null && ((r as BattleCharacter).Location.DistanceSqr(Core.Player.Location) > LeashSquared), new ActionAlwaysFail()), new ActionRunCoroutine(r => DoControlLogic()), new Decorator(r => CombatTargeting.Instance.FirstUnit == null, new HookExecutor("HotspotPoi")), new HookExecutor("SetCombatPoi"), new ActionAlwaysSucceed() ) ), new Decorator(r => Chocobo.Summoned, new ActionRunCoroutine(r => Chocobo.DismissChocobo())), CommonBehaviors.MoveAndStop(r => XYZ, InteractDistance, true), CreateUseObject(), new ActionAlwaysSucceed() )); }
public static async Task <bool> Execute() { if (await Chocobo.HandleChocobo()) { return(true); } Group.UpdateAllies(Utilities.Routines.Astrologian.GroupExtension); Globals.HealTarget = Group.CastableAlliesWithin30.OrderBy(x => x.CurrentHealthPercent).FirstOrDefault(); if (await Casting.TrackSpellCast()) { return(true); } await Casting.CheckForSuccessfulCast(); Casting.DoHealthChecks = false; Globals.InParty = PartyManager.IsInParty || Globals.InGcInstance; Globals.PartyInCombat = Globals.InParty && Utilities.Combat.Enemies.Any(r => r.TaggerType == 2) || Core.Me.InCombat; Globals.OnPvpMap = Core.Me.OnPvpMap(); if (Duty.State() == Duty.States.Ended) { return(false); } if (await GambitLogic.Gambit()) { return(true); } if (Globals.OnPvpMap) { if (await Pvp.EssentialDignity()) { return(true); //Heal } if (await Pvp.Purify()) { return(true); //Dispel/Heal } if (await Pvp.Muse()) { return(true); //Self-Buff } if (await Pvp.Lightspeed()) { return(true); //CombatBuff } if (await Pvp.Synastry()) { return(true); //Heal } if (await Pvp.Deorbit()) { return(true); //Heal } if (await Pvp.EmpyreanRain()) { return(true); //Heal } if (await Pvp.Recuperate()) { return(true); //Self-Heal } if (await Pvp.Benefic2()) { return(true); //Heal } if (await Pvp.Benefic()) { return(true); //Heal } if (await Pvp.Concentrate()) { return(true); //CombatBuff/Heal } if (await Pvp.Safeguard()) { return(true); //CombatBuff/Shield } if (await Card.Play()) { return(true); } return(await Card.Draw()); } if (Globals.PartyInCombat && Globals.InParty) { if (await TankBusters.Execute()) { return(true); } } if (await Logic.Astrologian.Heal.Ascend()) { return(true); } // Scalebound Extreme Rathalos if (Core.Me.HasAura(1495)) { if (await Dispel.Execute()) { return(true); } return(false); } if (await Logic.Astrologian.Heal.EssentialDignity()) { return(true); } if (await Dispel.Execute()) { return(true); } if (await Buff.LucidDreaming()) { return(true); } if (await Buff.Lightspeed()) { return(true); } if (await Buff.Synastry()) { return(true); } if (await Buff.CelestialOpposition()) { return(true); } if (DutyManager.InInstance || Core.Me.InCombat) { if (Globals.InParty) { if (await Logic.Astrologian.Heal.EssentialDignity()) { return(true); } if (await Logic.Astrologian.Heal.AspectedHelios()) { return(true); } if (await Logic.Astrologian.Heal.CollectiveUnconscious()) { return(true); } if (await Logic.Astrologian.Heal.Helios()) { return(true); } if (await Logic.Astrologian.Heal.LadyOfCrowns()) { return(true); } if (await Logic.Astrologian.Heal.Benefic2()) { return(true); } } if (await Logic.Astrologian.Heal.Benefic()) { return(true); } if (await Logic.Astrologian.Heal.AspectedBenefic()) { return(true); } if (await Logic.Astrologian.Heal.EarthlyStar()) { return(true); } } if (await Logic.Astrologian.Heal.LadyOfCrowns()) { return(true); } if (await Logic.Astrologian.Heal.Benefic()) { return(true); } if (await Card.Play()) { return(true); } return(await Card.Draw()); }
public override async Task <bool> Heal() { Group.UpdateAllies(); await Chocobo.HandleChocobo(); switch (RotationManager.CurrentRotation) { case ClassJobType.Gladiator: case ClassJobType.Paladin: return(await Rotations.Paladin.Heal()); case ClassJobType.Pugilist: case ClassJobType.Monk: return(await Rotations.Monk.Heal()); case ClassJobType.Marauder: case ClassJobType.Warrior: return(await Rotations.Warrior.Heal()); case ClassJobType.Lancer: case ClassJobType.Dragoon: return(await Rotations.Dragoon.Heal()); case ClassJobType.Archer: case ClassJobType.Bard: return(await Rotations.Bard.Heal()); case ClassJobType.Conjurer: case ClassJobType.WhiteMage: Group.UpdateAllies(Routines.WhiteMage.GroupExtension); Globals.HealTarget = Group.CastableAlliesWithin30.OrderBy(x => x.CurrentHealthPercent).FirstOrDefault(); return(await Rotations.WhiteMage.Heal()); case ClassJobType.Thaumaturge: case ClassJobType.BlackMage: return(await Rotations.BlackMage.Heal()); case ClassJobType.Arcanist: case ClassJobType.Summoner: return(await Rotations.Summoner.Heal()); case ClassJobType.Scholar: Group.UpdateAllies(Routines.Scholar.GroupExtension); Globals.HealTarget = Group.CastableAlliesWithin30.OrderBy(x => x.CurrentHealthPercent).FirstOrDefault(); return(await Rotations.Scholar.Heal()); case ClassJobType.Rogue: case ClassJobType.Ninja: return(await Rotations.Ninja.Heal()); case ClassJobType.Machinist: return(await Rotations.Machinist.Heal()); case ClassJobType.DarkKnight: return(await Rotations.DarkKnight.Heal()); case ClassJobType.Astrologian: Group.UpdateAllies(Routines.Astrologian.GroupExtension); Globals.HealTarget = Group.CastableAlliesWithin30.OrderBy(x => x.CurrentHealthPercent).FirstOrDefault(); return(await Rotations.Astrologian.Heal()); case ClassJobType.Samurai: return(await Rotations.Samurai.Heal()); case ClassJobType.BlueMage: return(await Rotations.BlueMage.Heal()); case ClassJobType.RedMage: return(await Rotations.RedMage.Heal()); case ClassJobType.Gunbreaker: return(await Rotations.Gunbreaker.Heal()); case ClassJobType.Dancer: return(await Rotations.Dancer.Heal()); default: return(false); } }
public override async Task <bool> Combat() { Group.UpdateAllies(); await Chocobo.HandleChocobo(); switch (RotationManager.CurrentRotation) { case ClassJobType.Gladiator: case ClassJobType.Paladin: return(await Rotations.Paladin.Combat()); case ClassJobType.Pugilist: case ClassJobType.Monk: return(await Rotations.Monk.Combat()); case ClassJobType.Marauder: case ClassJobType.Warrior: return(await Rotations.Warrior.Combat()); case ClassJobType.Lancer: case ClassJobType.Dragoon: return(await Rotations.Dragoon.Combat()); case ClassJobType.Archer: case ClassJobType.Bard: return(await Rotations.Bard.Combat()); case ClassJobType.Conjurer: case ClassJobType.WhiteMage: return(await Rotations.WhiteMage.Combat()); case ClassJobType.Thaumaturge: case ClassJobType.BlackMage: return(await Rotations.BlackMage.Combat()); case ClassJobType.Arcanist: case ClassJobType.Summoner: return(await Rotations.Summoner.Combat()); case ClassJobType.Scholar: return(await Rotations.Scholar.Combat()); case ClassJobType.Rogue: case ClassJobType.Ninja: return(await Rotations.Ninja.Combat()); case ClassJobType.Machinist: return(await Rotations.Machinist.Combat()); case ClassJobType.DarkKnight: return(await Rotations.DarkKnight.Combat()); case ClassJobType.Astrologian: return(await Rotations.Astrologian.Combat()); case ClassJobType.Samurai: return(await Rotations.Samurai.Combat()); case ClassJobType.BlueMage: return(await Rotations.BlueMage.Combat()); case ClassJobType.RedMage: return(await Rotations.RedMage.Combat()); case ClassJobType.Gunbreaker: return(await Rotations.Gunbreaker.Combat()); case ClassJobType.Dancer: return(await Rotations.Dancer.Combat()); default: return(false); } }
public override async Task <bool> Rest() { if (!BaseSettings.Instance.ActiveCombatRoutine) { return(false); } await Chocobo.HandleChocobo(); switch (RotationManager.CurrentRotation) { case ClassJobType.Gladiator: case ClassJobType.Paladin: return(await Rotations.Paladin.Rest()); case ClassJobType.Pugilist: case ClassJobType.Monk: return(await Rotations.Monk.Rest()); case ClassJobType.Marauder: case ClassJobType.Warrior: return(await Rotations.Warrior.Rest()); case ClassJobType.Lancer: case ClassJobType.Dragoon: return(await Rotations.Dragoon.Rest()); case ClassJobType.Archer: case ClassJobType.Bard: return(await Rotations.Bard.Rest()); case ClassJobType.Conjurer: case ClassJobType.WhiteMage: return(await Rotations.WhiteMage.Rest()); case ClassJobType.Thaumaturge: case ClassJobType.BlackMage: return(await Rotations.BlackMage.Rest()); case ClassJobType.Arcanist: case ClassJobType.Summoner: return(await Rotations.Summoner.Rest()); case ClassJobType.Scholar: return(await Rotations.Scholar.Rest()); case ClassJobType.Rogue: case ClassJobType.Ninja: return(await Rotations.Ninja.Rest()); case ClassJobType.Machinist: return(await Rotations.Machinist.Rest()); case ClassJobType.DarkKnight: return(await Rotations.DarkKnight.Rest()); case ClassJobType.Astrologian: return(await Rotations.Astrologian.Rest()); case ClassJobType.Samurai: return(await Rotations.Samurai.Rest()); case ClassJobType.BlueMage: return(await Rotations.BlueMage.Rest()); case ClassJobType.RedMage: return(await Rotations.RedMage.Rest()); case ClassJobType.Gunbreaker: return(await Rotations.Gunbreaker.Rest()); case ClassJobType.Dancer: return(await Rotations.Dancer.Rest()); case ClassJobType.Reaper: return(await Rotations.Reaper.Rest()); case ClassJobType.Sage: return(await Rotations.Sage.Rest()); default: return(false); } }