public AllianceMember(Player player, Alliance.Role role)
 {
     Id    = player.Home.Id;
     Role  = (int)role;
     Score = player.Home.Arena.Trophies;
     Name  = player.Home.Name;
 }
示例#2
0
        /// <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;
        }
示例#3
0
 /// <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;
 }
示例#4
0
        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();
        }