コード例 #1
0
        public static void UpdateAlliance(
            bool IgnoreAlliance,
            bool HealAllianceDps,
            bool HealAllianceHealers,
            bool HealAllianceTanks,
            bool ResAllianceDps,
            bool ResAllianceHealers,
            bool ResAllianceTanks
            )
        {
            CastableAlliance.Clear();

            // Should we be ignoring our alliance?
            if (!IgnoreAlliance && (Globals.InActiveDuty || WorldManager.InPvP))
            {
                // Create a list of alliance members that we need to check
                if (HealAllianceDps || HealAllianceHealers || HealAllianceTanks)
                {
                    var allianceToHeal = AllianceMembers.Where(a => !a.CanAttack && !a.HasAura(Auras.MountedPvp) && (
                                                                   HealAllianceDps && a.IsDps() ||
                                                                   HealAllianceTanks && a.IsTank() ||
                                                                   HealAllianceHealers && a.IsDps()));

                    foreach (var ally in allianceToHeal)
                    {
                        if (ally.Distance(Core.Me) <= 30)
                        {
                            CastableAlliance.Add(ally);
                        }
                    }
                }

                if (ResAllianceDps || ResAllianceHealers || ResAllianceTanks)
                {
                    var allianceToRes = AllianceMembers.Where(a => a.CurrentHealth <= 0 &&
                                                              (ResAllianceDps && a.IsDps() ||
                                                               ResAllianceTanks && a.IsTank() ||
                                                               ResAllianceHealers && a.IsDps()));
                    foreach (var ally in allianceToRes)
                    {
                        CastableAlliance.Add(ally);
                    }
                }
            }
        }