コード例 #1
0
        private static async Task <bool> Protect()
        {
            if (!SuritoSettingsModel.Instance.UseProtect)
            {
                return(false);
            }

            if (PartyManager.IsInParty)
            {
                if (CombatHelper.LastSpell == Spells.Protect || ActionManager.LastSpell == Spells.Protect ||
                    !SuritoSettingsModel.Instance.UseProtectInCombat && PartyMembers.Any(pm => pm.InCombat) ||
                    PartyMembers.Any(pm => pm.Icon == PlayerIcon.Viewing_Cutscene) ||
                    HealManager.All(hm => hm.HasAura(Auras.Protect)) ||
                    HealManager.Any(hm => hm.CurrentHealthPercent <= SuritoSettingsModel.Instance.PhysickHpPct || hm.IsDead))
                {
                    return(false);
                }
            }

            var target = HealManager.FirstOrDefault(hm => !hm.HasAura(Auras.Protect));

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

            return(await Spells.Protect.CastBuff(target, CombatHelper.LastSpell != Spells.Protect, Auras.Protect));
        }