Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public static async Task <bool> Panhaima()
        {
            if (!SageSettings.Instance.Panhaima)
            {
                return(false);
            }

            if (!Spells.Panhaima.IsKnownAndReady())
            {
                return(false);
            }

            if (Globals.InParty)
            {
                if (SageSettings.Instance.FightLogic_Panhaima && FightLogic.EnemyHasAnyAoeLogic())
                {
                    return(false);
                }

                var targets = Group.CastableAlliesWithin15.Where(CanPanhaima);

                if (targets.Count() < AoeNeedHealing)
                {
                    return(false);
                }

                if (SageSettings.Instance.PanhaimaOnlyWithTank && !targets.Any(r => r.IsTank(SageSettings.Instance.PanhaimaOnlyWithMainTank)))
                {
                    return(false);
                }

                if (!UseAoEHealingBuff(targets))
                {
                    return(false);
                }

                return(await Spells.Panhaima.CastAura(Core.Me, Auras.Panhaimatinon));
            }

            if (Core.Me.CurrentHealthPercent > SageSettings.Instance.PanhaimaHpPercent)
            {
                return(false);
            }

            return(await Spells.Panhaima.CastAura(Core.Me, Auras.Panhaimatinon));

            bool CanPanhaima(Character unit)
            {
                if (unit == null)
                {
                    return(false);
                }

                if (unit.CurrentHealthPercent > SageSettings.Instance.PanhaimaHpPercent)
                {
                    return(false);
                }

                if (unit.HasAura(Auras.Panhaimatinon))
                {
                    return(false);
                }

                return(unit.Distance(Core.Me) <= 15);
            }
        }