Exemplo n.º 1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="StreamEntry"/> class.
 /// </summary>
 internal StreamEntry(AllianceMember member, AllianceMember executor, StreamEvent streamEvent) : this(member)
 {
     this.ExecutorHighID = executor.HighID;
     this.ExecutorLowID  = executor.LowID;
     this.ExecutorName   = executor.Name;
     this.Event          = streamEvent;
 }
Exemplo n.º 2
0
        //adds a member to the alliance
        public void addMember(AllianceMember member)
        {
            this.Members.Add(new AllianceMemberMVVM(member, this.Alliance.IsHumanAlliance));
            this.Alliance.addMember(member);

            setValues();
        }
Exemplo n.º 3
0
        private void join(User user, AllianceMember rights = null)
        {
            this.members.Add(user);
            if (rights != null)
            {
                this.memberRights.Add(rights);
            }
            else
            {
                this.memberRights.Add(AllianceMember.noRights(user.id, this.id));
            }
            user.group      = this;
            user.allianceId = this.id;

            foreach (System.Collections.DictionaryEntry HashEntry in GeometryIndex.allFields)
            {
                Field fieldToSet = (Field)HashEntry.Value;

                if (fieldToSet.Influence.Count == 0)
                {
                    continue;
                }
                if (fieldToSet.Owner == user)
                {
                    fieldToSet.Entity = user.GetEntity();
                }
            }


            JoinSecondarySpecificationGain(user);
        }
Exemplo n.º 4
0
        public static AllianceMember GetLocalPlayer()
        {
            long           uid    = GetLocalUid();
            AllianceMember member = AlliancesManager.Instance.DetailMembers.Find(uid);

            return(member);
        }
Exemplo n.º 5
0
        public static bool createAlliance(User user, string name)
        {
            Core            core           = Core.Instance;
            List <Lockable> elementsToLock = new List <Lockable>(1);

            elementsToLock.Add(user);

            if (!LockingManager.lockAllOrSleep(elementsToLock))
            {
                return(false);
            }
            try
            {
                //Prüfen ob der Nutzer noch Mitlgied einer ALlianz ist
                if (user.allianceId != 0 || user.group != null)
                {
                    LockingManager.unlockAll(elementsToLock);
                    return(false);
                }

                //create alliance
                int      newId    = (int)Core.Instance.identities.allianceId.getNext();
                Alliance alliance = new Alliance(newId, name, "", "", user.id, 1000, null);
                core.alliances.TryAdd(newId, alliance);

                //add owner
                AllianceMember fullRights = AllianceMember.fullRights(user.id, newId);
                alliance.join(user, fullRights);

                //All relations from and towards the user are now concerning his new alliance:
                List <DiplomaticRelation> relations = new List <DiplomaticRelation>();
                foreach (var relation in core.userRelations.getDiplomatics(user, 1))
                {
                    core.userRelations.setDiplomaticEntityState(alliance, relation.target, (Relation)relation.relationSenderProposal);
                    relations.Add(new DiplomaticRelation(alliance.GetHashCode(), relation.target.GetHashCode(), relation.relationSenderProposal));
                    core.userRelations.setDiplomaticEntityState(relation.target, alliance, (Relation)relation.relationTargetProposal);
                    relations.Add(new DiplomaticRelation(relation.target.GetHashCode(), alliance.GetHashCode(), relation.relationTargetProposal));
                }

                //save alliance:
                core.dataConnection.saveAlliances(alliance);

                // new relations:
                Core.Instance.dataConnection.saveDiplomaticEntities(relations);

                //members:
                Core.Instance.dataConnection.saveAllianceMembers(alliance);

                CommunicationNode.CreateAllianceNode(alliance);
            }
            catch (Exception ex)
            {
                core.writeExceptionToLog(ex);
            }
            finally
            {
                LockingManager.unlockAll(elementsToLock);
            }
            return(true);
        }
        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);
        }
Exemplo n.º 7
0
        internal override void Handle()
        {
            Alliance alliance = Alliances.Get(this.Connection.Avatar.Alliance.Identifier);

            if (alliance != null)
            {
                AllianceMember member = alliance.Members.Find(m => m.Identifier == this.MemberID);
                AllianceMember sender = alliance.Members.Find(m => m.Identifier == this.Connection.Avatar.Identifier);

                alliance.AddEntry(new StreamEntry(member, sender, ChangeAllianceMemberRoleMessage.IsHigherRoleThan(this.Role, member.Role) ? StreamEntry.StreamEvent.Promoted : StreamEntry.StreamEvent.Demoted));
                member.Role = this.Role;

                if (this.Role == (int)Alliance.Role.Leader)
                {
                    sender.Role = (int)Alliance.Role.CoLeader;
                    alliance.AddEntry(new StreamEntry(sender, sender, StreamEntry.StreamEvent.Demoted));
                }

                Alliances.Save(alliance);

                new AvailableServerCommandMessage(this.Connection, new LogicChangeAllianceRoleCommand(this.Connection)
                {
                    Role = (Alliance.Role) this.Role
                }).Send();
            }
        }
Exemplo n.º 8
0
        internal override void Handle()
        {
            LogicClientAvatar avatar   = this.Connection.Avatar;
            Alliance          alliance = avatar.Alliance;

            if (alliance != null)
            {
                AllianceMember member = alliance.Members.Find(m => m.Identifier == avatar.Identifier);

                avatar.ClanHighID = 0;
                avatar.ClanLowID  = 0;

                avatar.Save();

                if (alliance.Members.Size == 0)
                {
                    Alliances.Delete(alliance);
                }
                else
                {
                    if (member.Role == (int)Alliance.Role.Leader)
                    {
                        LeaveAllianceMessage.FindNewLeader(alliance, member);
                    }
                }

                new AvailableServerCommandMessage(this.Connection, new LogicLeaveAllianceCommand(this.Connection, alliance.Identifier)).Send();
                alliance.AddEntry(new StreamEntry(member, member, StreamEntry.StreamEvent.Left));

                alliance.Members.Remove(member);

                Alliances.Save(alliance);
            }
        }
Exemplo n.º 9
0
        internal override void Handle()
        {
            Alliance alliance = Alliances.Get(this.AllianceID);

            if (alliance != null)
            {
                if (!alliance.Members.Contains(alliance.Members.Find(member => member.Identifier == this.Connection.Avatar.Identifier)))
                {
                    AllianceMember member = new AllianceMember(this.Connection.Avatar, Alliance.Role.Member);
                    alliance.Members.Add(member);

                    this.Connection.Avatar.ClanHighID = alliance.HighID;
                    this.Connection.Avatar.ClanLowID  = alliance.LowID;

                    this.Connection.Avatar.Save();

                    Alliances.Save(alliance);

                    new AvailableServerCommandMessage(this.Connection, new LogicChangeAllianceRoleCommand(this.Connection)
                    {
                        Role = Alliance.Role.Member
                    }).Send();

                    new AvailableServerCommandMessage(this.Connection, new LogicJoinAllianceCommand(this.Connection)).Send();

                    new AllianceStreamMessage(this.Connection).Send();
                    alliance.AddEntry(new StreamEntry(member, member, StreamEntry.StreamEvent.Joined));

                    this.Connection.Avatar.Save();
                }
            }
        }
Exemplo n.º 10
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;
        }
Exemplo n.º 11
0
        public static bool IsMember(long uid)
        {
            AllianceMember member = AlliancesManager.Instance.DetailMembers.Find(uid);

            if (member == null)
            {
                return(false);
            }

            return(member.Role == eAllianceMemberRole.Member);
        }
Exemplo n.º 12
0
        public static bool IsOneOfAdmin(long uid)
        {
            AllianceMember member = AlliancesManager.Instance.DetailMembers.Find(uid);

            if (member == null)
            {
                return(false);
            }

            return(member.Role == eAllianceMemberRole.Admin || member.Role == eAllianceMemberRole.ExtraOwner || member.Role == eAllianceMemberRole.Owner);
        }
Exemplo n.º 13
0
        public bool CreateAllianceMember(AllianceMember allianceMember)
        {
            outpostwarsEntities entities = new outpostwarsEntities();

            try
            {
                // Add tew New Player into the player Collection
                entities.AllianceMembers.Add(allianceMember);
                // Save changes
                return(entities.SaveChanges() == 1);
            }
            catch (DbEntityValidationException ex)
            {
                LogCriticalError(ex);
            }
            return(false);
        }
        internal override void Execute()
        {
            LogicClientAvatar avatar = Avatars.Get(this.Identifier);

            if (avatar != null)
            {
                Alliance alliance = avatar.Alliance;

                AllianceMember allianceMember = alliance.Members.Find(member => member.Identifier == this.Identifier);

                if (allianceMember != null)
                {
                    alliance.Members.Remove(allianceMember);
                }

                Alliances.Save(alliance);
            }
        }
Exemplo n.º 15
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();
        }
        internal override void Handle()
        {
            if (this.Connection.Avatar.IsInAlliance)
            {
                if (!this.Message.IsNullOrEmptyOrWhitespace())
                {
                    if (this.Message.Length <= 128)
                    {
                        if (this.Message.StartsWith(" "))
                        {
                            this.Message = this.Message.Remove(0, 1);
                        }

                        if (this.Message.Length > 0)
                        {
                            AllianceMember sender = this.Connection.Avatar.Alliance.Members.Find(member => member.Identifier == this.Connection.Avatar.Identifier);
                            this.Connection.Avatar.Alliance.AddEntry(new StreamEntry(sender, this.Message));
                        }
                    }
                }
            }
        }
Exemplo n.º 17
0
        private void SetMember(AllianceMember member, LegionMemberData memberData)
        {
            memberData.uid         = member.Uid;
            memberData.memberName  = member.Name;
            memberData.level       = member.Level;
            memberData.portrait    = member.Portrait;
            memberData.templateId  = member.templateId;
            memberData.skin        = member.Skin;
            memberData.headFrame   = member.HeadFrame;
            memberData.todaydonate = member.TodayDonateDegree;
            memberData.totaldonate = member.DonateDegree;
            memberData.dutyType    = member.Role;
            memberData.offlineTime = member.OfflineTime;
            memberData.dutyTypeStr = GetMemberPosName(memberData.dutyType);

            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
            DateTime        dt        = startTime.AddSeconds(member.OfflineTime);

            if (member.OfflineTime != 0)
            {
                TimeSpan behind = DateTime.Now - dt;
                memberData.offlineHour = (int)(behind.TotalHours);
            }
            else
            {
                memberData.offlineHour = 0;
            }
            memberData.todayDonateTimes = member.TodayDonated.Times;
            if (member.Uid == LoginManager.Instance.LocalUserId.Value) //如果是用户自己
            {
                memberData.todayLuxuryDonateTimes = member.TodayDonated.LuxuryTimes;
                memberData.todayHcDonateTimes     = member.TodayDonated.HcTimes;
                memberData.todayGoldDonateTimes   = member.TodayDonated.GoldTimes;
                legionData.userMemberData         = memberData;
            }
        }
Exemplo n.º 18
0
 public AllianceMemberMVVM(AllianceMember member, Boolean isremoveable)
 {
     this.Member       = member;
     this.IsRemoveable = isremoveable;
 }
Exemplo n.º 19
0
 public static string FromAllianceRole( AllianceMember.Role role )
 {
     return role.ToString();
 }
Exemplo n.º 20
0
        public static bool GetIsInAlliance(long uid)
        {
            AllianceMember member = AlliancesManager.Instance.DetailMembers.Find(uid);

            return(member != null);
        }
Exemplo n.º 21
0
 /// <summary>
 /// Initializes a new instance of the <see cref="StreamEntry"/> class.
 /// </summary>
 internal StreamEntry(AllianceMember member, string message) : this(member)
 {
     this.Message = message;
 }