예제 #1
0
        public static async Task <bool> PreCombatBuff()
        {
            if (Core.Me.IsCasting)
            {
                return(true);
            }

            await Casting.CheckForSuccessfulCast();

            if (Core.Me.IsMounted)
            {
                return(false);
            }

            if (CustomOpenerLogic.InOpener)
            {
                return(false);
            }

            if (await Buff.SummonPet())
            {
                return(true);
            }
            return(await Buff.Aetherflow());
        }
예제 #2
0
        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());
        }
예제 #3
0
        public static async Task <bool> Heal()
        {
            if (Core.Me.IsMounted)
            {
                return(true);
            }

            if (await Casting.TrackSpellCast())
            {
                return(true);
            }
            await Casting.CheckForSuccessfulCast();

            Casting.DoHealthChecks = 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 Logic.Scholar.Heal.ForceWhispDawn())
            {
                return(true);
            }
            if (await Logic.Scholar.Heal.ForceAdlo())
            {
                return(true);
            }
            if (await Logic.Scholar.Heal.ForceIndom())
            {
                return(true);
            }
            if (await Logic.Scholar.Heal.ForceExcog())
            {
                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 (Globals.InParty)
            {
                if (!ScholarSettings.Instance.DoDamage)
                {
                    return(true);
                }

                if (Core.Me.CurrentManaPercent < ScholarSettings.Instance.MinimumManaPercent)
                {
                    return(true);
                }
            }

            return(await Combat());
        }
예제 #4
0
        public static async Task<bool> Heal()
        {
            if (WorldManager.InSanctuary)
                return false;

            if (Core.Me.IsMounted)
                return false;

            if (await Casting.TrackSpellCast())
                return true;

            await Casting.CheckForSuccessfulCast();

            if (await Buff.SummonPet()) return true;

            Casting.DoHealthChecks = false;

            if (await GambitLogic.Gambit()) return true;

            if (CustomOpenerLogic.InOpener) return false;
            
            if (await HealFightLogic.Aoe()) return true;
            if (await HealFightLogic.Tankbuster()) return true;

            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 (await Logic.Scholar.Heal.ForceWhispDawn()) return true;
            if (await Logic.Scholar.Heal.ForceAdlo()) return true;
            if (await Logic.Scholar.Heal.ForceIndom()) return true;
            if (await Logic.Scholar.Heal.ForceExcog()) return true;

            if (await Dispel.Execute()) return true;
            if (await Buff.Aetherflow()) return true;
            if (await Buff.LucidDreaming()) 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.Buff.SummonSeraph()) return true;
                if (await Logic.Scholar.Heal.Consolation()) return true;
                if (await Logic.Scholar.Heal.FeyIllumination()) return true;
                if (await Logic.Scholar.Heal.WhisperingDawn()) return true;
                if (await Logic.Scholar.Heal.FeyBlessing()) return true;
            }

            if (Globals.InParty)
            {
                if (await Logic.Scholar.Heal.Indomitability()) return true;
                if (await Logic.Scholar.Heal.EmergencyTacticsSuccor()) return true;
                if (await Logic.Scholar.Heal.Succor()) return true;
                if (await Logic.Scholar.Heal.SacredSoil()) return true;
            }

            if (await Buff.Expedient()) return true;
            if (await Buff.Protraction()) return true;
            if (await Logic.Scholar.Heal.EmergencyTacticsAdloquium()) return true;
            if (await Logic.Scholar.Heal.Adloquium()) return true;
            if (await Logic.Scholar.Heal.Physick()) return true;

            return await HealAlliance();
        }
예제 #5
0
        public static async Task <bool> Combat()
        {
            if (BotManager.Current.IsAutonomous)
            {
                if (Core.Me.HasTarget)
                {
                    Movement.NavigateToUnitLos(Core.Me.CurrentTarget, 20);
                }
            }

            if (!Core.Me.HasTarget || !Core.Me.CurrentTarget.ThoroughCanAttack())
            {
                return(false);
            }

            if (Core.Me.CurrentManaPercent <= ScholarSettings.Instance.MinimumManaPercent)
            {
                return(false);
            }

            if (await CustomOpenerLogic.Opener())
            {
                return(true);
            }

            if (await Logic.Scholar.Heal.Resurrection())
            {
                return(true);
            }

            // Scalebound Extreme Rathalos
            if (Core.Me.HasAura(1495))
            {
                return(await Dispel.Execute());
            }

            if (await Logic.Scholar.Heal.ForceWhispDawn())
            {
                return(true);
            }
            if (await Logic.Scholar.Heal.ForceAdlo())
            {
                return(true);
            }
            if (await Logic.Scholar.Heal.ForceIndom())
            {
                return(true);
            }
            if (await Logic.Scholar.Heal.ForceExcog())
            {
                return(true);
            }



            #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.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 (Globals.InParty)
            {
                if (!ScholarSettings.Instance.DoDamage)
                {
                    return(true);
                }

                if (Core.Me.CurrentManaPercent < ScholarSettings.Instance.MinimumManaPercent)
                {
                    return(true);
                }
            }

            if (await SingleTarget.Bio())
            {
                return(true);
            }
            if (await SingleTarget.BioMultipleTargets())
            {
                return(true);
            }
            if (await SingleTarget.Ruin2())
            {
                return(true);
            }
            if (await SingleTarget.EnergyDrain2())
            {
                return(true);
            }
            return(await SingleTarget.Broil());
        }
예제 #6
0
        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());
        }