private AllianceMembers _getAllianceMembers(IDbConnection connection, int userId, int userAllianceId, IGameUserService gameUserService)
        {
            var allianceMembers = new AllianceMembers();
            var allianceUsers   = GetAllianceUsers(connection, userAllianceId);
            var members         = new List <AllianceMember>();

            foreach (var a in allianceUsers)
            {
                var user   = gameUserService.GetGameUser(connection, a.UserId);
                var member = new AllianceMember
                {
                    AllianceUserId = a.Id,
                    UserId         = a.UserId,
                    UserName       = user.Nickname,
                    OnlineStatus   = user.IsOnline,
                    UserPvp        = user.PvpPoint,
                    Role           = new AllianceRole(a.RoleId)
                };
                members.Add(member);
            }


            allianceMembers.CurrentUserRoleName =
                members.Where(i => i.UserId == userId).Select(i => i.Role.RoleName).First();
            allianceMembers.Members = members;
            allianceMembers.SetComplexButtonView();
            return(allianceMembers);
        }
Esempio n. 2
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);
                    }
                }
            }
        }