public AllianceMember(Player player, Alliance.Role role) { Id = player.Home.Id; Role = (int)role; Score = player.Home.Arena.Trophies; Name = player.Home.Name; }
/// <summary> /// Initializes a new instance of the <see cref="StreamEntry"/> class. /// </summary> internal StreamEntry(AllianceMember member) { this.SenderHighID = member.HighID; this.SenderLowID = member.LowID; this.SenderName = member.Name; this.SenderLeague = member.League; this.SenderRole = (Alliance.Role)member.Role; }
/// <summary> /// Initializes a new instance of the <see cref="AllianceMember"/> class. /// </summary> internal AllianceMember(LogicClientAvatar avatar, Alliance.Role role) { this.HighID = avatar.Identifier.High; this.LowID = avatar.Identifier.Low; this.Name = avatar.Name; this.Role = (int)role; this.Level = avatar.ExpLevel; this.Score = avatar.Score; this.League = avatar.League; }
private static void FindNewLeader(Alliance alliance, AllianceMember member) { LogicClientAvatar avatar = Avatars.Get(member.Identifier); AllianceMember newLeader = alliance.Members.Find(member => member.Role == (int)Alliance.Role.CoLeader); const Alliance.Role newRole = Alliance.Role.Leader; if (newLeader != null) { newLeader.Role = (int)newRole; } else { newLeader = alliance.Members.Find(member => member.Role == (int)Alliance.Role.Admin); if (newLeader != null) { newLeader.Role = (int)newRole; } else { newLeader = alliance.Members[Loader.Random.Rand(alliance.Members.Count)]; if (newLeader != null) { newLeader.Role = (int)newRole; } } } alliance.AddEntry(new StreamEntry(member, member, StreamEntry.StreamEvent.Demoted)); alliance.AddEntry(new StreamEntry(newLeader, member, StreamEntry.StreamEvent.Promoted)); avatar.Save(); Avatars.Get(newLeader.Identifier).Save(); new AvailableServerCommandMessage(avatar.Connection, new LogicChangeAllianceRoleCommand(avatar.Connection) { Role = newRole }).Send(); }