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); }
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); } } } }