예제 #1
0
        public void SetLegionMembers(List <AllianceMember> members)
        {
            int d = members.Count - legionData.listMember.Count;

            if (d > 0)
            {
                for (int i = 0; i < d; i++)
                {
                    LegionMemberData md = new LegionMemberData();
                    legionData.listMember.Add(md);
                }
            }
            else if (d < 0)
            {
                for (int i = 0; i < -d; i++)
                {
                    legionData.listMember.RemoveAt(legionData.listMember.Count - 1);
                }
            }

            for (int i = 0; i < members.Count; i++)
            {
                SetMember(members[i], legionData.listMember[i]);
            }

            RankLegionMembers();

            if (LegionEvent.NotifyUpdateLegionData != null)
            {
                LegionEvent.NotifyUpdateLegionData(legionData);
            }
        }
예제 #2
0
        public void SetData(LegionData legionData, long choiceUid)
        {
            if (choiceUid == 0)
            {
                return;
            }

            uid = choiceUid;

            mData = null;
            for (int i = 0; i < legionData.listMember.Count; i++)
            {
                if (legionData.listMember[i].uid == uid)
                {
                    mData = legionData.listMember[i];
                    break;
                }
            }

            if (mData == null)
            {
                return;
            }

            nameLab.text         = mData.memberName;
            levelLab.text        = mData.level.ToString();
            headIcon.spriteName  = string.Format("{0}{1}", mData.portrait, (mData.skin > 0) ? "_" + mData.skin : string.Empty);// "Partner_Head_Sidatuila"; // 暂时默认
            headFrame.spriteName = EconemyTemplateManager.Instance.GetHeadFrame(mData.headFrame).iconId;
            contentLab.text      = EB.Localizer.GetString("ID_uifont_in_LTLegionMainMenu_Label_41");
        }
예제 #3
0
 /// <summary>
 /// 初始化
 /// </summary>
 /// <param name="data">公会成员数据</param>
 /// <param name="index">数据序号</param>
 public void Init(LegionMemberData data)
 {
     mMemberData            = data;
     HeadIconSp.spriteName  = Hotfix_LT.Data.CharacterTemplateManager.Instance.GetHeroInfo(data.templateId, data.skin).icon;
     FrameIconSp.spriteName = Hotfix_LT.Data.EconemyTemplateManager.Instance.GetHeadFrame(data.headFrame).iconId;
     LevelLab.text          = mMemberData.level.ToString();
     NameLab.text           = mMemberData.memberName;
 }
예제 #4
0
        public void SetData(LegionData legionData, long choiceUid, List <OtherPlayerPartnerData> partnerList = null)
        {
            if (legionData == null || legionData.userMemberData == null)
            {
                return;
            }

            this.legionData = legionData;

            if (legionData.userMemberData.dutyType == eAllianceMemberRole.Owner)
            {
                bg.height = bgFullHeight;
                hideButtonObj.SetActive(true);
                UpdateAnchors();
            }
            else if (legionData.userMemberData.dutyType == eAllianceMemberRole.ExtraOwner)
            {
                bg.height = bgFullHeight;
                hideButtonObj.SetActive(true);
                UpdateAnchors();
            }
            else
            {
                bg.height = bgSmallHeight;
                hideButtonObj.SetActive(false);
                UpdateAnchors();
            }

            if (choiceUid == 0)
            {
                if (isthisInit)
                {
                    SetBtnView();
                }
                return;
            }

            formationInfo.Init(choiceUid, partnerList);

            _choiceUid = choiceUid;

            mData = null;
            for (int i = 0; i < legionData.listMember.Count; i++)
            {
                if (legionData.listMember[i].uid == _choiceUid)
                {
                    mData = legionData.listMember[i];
                    break;
                }
            }

            if (mData == null)
            {
                return;
            }

            ShowPersonage();
        }
예제 #5
0
        //处理排序
        private void RankLegionMembers()
        {
            if (legionData == null || legionData.listMember == null)
            {
                return;
            }

            //冒泡排序
            for (int i = 0; i < legionData.listMember.Count; i++)
            {
                for (int j = i + 1; j < legionData.listMember.Count; j++)
                {
                    bool isChange = false;
                    if (legionData.listMember[i].offlineTime != 0 && legionData.listMember[j].offlineTime == 0) //在线一定和不在线的交换
                    {
                        isChange = true;
                    }
                    else if (legionData.listMember[i].offlineTime == 0 && legionData.listMember[j].offlineTime != 0)
                    {
                    }
                    else if (((int)legionData.listMember[i].dutyType) < ((int)legionData.listMember[j].dutyType)) //职位
                    {
                        isChange = true;
                    }
                    else if (((int)legionData.listMember[i].dutyType) != ((int)legionData.listMember[j].dutyType))
                    {
                    }
                    else if (legionData.listMember[i].level < legionData.listMember[j].level)//等级
                    {
                        isChange = true;
                    }
                    else if (legionData.listMember[i].level != legionData.listMember[j].level)
                    {
                    }
                    else if (legionData.listMember[i].totaldonate < legionData.listMember[j].totaldonate) //贡献
                    {
                        isChange = true;
                    }

                    if (!isChange)
                    {
                        continue;           //如果没有需要交换 就下一个
                    }
                    LegionMemberData buff = legionData.listMember[i];
                    legionData.listMember[i] = legionData.listMember[j];
                    legionData.listMember[j] = buff;
                }
            }
        }
예제 #6
0
        /// <summary>
        /// 合并操作成员列表
        /// </summary>
        /// <param name="members"></param>
        public void MergeLegionMembers(List <AllianceMember> members)
        {
            if (members == null)
            {
                return;
            }


            for (int i = 0; i < members.Count; i++)
            {
                if (members[i] == null)
                {
                    continue;
                }

                bool isFind = false;
                for (int j = 0; j < legionData.listMember.Count; j++)
                {
                    if (legionData.listMember[j].uid == members[i].Uid)
                    {
                        SetMember(members[i], legionData.listMember[j]);
                        isFind = true;
                        break;
                    }
                }

                if (!isFind)
                {
                    LegionMemberData md = new LegionMemberData();
                    legionData.listMember.Add(md);
                    SetMember(members[i], md);
                }
            }

            RankLegionMembers();

            if (LegionEvent.NotifyUpdateLegionData != null)
            {
                LegionEvent.NotifyUpdateLegionData(legionData);
            }
        }
예제 #7
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;
            }
        }
예제 #8
0
        /// <summary>
        /// 点击解除按钮
        /// </summary>
        public void OnClickRelieve()
        {
            if (mCurGiveMember != null)
            {
                if (!IsInLegion(mCurGiveMember.uid))
                {
                    Init();
                    return;
                }

                MessageTemplateManager.ShowMessage(eMessageUIType.MessageDialogue_4, string.Format(EB.Localizer.GetString("ID_LEGION_MEDAL_RELIEVE_CONFIRM"), mCurGiveMember.memberName), delegate(int result)
                {
                    if (result == 0)
                    {
                        LegionLogic.GetInstance().UnlinkMedalPair(mCurGiveMember.uid, delegate
                        {
                            mCurGiveMember = null;
                            DataLookupsCache.Instance.CacheData("alliance.account.medal.send", null);
                            Init();
                        });
                    }
                });
            }
        }
예제 #9
0
        /// <summary>
        /// 初始化数据
        /// </summary>
        private void InitData()
        {
            mCurMedalState = EMedalState.mBuy;

            int num = 0;

            DataLookupsCache.Instance.SearchDataByID("alliance.account.medal.num", out num);


            IDictionary medalMember;

            DataLookupsCache.Instance.SearchDataByID("alliance.account.medal.send", out medalMember);

            if (medalMember == null)
            {
                if (num > 0)
                {
                    mCurMedalState = EMedalState.mGive;
                }
                return;
            }

            long uid   = 0;
            int  timer = 0;

            mEndTime = 0;
            foreach (DictionaryEntry item in medalMember)
            {
                timer = EB.Dot.Integer("expiry", item.Value, 0);
                if (long.Parse(item.Key.ToString()) == 0 || EB.Time.Now >= timer)
                {
                    continue;
                }
                uid      = long.Parse(item.Key.ToString());
                mEndTime = timer;
            }
            if (uid == 0 || EB.Time.Now >= mEndTime)
            {
                if (num > 0)
                {
                    mCurMedalState = EMedalState.mGive;
                }
                return;
            }

            mCurGiveMember = null;
            for (int i = 0; i < mLegionMemberDataList.Count; i++)
            {
                if (mLegionMemberDataList[i].uid == uid)
                {
                    mCurGiveMember = mLegionMemberDataList[i];
                    break;
                }
            }

            if (mCurGiveMember == null)
            {
                if (num > 0)
                {
                    mCurMedalState = EMedalState.mGive;
                }
                return;
            }

            mCurMedalState = EMedalState.mCountDown;
        }