少年修仙传客户端代码仓库
Client_PangDeRong
2018-12-20 8f3bfa07c7d0ed894fce64c17fa7c5148a67b604
System/CrossServerOneVsOne/CrossServerModel.cs
@@ -13,6 +13,8 @@
    {
        public string PkResultLocalSaveKey { get; private set; }
        public List<CrossServerPkResult> localSaveResults { get; private set; }
        CrossServerRewardModel rewardModel { get { return ModelCenter.Instance.GetModel<CrossServerRewardModel>(); } }
        public event Action UpdateDayAwardsEvent;
        public override void Init()
        {
@@ -21,6 +23,8 @@
        public void OnBeforePlayerDataInitialize()
        {
            rewardModel.CrossRealmPKAwardStateUpdate -= UpdateDayAwardState;
            CrossServerPlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdateDayAwardState;
            InitData();
        }
@@ -33,7 +37,9 @@
        public void OnPlayerLoginOk()
        {
            rewardModel.CrossRealmPKAwardStateUpdate += UpdateDayAwardState;
            CrossServerPlayerInfo.Instance.UpdatePlayerInfoEvent += UpdateDayAwardState;
            UpdateDayAwardState();
        }
        public override void UnInit()
@@ -45,6 +51,32 @@
        {
            CrossServerPlayerInfo.Instance.InitData();
            pkResultInfo = new CrossServerPkResult();
        }
        public void UpdateDayAwardState()
        {
            var playerInfo = CrossServerPlayerInfo.Instance;
            for(int i = 0; i < dayAwardTypelist.Count; i++)
            {
                var dayAward = dayAwardTypelist[i];
                int awardType = dayAward.type;
                switch(awardType)
                {
                    case 1:
                        dayAward.IsReceived = rewardModel.IsAwardState(CrossRealmPKAwardStateEnum.DayWinCountAwardState,dayAward.index);
                        dayAward.SetCompletedNum(playerInfo.DayWinCount);
                        break;
                    case 2:
                        dayAward.IsReceived = rewardModel.IsAwardState(CrossRealmPKAwardStateEnum.DayPKCountAwardState,dayAward.index);
                        dayAward.SetCompletedNum(playerInfo.DayPKCount);
                        break;
                }
            }
            if(UpdateDayAwardsEvent != null)
            {
                UpdateDayAwardsEvent();
            }
        }
        public List<AwardType> sortDayAwardslist = new List<AwardType>();
@@ -80,11 +112,12 @@
            var dayMatchAwardData = JsonMapper.ToObject(CrossRealmPKAward.Numerical1);
            var dayWinAwardData = JsonMapper.ToObject(CrossRealmPKAward.Numerical2);
            dayAwardTypelist = new List<AwardType>();
            int dayWinIndex = 0;
            foreach (var num in dayWinAwardData.Keys)
            {
                int times = int.Parse(num);
                var items = dayWinAwardData[num];
                var awardType = new AwardType(times,1);
                var awardType = new AwardType(times,1,dayWinIndex);
                dayAwardTypelist.Add(awardType);
                if (items.IsArray)
                {
@@ -104,13 +137,16 @@
                        }
                    }
                }
                dayWinIndex += 1;
            }
            int dayPkIndex = 0;
            foreach (var num in dayMatchAwardData.Keys)
            {
                int times = int.Parse(num);
                var items = dayMatchAwardData[num];
                var awardType = new AwardType(times,2);
                var awardType = new AwardType(times,2,dayPkIndex);
                dayAwardTypelist.Add(awardType);
                if (items.IsArray)
                {
@@ -130,6 +166,8 @@
                        }
                    }
                }
                dayPkIndex += 1;
            }
            var CrossRealmPKMatchCount = Config.Instance.Get<FuncConfigConfig>("CrossRealmPKMatchCount");
@@ -144,15 +182,17 @@
        public class AwardType
        {
            public int type { get; private set; } //1 胜利奖励 2 匹配奖励 
            public int index { get; private set; }
            public int num { get; private set;}
            public int curCompletedNum { get; private set; }
            public CompleteProgress progress { get; private set;}
            public bool IsReceived { get; set; }
            public List<AwardItem> awardItems = new List<AwardItem>();
            public AwardType(int _num,int _type)
            public AwardType(int _num,int _type,int _index)
            {
                type = _type;
                num = _num;
                index = _index;
                curCompletedNum = 0;
                IsReceived = false;
                progress = CompleteProgress.Completed;
@@ -224,10 +264,16 @@
            match.Type = (byte)type;
            GameNetSystem.Instance.SendInfo(match);
        }
        public void SendBuyMatchCount()
        {
            CC102_tagCMCrossRealmPKBuy pKBuy = new CC102_tagCMCrossRealmPKBuy();
            GameNetSystem.Instance.SendInfo(pKBuy);
        }
        #endregion
        #region 匹配记录
        private void GetLocalSaveData()
        {
            localSaveResults = new List<CrossServerPkResult>();