示例#1
0
        public async Task <bool> HandOfTheProtectordMethod()
        {
            if (!Paladin.Settings.PaladinSettings.Instance.UseLightOfTheProtector)
            {
                return(false);
            }

            var spell = LightOfTheProtector;

            if (MyTalents.HandOfTheProtector.IsActive())
            {
                spell = HandOfTheProtector;
            }

            if (spell.CRSpell.Cooldown)
            {
                return(false);
            }

            if (Globals.MyHp < Paladin.Settings.PaladinSettings.Instance.LightOfTheProtector)
            {
                return(await CastHandOfTheProtector(StyxWoW.Me, spell));
            }

            var target = Healing.HealTarget(Paladin.Settings.PaladinSettings.Instance.LightOfTheProtectorOther);

            if (target == null)
            {
                return(false);
            }

            return(await CastHandOfTheProtector(target, spell));
        }
示例#2
0
        public async Task <bool> BestowFaithMethod()
        {
            if (BestowFaith.CRSpell.Cooldown)
            {
                return(false);
            }

            var target = Healing.HealTarget(PaladinSettings.Instance.BestowFaith, true);

            if (target == null || target.IsDead || target.IsGhost)
            {
                return(false);
            }

            Helpers.Logger.DiagnosticLog("Bestow Faith on {0}, Distance: {1}, LOS: {2}", target.SafeName, target.Distance, target.InLineOfSpellSight);

            return(await BestowFaithCast(target));
        }
示例#3
0
        public async Task <bool> HolyLightMethod()
        {
            if (StyxWoW.Me.IsMoving)
            {
                return(false);
            }

            var target = Healing.HealTarget(PaladinSettings.Instance.HolyLight, true);

            if (target == null || target.IsDead || target.IsGhost)
            {
                return(false);
            }

            Helpers.Logger.DiagnosticLog("Holy Light on {0}, Distance: {1}, LOS: {2}", target.SafeName, target.Distance, target.InLineOfSpellSight);

            return(await HolyLightCast(target));
        }
示例#4
0
        public async Task <bool> FlashOfLightMethod()
        {
            // TODO unify
            if (!PaladinSettings.Instance.ProtFoLMe && !PaladinSettings.Instance.ProtFoLOther)
            {
                return(false);
            }

            if (StyxWoW.Me.IsMoving)
            {
                return(false);
            }

            if (Globals.InParty && !Globals.Pvp)
            {
                return(false);                                 // if we are in a pvp party dont heal TODO check if healer is alive
            }
            // We check ourself first
            if (StyxWoW.Me.HealthPercent <= PaladinSettings.Instance.ProtFoLSelfHp)
            {
                return(await FlashOfLightCast(StyxWoW.Me));
            }

            if (!Globals.Arena)
            {
                return(false);
            }

            if (!PaladinSettings.Instance.ProtFoLOther || !Globals.InParty)
            {
                return(false);
            }
            // Look for a group target TODO
            var target = Healing.HealTarget(PaladinSettings.Instance.ProtFoLOtherHp);

            if (target == null || target.IsDead)
            {
                return(false);
            }

            Helpers.Logger.DiagnosticLog("Flash of Light on {0}, Distance: {1}, LOS: {2}", target.SafeName, target.Distance, target.InLineOfSpellSight);

            return(await FlashOfLightCast(target));
        }
示例#5
0
        public async Task <bool> WordOfGloryMethod()
        {
            if (!PaladinSettings.Instance.WoGUse)
            {
                return(false);
            }

            if (!MyTalents.WordOfGLory.IsActive())
            {
                return(false);
            }

            // We check ourself first
            if (Globals.MyHp <= PaladinSettings.Instance.WoGHealth)
            {
                return(await WordOfGloryCast());
            }

            if (!PaladinSettings.Instance.WoGHealParty || !Globals.Arena)
            {
                return(false);
            }

            // Find a group target
            var target = Healing.HealTarget(PaladinSettings.Instance.WoGPartyHealth);

            if (target == null || target.IsDead)
            {
                return(false);
            }

            if (target.Distance > 15)
            {
                return(false);
            }

            return(await WordOfGloryCast());
        }
示例#6
0
        public async Task <bool> FlashOfLightMethod()
        {
            if (StyxWoW.Me.IsMoving)
            {
                return(false);
            }

            // cast holy light with proc
            if (StyxWoW.Me.GetAuraById(54149) != null && Unit.EnemiesAttackingTarget(StyxWoW.Me) <= 0)
            {
                return(false);
            }

            var target = Healing.HealTarget(PaladinSettings.Instance.HolyFoL, true);

            if (target == null || target.IsDead || target.IsGhost)
            {
                return(false);
            }

            Helpers.Logger.DiagnosticLog("Flash of Light on {0}, Distance: {1}, LOS: {2}", target.SafeName, target.Distance, target.InLineOfSpellSight);

            return(await FlashOfLightCast(target));
        }